Function at 0x100014c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa0
push ebx
push ebp
mov ebp, dword [esp + 0xe0]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
inc ebp
and ebp, 0xfffffffe
mov dword [esp + 0x90], 0xffffffff
push esi
mov esi, dword [esp + 0xe8]
mov eax, ebp
sar eax, 1
inc esi
mov dword [esp + 0x40], eax
and esi, 0xfffffffe
mov eax, esi
mov dword [esp + 0x3c], ebp
sar eax, 1
mov dword [esp + 0x54], eax
lea eax, [ebp*2]
add eax, ebp
mov dword [esp + 0x78], esi
add eax, eax
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x80], eax
cdq
shld edx, eax, 1
push edi
add eax, eax
test edx, edx
jne 0x1000153f
push eax
call ebx
add esp, 4
mov dword [esp + 0x48], eax
mov edi, eax
jmp 0x10001545
xor edi, edi
mov dword [esp + 0x48], edi
mov eax, esi
imul eax, ebp
cdq
mov esi, eax
shld edx, esi, 1
add esi, esi
test edx, edx
jne 0x1000156a
push esi
call ebx
push esi
mov dword [esp + 0x18], eax
call ebx
add esp, 8
mov dword [esp + 0x5c], eax
jmp 0x1000157a
mov dword [esp + 0x10], 0
mov dword [esp + 0x5c], 0
lea eax, [ebp*2]
mov dword [esp + 0x90], eax
cdq
shld edx, eax, 1
add eax, eax
test edx, edx
jne 0x1000159f
push eax
call ebx
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x100015a7
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x58]
imul eax, dword [esp + 0x44]
lea eax, [eax + eax*2]
cdq
mov esi, eax
shld edx, esi, 1
add esi, esi
test edx, edx
jne 0x100015d1
push esi
call ebx
push esi
mov dword [esp + 0x28], eax
call ebx
add esp, 8
mov esi, eax
jmp 0x100015e3
mov eax, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], esi
lea eax, [eax + eax*2]
mov dword [esp + 0x94], eax
cdq
shld edx, eax, 1
add eax, eax
test edx, edx
jne 0x1000160c
push eax
call ebx
add esp, 4
mov dword [esp + 0x64], eax
jmp 0x10001614
mov dword [esp + 0x64], 0
movd xmm0, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
movd xmm1, ebp
cvtdq2pd xmm1, xmm1
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], esi
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x100050c0]
mulsd xmm1, xmm0
xorps xmm0, xmm0
movlpd qword [esp + 0x88], xmm0
movsd xmm0, qword [0x100050c8]
comisd xmm1, xmm0
jb 0x1000167b
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x1000167b
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
add esi, 0
adc ebx, 0x80000000
jmp 0x10001689
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
movaps xmm0, xmm1
call fcn.10003df0
add eax, esi
mov dword [esp + 0x88], eax
adc edx, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xac], edx
test ebx, ebx
je 0x10001f1c
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10001f1c
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x10001f1c
cmp dword [esp + 0x60], 0
je 0x10001f1c
cmp dword [esp + 0x50], 0
je 0x10001f1c
cmp dword [esp + 0x64], 0
je 0x10001f1c
test edi, edi
je 0x10001f1c
mov esi, dword [esp + 0xec]
test esi, esi
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x38], 0
jle 0x10001aab
lea eax, [esi + 2]
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x68], eax
add ebx, edi
mov eax, 0xe
mov dword [esp + 0x34], ebx
sub eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
lea eax, [eax + eax*2]
add eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc4]
add eax, eax
mov dword [esp + 0x74], eax
mov eax, ebp
neg eax
shl eax, 2
mov dword [esp + 0x70], eax
mov eax, edi
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, ecx
sub eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
sub eax, edx
mov edx, dword [esp + 0xb8]
sub ecx, edx
mov dword [esp + 0x58], eax
sub dword [esp + 0xbc], edx
mov dword [esp + 0xb4], ecx
nop dword [eax]
mov eax, dword [esp + 0xbc]
add ecx, edx
push edi
push dword [esp + 0xec]
add eax, edx
push esi
push dword [esp + 0xcc]
push eax
push edx
push ecx
call fcn.10001f80
mov eax, dword [esp + 0x108]
add esp, 0x1c
dec eax
cmp dword [esp + 0x38], eax
je 0x10001808
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xbc]
push ebx
push dword [esp + 0xec]
add eax, ecx
push esi
push dword [esp + 0xcc]
add eax, edx
push eax
lea eax, [ecx + edx]
push eax
mov eax, dword [esp + 0xcc]
add eax, ecx
add eax, edx
push eax
call fcn.10001f80
add esp, 0x1c
jmp 0x10001819
push dword [esp + 0x84]
push edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x58]
add esi, dword [esp + 0x18]
push ebp
push esi
push edi
call fcn.100026d0
lea eax, [ebp*2]
push ebp
add eax, esi
push eax
push ebx
call fcn.100026d0
mov ecx, dword [esp + 0x80]
add esp, 0x18
mov eax, dword [esp + 0x4c]
cmp ecx, 0xe
mov esi, dword [esp + 0xc8]
mov edx, 2
cmovle eax, edx
add eax, esi
mov dword [esp + 0x80], eax
test ebp, ebp
jle 0x1000193d
lea esi, [ebp*2]
mov dword [esp + 0x28], ebp
lea eax, [edi + ebp*4]
add esi, edi
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], esi
nop word [eax + eax]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x80]
push edi
movzx eax, word [eax + ebp]
push eax
call fcn.10003360
movzx ecx, word [esi]
mov ebx, eax
push edi
push ecx
call fcn.10003360
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0x1c]
push edi
movzx ecx, word [eax]
push edi
push ecx
call fcn.10003360
mov ecx, 0x127c
add esp, 8
mul ecx
mov edi, eax
mov ecx, edx
mov eax, esi
mov edx, 0xb717
mul edx
add edi, eax
mov eax, ebx
adc ecx, edx
mov edx, 0x366d
mul edx
add edi, eax
adc ecx, edx
add edi, 0x8000
adc ecx, 0
shrd edi, ecx, 0x10
push edi
call fcn.100034f0
mov esi, dword [esp + 0x2c]
lea ebp, [ebp + 2]
add dword [esp + 0x24], 2
add esi, 2
add esp, 8
mov word [ebp - 2], ax
sub dword [esp + 0x28], 1
mov dword [esp + 0x24], esi
jne 0x10001890
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc8]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x4c]
cmp ecx, 0xe
mov ecx, 2
cmovle eax, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], eax
test ebp, ebp
jle 0x10001a2c
mov edx, dword [esp + 0x18]
mov edi, ebx
sub edi, dword [esp + 0x18]
mov dword [esp + 0x54], edi
lea esi, [edx + ebp*2]
lea edx, [ebx + ebp*4]
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
nop dword [eax]
push eax
movzx eax, word [ebx + ecx*2]
push eax
call fcn.10003360
push dword [esp + 0x38]
movzx ecx, word [edi + esi]
mov ebx, eax
push ecx
call fcn.10003360
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0x30]
push eax
push eax
mov eax, dword [esp + 0x24]
movzx ecx, word [eax]
push ecx
call fcn.10003360
mov ecx, 0x127c
add esp, 8
mul ecx
mov edi, eax
mov ecx, edx
mov eax, esi
mov edx, 0xb717
mul edx
add edi, eax
mov eax, ebx
adc ecx, edx
mov edx, 0x366d
mul edx
add edi, eax
adc ecx, edx
add edi, 0x8000
adc ecx, 0
shrd edi, ecx, 0x10
push edi
call fcn.100034f0
mov esi, dword [esp + 0x30]
add esp, 8
mov ecx, dword [esp + 0x24]
add dword [esp + 0x1c], 2
inc ecx
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], esi
cmp ecx, ebp
jl 0x10001980
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0xc8]
push esi
push dword [esp + 0x48]
push dword [esp + 0x34]
push ebx
push edi
call fcn.100027a0
push dword [esp + 0x80]
mov eax, dword [esp + 0x44]
push eax
add eax, dword [esp + 0x58]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0xd8]
lea eax, [ebp*4]
add dword [esp + 0x38], eax
add esp, 0x20
mov eax, dword [esp + 0x70]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
add edx, dword [esp + 0x74]
add eax, 2
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xb8], edx
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0xec]
jl 0x10001790
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
jmp 0x10001ab6
mov eax, 0xe
sub eax, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], 0
nop
mov ebp, dword [esp + 0x40]
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x6c], ecx
movlpd qword [esp + 0x74], xmm0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x58], eax
cmp dword [esp + 0x7c], eax
jle 0x10001e70
mov edx, dword [esp + 0x44]
add esi, 2
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x4c]
add ecx, edi
mov dword [esp + 0x80], esi
lea esi, [ebp*4]
mov dword [esp + 0x54], esi
lea esi, [edx + edx*2]
mov edx, dword [esp + 0x2c]
add esi, esi
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x60]
sub esi, dword [esp + 0x20]
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x5c]
sub esi, dword [esp + 0x10]
mov dword [esp + 0xa0], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x7c]
add esi, 0xfffffffe
cmp eax, esi
jge 0x10001b69
mov eax, dword [esp + 0x94]
jmp 0x10001b6f
mov ebx, dword [esp + 0x4c]
xor eax, eax
push dword [esp + 0xc8]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
push ecx
push edi
mov edi, dword [esp + 0x44]
lea esi, [esi + eax*2]
push ebp
push esi
push edi
push dword [esp + 0x84]
mov dword [esp + 0x50], ebx
push edx
call fcn.10002140
mov ecx, dword [esp + 0xa0]
add esp, 0x20
mov dword [esp + 0x6c], edi
cmp ecx, 0xe
mov edi, ebx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0xc8]
mov edx, 2
cmovle edi, edx
add edi, esi
mov dword [esp + 0x74], edi
test ebp, ebp
jle 0x10001ca9
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x90]
add eax, ecx
mov ebp, dword [esp + 0x50]
add esi, ecx
mov dword [esp + 0x14], eax
mov eax, ecx
mov ecx, dword [esp + 0x40]
sub eax, ebp
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x3c], ecx
nop
movzx eax, word [eax + ebp]
push edi
push eax
call fcn.10003360
movzx ecx, word [esi]
mov ebx, eax
push edi
push ecx
call fcn.10003360
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0x14]
push edi
movzx ecx, word [eax]
push edi
push ecx
call fcn.10003360
mov ecx, 0x127c
add esp, 8
mul ecx
mov edi, eax
mov ecx, edx
mov eax, esi
mov edx, 0xb717
mul edx
add edi, eax
mov eax, ebx
adc ecx, edx
mov edx, 0x366d
mul edx
add edi, eax
adc ecx, edx
add edi, 0x8000
adc ecx, 0
shrd edi, ecx, 0x10
push edi
call fcn.100034f0
mov esi, dword [esp + 0x70]
lea ebp, [ebp + 2]
add dword [esp + 0x1c], 2
add esi, 2
mov edi, dword [esp + 0x7c]
add esp, 8
sub dword [esp + 0x3c], 1
mov word [ebp - 2], ax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x68], esi
jne 0x10001c00
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0xc8]
mov ecx, dword [esp + 0x80]
cmp ecx, 0xe
mov edi, ebx
mov ecx, 2
cmovle edi, ecx
xor eax, eax
add edi, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], edi
test ebp, ebp
jle 0x10001d94
mov edx, dword [esp + 0x18]
mov esi, edx
mov ebp, dword [esp + 0x90]
mov ecx, dword [esp + 0x54]
add ebp, dword [esp + 0x50]
add ecx, edx
sub esi, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x70], esi
nop dword [eax]
movzx eax, word [edx + eax*2]
push edi
push eax
call fcn.10003360
movzx ecx, word [esi + ebp]
mov ebx, eax
push edi
push ecx
call fcn.10003360
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0x14]
push edi
movzx ecx, word [eax]
push edi
push ecx
call fcn.10003360
mov ecx, 0x127c
add esp, 8
mul ecx
mov edi, eax
mov ecx, edx
mov eax, esi
mov edx, 0xb717
mul edx
add edi, eax
mov eax, ebx
adc ecx, edx
mov edx, 0x366d
mul edx
add edi, eax
adc ecx, edx
add edi, 0x8000
adc ecx, 0
shrd edi, ecx, 0x10
push edi
call fcn.100034f0
add dword [esp + 0x1c], 2
lea ebp, [ebp + 2]
mov edi, dword [esp + 0x7c]
add esp, 8
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
mov word [ebp - 2], ax
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x40]
jl 0x10001cf0
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
push esi
push dword [esp + 0x48]
mov dword [esp + 0x18], eax
push dword [esp + 0x6c]
mov eax, dword [esp + 0x2c]
push dword [esp + 0x24]
mov dword [esp + 0x30], eax
push edi
call fcn.100027a0
lea eax, [esi + 2]
add esp, 0x14
cmp eax, 0xe
jg 0x10001dd1
mov ebx, dword [esp + 0x4c]
mov eax, 2
jmp 0x10001dd3
mov eax, ebx
add eax, esi
push eax
lea eax, [ebp*2]
push eax
mov eax, dword [esp + 0x34]
push eax
push dword [esp + 0x5c]
add eax, dword [esp + 0xb0]
push eax
call dword [0x10007bc0]
add dword [esp + 0x30], eax
push dword [esp + 0xa8]
mov eax, dword [esp + 0x48]
adc dword [esp + 0x40], edx
push eax
push dword [esp + 0x80]
add eax, dword [esp + 0xc4]
push eax
call dword [0x10007bbc]
mov edx, dword [esp + 0x50]
lea eax, [ebp*4]
mov ecx, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0xcc]
add esp, 0x24
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
add eax, 2
mov dword [esp + 0x2c], edx
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x7c]
jl 0x10001b55
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebx
jmp 0x10001e78
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x24], 0
jle 0x10001ea7
cmp edx, dword [esp + 0xac]
jb 0x10001ec7
ja 0x10001e93
cmp eax, dword [esp + 0x88]
jb 0x10001ec7
cmp edx, dword [esp + 0x9c]
ja 0x10001ec7
jb 0x10001ea7
cmp eax, dword [esp + 0x98]
ja 0x10001ec7
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x24], eax
cmp eax, 4
jl 0x10001ac0
push dword [esp + 0xf0]
push dword [esp + 0xf0]
push dword [esp + 0xf0]
push dword [esp + 0xf0]
push esi
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push ecx
push ebx
call section..text
add esp, 0x34
mov ebx, eax
jmp 0x10001f1e
xor ebx, ebx
push dword [esp + 0x10]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call esi
push dword [esp + 0x24]
call esi
push dword [esp + 0x64]
call esi
push dword [esp + 0x6c]
call esi
push dword [esp + 0x60]
call esi
push dword [esp + 0x78]
call esi
push edi
call esi
add esp, 0x1c
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret