; ; __crt_strtox::divide from 0x18013dda0 to 0x18013e1c9 (1065 bytes) ; ; 5 xrefs: ; > __acrt_fltout @ 0x18013f184 ; > __acrt_fltout @ 0x18013f2ff ; > @ 0x180193f0c ; > @ 0x180193f1c ; > @ 0x180203b30 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; mov [rsp+arg_8], rdx ; +0x0, 0x18013dda0 push rbx ; +0x5, 0x18013dda5 push rbp ; +0x6, 0x18013dda6 push rsi ; +0x7, 0x18013dda7 push rdi ; +0x8, 0x18013dda8 push r12 ; +0x9, 0x18013dda9 push r14 ; +0xb, 0x18013ddab push r15 ; +0xd, 0x18013ddad sub rsp, 220h ; +0xf, 0x18013ddaf mov r10d, [rcx] ; +0x16, 0x18013ddb6 mov r14, rdx ; +0x19, 0x18013ddb9 mov rsi, rcx ; +0x1c, 0x18013ddbc test r10d, r10d ; +0x1f, 0x18013ddbf jz loc_18013E1B5 ; +0x22, 0x18013ddc2 mov edi, [rdx] ; +0x28, 0x18013ddc8 test edi, edi ; +0x2a, 0x18013ddca jz loc_18013E1B5 ; +0x2c, 0x18013ddcc dec r10d ; +0x32, 0x18013ddd2 lea eax, [rdi-1] ; +0x35, 0x18013ddd5 test eax, eax ; +0x38, 0x18013ddd8 jnz loc_18013DEC2 ; +0x3a, 0x18013ddda mov r12d, [rdx+4] ; +0x40, 0x18013dde0 xor ebp, ebp ; +0x44, 0x18013dde4 cmp r12d, 1 ; +0x46, 0x18013dde6 jnz short loc_18013DE12 ; +0x4a, 0x18013ddea mov ebx, [rcx+4] ; +0x4c, 0x18013ddec lea r8, [rsp+258h+Source]; Source ; +0x4f, 0x18013ddef add rcx, 4; Destination ; +0x54, 0x18013ddf4 mov [rsi], ebp ; +0x58, 0x18013ddf8 xor r9d, r9d; SourceSize ; +0x5a, 0x18013ddfa mov [rsp+258h+var_218], ebp ; +0x5d, 0x18013ddfd mov edx, 1CCh; DestinationSize ; +0x61, 0x18013de01 call memcpy_s ; +0x66, 0x18013de06 mov eax, ebx ; +0x6b, 0x18013de0b jmp loc_18013E1B7 ; +0x6d, 0x18013de0d test r10d, r10d ; +0x72, 0x18013de12 jnz short loc_18013DE4D ; +0x75, 0x18013de15 mov ebx, [rcx+4] ; +0x77, 0x18013de17 lea r8, [rsp+258h+Source]; Source ; +0x7a, 0x18013de1a mov [rcx], ebp ; +0x7f, 0x18013de1f xor r9d, r9d; SourceSize ; +0x81, 0x18013de21 add rcx, 4; Destination ; +0x84, 0x18013de24 mov [rsp+258h+var_218], ebp ; +0x88, 0x18013de28 mov edx, 1CCh; DestinationSize ; +0x8c, 0x18013de2c call memcpy_s ; +0x91, 0x18013de31 xor edx, edx ; +0x96, 0x18013de36 mov eax, ebx ; +0x98, 0x18013de38 div r12d ; +0x9a, 0x18013de3a test edx, edx ; +0x9d, 0x18013de3d mov [rsi+4], edx ; +0x9f, 0x18013de3f setnz bpl ; +0xa2, 0x18013de42 mov [rsi], ebp ; +0xa6, 0x18013de46 jmp loc_18013E1B7 ; +0xa8, 0x18013de48 mov r15d, 0FFFFFFFFh ; +0xad, 0x18013de4d mov rdi, rbp ; +0xb3, 0x18013de53 mov r14, rbp ; +0xb6, 0x18013de56 cmp r10d, r15d ; +0xb9, 0x18013de59 jz short loc_18013DE86 ; +0xbc, 0x18013de5c mov rcx, r12 ; +0xbe, 0x18013de5e mov eax, [rsi+r10*4+4] ; +0xc1, 0x18013de61 xor edx, edx ; +0xc6, 0x18013de66 shl r14, 20h ; +0xc8, 0x18013de68 add r10d, r15d ; +0xcc, 0x18013de6c or rax, r14 ; +0xcf, 0x18013de6f shl rdi, 20h ; +0xd2, 0x18013de72 div rcx ; +0xd6, 0x18013de76 mov eax, eax ; +0xd9, 0x18013de79 mov r14, rdx ; +0xdb, 0x18013de7b add rdi, rax ; +0xde, 0x18013de7e cmp r10d, r15d ; +0xe1, 0x18013de81 jnz short loc_18013DE61 ; +0xe4, 0x18013de84 xor r9d, r9d; SourceSize ; +0xe6, 0x18013de86 mov [rsp+258h+var_218], ebp ; +0xe9, 0x18013de89 lea r8, [rsp+258h+Source]; Source ; +0xed, 0x18013de8d mov [rsi], ebp ; +0xf2, 0x18013de92 mov edx, 1CCh; DestinationSize ; +0xf4, 0x18013de94 lea rcx, [rsi+4]; Destination ; +0xf9, 0x18013de99 call memcpy_s ; +0xfd, 0x18013de9d mov rcx, r14 ; +0x102, 0x18013dea2 mov [rsi+4], r14d ; +0x105, 0x18013dea5 shr rcx, 20h ; +0x109, 0x18013dea9 mov rax, rdi ; +0x10d, 0x18013dead test ecx, ecx ; +0x110, 0x18013deb0 mov [rsi+8], ecx ; +0x112, 0x18013deb2 setnz bpl ; +0x115, 0x18013deb5 inc ebp ; +0x119, 0x18013deb9 mov [rsi], ebp ; +0x11b, 0x18013debb jmp loc_18013E1B7 ; +0x11d, 0x18013debd cmp eax, r10d ; +0x122, 0x18013dec2 ja loc_18013E1B5 ; +0x125, 0x18013dec5 mov r8d, r10d ; +0x12b, 0x18013decb movsxd rdx, r10d ; +0x12e, 0x18013dece sub r8d, eax ; +0x131, 0x18013ded1 mov r9d, r10d ; +0x134, 0x18013ded4 movsxd rbx, r8d ; +0x137, 0x18013ded7 cmp rdx, rbx ; +0x13a, 0x18013deda jl short loc_18013DF28 ; +0x13d, 0x18013dedd add rcx, 4 ; +0x13f, 0x18013dedf lea rax, ds:0[rbx*4] ; +0x143, 0x18013dee3 mov r11, r14 ; +0x14b, 0x18013deeb sub r11, rax ; +0x14e, 0x18013deee sub r11, rsi ; +0x151, 0x18013def1 lea rcx, [rcx+rdx*4] ; +0x154, 0x18013def4 mov eax, [rcx] ; +0x158, 0x18013def8 cmp [r11+rcx], eax ; +0x15a, 0x18013defa jnz short loc_18013DF11 ; +0x15e, 0x18013defe dec r9d ; +0x160, 0x18013df00 dec rdx ; +0x163, 0x18013df03 sub rcx, 4 ; +0x166, 0x18013df06 cmp rdx, rbx ; +0x16a, 0x18013df0a jge short loc_18013DEF8 ; +0x16d, 0x18013df0d jmp short loc_18013DF28 ; +0x16f, 0x18013df0f mov eax, r9d ; +0x171, 0x18013df11 sub eax, r8d ; +0x174, 0x18013df14 movsxd rdx, eax ; +0x177, 0x18013df17 movsxd rax, r9d ; +0x17a, 0x18013df1a mov ecx, [rsi+rax*4+4] ; +0x17d, 0x18013df1d cmp [r14+rdx*4+4], ecx ; +0x181, 0x18013df21 jnb short loc_18013DF2B ; +0x186, 0x18013df26 inc r8d ; +0x188, 0x18013df28 test r8d, r8d ; +0x18b, 0x18013df2b jz loc_18013E1B5 ; +0x18e, 0x18013df2e lea eax, [rdi-1] ; +0x194, 0x18013df34 mov ebx, 20h ; ' ' ; +0x197, 0x18013df37 mov r9d, [r14+rax*4+4] ; +0x19c, 0x18013df3c lea eax, [rdi-2] ; +0x1a1, 0x18013df41 mov ebp, [r14+rax*4+4] ; +0x1a4, 0x18013df44 bsr eax, r9d ; +0x1a9, 0x18013df49 mov [rsp+258h+arg_0], ebp ; +0x1ad, 0x18013df4d jz short loc_18013DF61 ; +0x1b4, 0x18013df54 mov r11d, 1Fh ; +0x1b6, 0x18013df56 sub r11d, eax ; +0x1bc, 0x18013df5c jmp short loc_18013DF64 ; +0x1bf, 0x18013df5f mov r11d, ebx ; +0x1c1, 0x18013df61 sub ebx, r11d ; +0x1c4, 0x18013df64 mov [rsp+258h+arg_10], r11d ; +0x1c7, 0x18013df67 mov dword ptr [rsp+258h+var_238], ebx ; +0x1cf, 0x18013df6f test r11d, r11d ; +0x1d3, 0x18013df73 jz short loc_18013DFAF ; +0x1d6, 0x18013df76 mov eax, r9d ; +0x1d8, 0x18013df78 mov edx, ebp ; +0x1db, 0x18013df7b mov ecx, ebx ; +0x1dd, 0x18013df7d shr edx, cl ; +0x1df, 0x18013df7f mov ecx, r11d ; +0x1e1, 0x18013df81 shl eax, cl ; +0x1e4, 0x18013df84 mov r9d, edx ; +0x1e6, 0x18013df86 shl ebp, cl ; +0x1e9, 0x18013df89 or r9d, eax ; +0x1eb, 0x18013df8b mov [rsp+258h+arg_0], ebp ; +0x1ee, 0x18013df8e cmp edi, 2 ; +0x1f5, 0x18013df95 jbe short loc_18013DFAF ; +0x1f8, 0x18013df98 lea eax, [rdi-3] ; +0x1fa, 0x18013df9a mov ecx, ebx ; +0x1fd, 0x18013df9d mov eax, [r14+rax*4+4] ; +0x1ff, 0x18013df9f shr eax, cl ; +0x204, 0x18013dfa4 or ebp, eax ; +0x206, 0x18013dfa6 mov [rsp+258h+arg_0], ebp ; +0x208, 0x18013dfa8 xor ebp, ebp ; +0x20f, 0x18013dfaf lea r14d, [r8-1] ; +0x211, 0x18013dfb1 mov r12d, ebp ; +0x215, 0x18013dfb5 test r14d, r14d ; +0x218, 0x18013dfb8 js loc_18013E180 ; +0x21b, 0x18013dfbb mov eax, ebx ; +0x221, 0x18013dfc1 mov r15d, 0FFFFFFFFh ; +0x223, 0x18013dfc3 mov ebx, r9d ; +0x229, 0x18013dfc9 mov [rsp+258h+var_40], r13 ; +0x22c, 0x18013dfcc lea r13d, [r14+rdi] ; +0x234, 0x18013dfd4 mov [rsp+258h+var_220], rbx ; +0x238, 0x18013dfd8 mov [rsp+258h+var_228], rax ; +0x23d, 0x18013dfdd cmp r13d, r10d ; +0x242, 0x18013dfe2 ja short loc_18013DFEE ; +0x245, 0x18013dfe5 mov edx, [rsi+r13*4+4] ; +0x247, 0x18013dfe7 jmp short loc_18013DFF0 ; +0x24c, 0x18013dfec mov edx, ebp ; +0x24e, 0x18013dfee lea eax, [r13-1] ; +0x250, 0x18013dff0 mov [rsp+258h+arg_18], edx ; +0x254, 0x18013dff4 mov ecx, [rsi+rax*4+4] ; +0x25b, 0x18013dffb lea eax, [r13-2] ; +0x25f, 0x18013dfff mov r11d, [rsi+rax*4+4] ; +0x263, 0x18013e003 mov [rsp+258h+var_230], rcx ; +0x268, 0x18013e008 mov dword ptr [rsp+258h+var_230+4], edx ; +0x26d, 0x18013e00d mov edx, [rsp+258h+arg_10] ; +0x271, 0x18013e011 test edx, edx ; +0x278, 0x18013e018 jz short loc_18013E050 ; +0x27a, 0x18013e01a mov rcx, [rsp+258h+var_228] ; +0x27c, 0x18013e01c mov r8d, r11d ; +0x281, 0x18013e021 mov rax, [rsp+258h+var_230] ; +0x284, 0x18013e024 shr r8, cl ; +0x289, 0x18013e029 mov ecx, edx ; +0x28c, 0x18013e02c shl rax, cl ; +0x28e, 0x18013e02e or r8, rax ; +0x291, 0x18013e031 shl r11d, cl ; +0x294, 0x18013e034 cmp r13d, 3 ; +0x297, 0x18013e037 jb short loc_18013E055 ; +0x29b, 0x18013e03b mov ecx, dword ptr [rsp+258h+var_238] ; +0x29d, 0x18013e03d lea eax, [r13-3] ; +0x2a1, 0x18013e041 mov eax, [rsi+rax*4+4] ; +0x2a5, 0x18013e045 shr eax, cl ; +0x2a9, 0x18013e049 or r11d, eax ; +0x2ab, 0x18013e04b jmp short loc_18013E055 ; +0x2ae, 0x18013e04e mov r8, [rsp+258h+var_230] ; +0x2b0, 0x18013e050 xor edx, edx ; +0x2b5, 0x18013e055 mov rax, r8 ; +0x2b7, 0x18013e057 div rbx ; +0x2ba, 0x18013e05a mov r8d, edx ; +0x2bd, 0x18013e05d mov r9, rax ; +0x2c0, 0x18013e060 cmp rax, r15 ; +0x2c3, 0x18013e063 jbe short loc_18013E07F ; +0x2c6, 0x18013e066 mov rax, 0FFFFFFFF00000001h ; +0x2c8, 0x18013e068 add rax, r9 ; +0x2d2, 0x18013e072 mov r9, r15 ; +0x2d5, 0x18013e075 imul rax, rbx ; +0x2d8, 0x18013e078 add r8, rax ; +0x2dc, 0x18013e07c cmp r8, r15 ; +0x2df, 0x18013e07f ja short loc_18013E0AE ; +0x2e2, 0x18013e082 mov edx, [rsp+258h+arg_0] ; +0x2e4, 0x18013e084 mov eax, edx ; +0x2eb, 0x18013e08b imul rax, r9 ; +0x2ed, 0x18013e08d mov rcx, r8 ; +0x2f1, 0x18013e091 shl rcx, 20h ; +0x2f4, 0x18013e094 or rcx, r11 ; +0x2f8, 0x18013e098 cmp rax, rcx ; +0x2fb, 0x18013e09b jbe short loc_18013E0AE ; +0x2fe, 0x18013e09e dec r9 ; +0x300, 0x18013e0a0 sub rax, rdx ; +0x303, 0x18013e0a3 add r8, rbx ; +0x306, 0x18013e0a6 cmp r8, r15 ; +0x309, 0x18013e0a9 jbe short loc_18013E091 ; +0x30c, 0x18013e0ac test r9, r9 ; +0x30e, 0x18013e0ae jz loc_18013E161 ; +0x311, 0x18013e0b1 mov r10, rbp ; +0x317, 0x18013e0b7 mov r11d, ebp ; +0x31a, 0x18013e0ba test edi, edi ; +0x31d, 0x18013e0bd jz short loc_18013E10F ; +0x31f, 0x18013e0bf mov rbx, [rsp+258h+arg_8] ; +0x321, 0x18013e0c1 add rbx, 4 ; +0x329, 0x18013e0c9 nop dword ptr [rax] ; +0x32d, 0x18013e0cd mov eax, [rbx] ; +0x330, 0x18013e0d0 lea rbx, [rbx+4] ; +0x332, 0x18013e0d2 imul rax, r9 ; +0x336, 0x18013e0d6 add r10, rax ; +0x33a, 0x18013e0da lea eax, [r11+r14] ; +0x33d, 0x18013e0dd mov r8d, r10d ; +0x341, 0x18013e0e1 mov ecx, eax ; +0x344, 0x18013e0e4 shr r10, 20h ; +0x346, 0x18013e0e6 mov eax, [rsi+rax*4+4] ; +0x34a, 0x18013e0ea mov rdx, r10 ; +0x34e, 0x18013e0ee inc r10 ; +0x351, 0x18013e0f1 cmp eax, r8d ; +0x354, 0x18013e0f4 cmovnb r10, rdx ; +0x357, 0x18013e0f7 sub eax, r8d ; +0x35b, 0x18013e0fb inc r11d ; +0x35e, 0x18013e0fe mov [rsi+rcx*4+4], eax ; +0x361, 0x18013e101 cmp r11d, edi ; +0x365, 0x18013e105 jb short loc_18013E0D0 ; +0x368, 0x18013e108 mov rbx, [rsp+258h+var_220] ; +0x36a, 0x18013e10a mov eax, [rsp+258h+arg_18] ; +0x36f, 0x18013e10f cmp rax, r10 ; +0x376, 0x18013e116 jnb short loc_18013E15D ; +0x379, 0x18013e119 mov r10d, ebp ; +0x37b, 0x18013e11b test edi, edi ; +0x37e, 0x18013e11e jz short loc_18013E15A ; +0x380, 0x18013e120 mov r11, [rsp+258h+arg_8] ; +0x382, 0x18013e122 mov r8, rbp ; +0x38a, 0x18013e12a add r11, 4 ; +0x38d, 0x18013e12d lea eax, [r10+r14] ; +0x391, 0x18013e131 inc r10d ; +0x395, 0x18013e135 mov ecx, [rsi+rax*4+4] ; +0x398, 0x18013e138 lea rdx, [rsi+rax*4] ; +0x39c, 0x18013e13c mov eax, [r11] ; +0x3a0, 0x18013e140 lea r11, [r11+4] ; +0x3a3, 0x18013e143 add r8, rax ; +0x3a7, 0x18013e147 add r8, rcx ; +0x3aa, 0x18013e14a mov [rdx+4], r8d ; +0x3ad, 0x18013e14d shr r8, 20h ; +0x3b1, 0x18013e151 cmp r10d, edi ; +0x3b5, 0x18013e155 jb short loc_18013E131 ; +0x3b8, 0x18013e158 dec r9 ; +0x3ba, 0x18013e15a lea r10d, [r13-1] ; +0x3bd, 0x18013e15d shl r12, 20h ; +0x3c1, 0x18013e161 dec r13d ; +0x3c5, 0x18013e165 mov eax, r9d ; +0x3c8, 0x18013e168 add r12, rax ; +0x3cb, 0x18013e16b sub r14d, 1 ; +0x3ce, 0x18013e16e jns loc_18013DFE2 ; +0x3d2, 0x18013e172 mov r13, [rsp+258h+var_40] ; +0x3d8, 0x18013e178 lea edx, [r10+1] ; +0x3e0, 0x18013e180 mov ecx, edx ; +0x3e4, 0x18013e184 cmp edx, [rsi] ; +0x3e6, 0x18013e186 jnb short loc_18013E19C ; +0x3e8, 0x18013e188 nop word ptr [rax+rax+00h] ; +0x3ea, 0x18013e18a mov eax, ecx ; +0x3f0, 0x18013e190 inc ecx ; +0x3f2, 0x18013e192 mov [rsi+rax*4+4], ebp ; +0x3f4, 0x18013e194 cmp ecx, [rsi] ; +0x3f8, 0x18013e198 jb short loc_18013E190 ; +0x3fa, 0x18013e19a mov [rsi], edx ; +0x3fc, 0x18013e19c test edx, edx ; +0x3fe, 0x18013e19e jz short loc_18013E1B0 ; +0x400, 0x18013e1a0 dec edx ; +0x402, 0x18013e1a2 cmp [rsi+rdx*4+4], ebp ; +0x404, 0x18013e1a4 jnz short loc_18013E1B0 ; +0x408, 0x18013e1a8 mov [rsi], edx ; +0x40a, 0x18013e1aa test edx, edx ; +0x40c, 0x18013e1ac jnz short loc_18013E1A2 ; +0x40e, 0x18013e1ae mov rax, r12 ; +0x410, 0x18013e1b0 jmp short loc_18013E1B7 ; +0x413, 0x18013e1b3 xor eax, eax ; +0x415, 0x18013e1b5 add rsp, 220h ; +0x417, 0x18013e1b7 pop r15 ; +0x41e, 0x18013e1be pop r14 ; +0x420, 0x18013e1c0 pop r12 ; +0x422, 0x18013e1c2 pop rdi ; +0x424, 0x18013e1c4 pop rsi ; +0x425, 0x18013e1c5 pop rbp ; +0x426, 0x18013e1c6 pop rbx ; +0x427, 0x18013e1c7 retn ; +0x428, 0x18013e1c8