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

Disassembly:
sub esp, 0x8c
mov edx, dword [esp + 0x90]
push ebx
push ebp
push esi
mov ecx, dword [edx]
mov esi, dword [esp + 0xa0]
mov edx, dword [edx + 0x14]
push edi
mov ebp, dword [ecx + 0x68]
movsx edi, word [esi + 2]
mov ebx, dword [ecx + 0x2e4]
add edi, 4
cmp byte [ecx + 0x2e1], 0
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x34], 0
je 0x43a9a8
test ebx, ebx
je 0x43a9a8
xor ecx, ecx
test edi, edi
je 0x43a034
mov ebp, dword [esp + 0xa8]
nop dword [eax]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*8]
shl eax, 6
mov dword [ebp + ecx*8], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*8 + 4]
shl eax, 6
mov dword [ebp + ecx*8 + 4], eax
inc ecx
cmp ecx, edi
jb 0x43a010
mov ebp, dword [esp + 0x30]
cmp edx, dword [ebx + 0x44]
jae 0x43a99b
mov ecx, dword [ebx + 0x48]
lea esi, [edx*4]
mov eax, dword [ecx + esi]
cmp eax, dword [ecx + esi + 4]
je 0x43a99b
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x40], eax
cmp dword [esp + 0x10], 0
jne 0x43a967
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x10], 0
jne 0x43a967
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 1
push dword [esp + 0x28]
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x44], eax
cmp dword [esp + 0x10], 0
jne 0x43a967
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + esi]
mov esi, dword [ecx + esi + 4]
push edx
push ebp
sub esi, edx
call fcn.00401023
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x43a967
push esi
push ebp
call fcn.00402004
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x43a967
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x50], eax
cmp dword [esp + 0x10], 0
jne 0x43a930
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x54], eax
cmp dword [esp + 0x10], 0
jne 0x43a930
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
jne 0x43a930
push ebp
call fcn.00401bc2
movzx eax, ax
push ebp
mov dword [esp + 0x68], eax
call fcn.00401bc2
movzx edx, ax
add esp, 8
cmp edx, esi
ja 0x43a928
mov ecx, dword [esp + 0x60]
mov eax, ecx
and eax, 0xfff
mov dword [esp + 0x60], eax
shl eax, 2
cmp eax, esi
ja 0x43a928
add edx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
test ecx, 0x8000
je 0x43a221
mov edx, dword [ebp + 0x24]
mov eax, edx
mov ecx, dword [ebp]
sub eax, ecx
mov esi, dword [ebp + 0x20]
sub esi, ecx
cmp dword [esp + 0x24], eax
jae 0x43a1e9
mov edx, dword [esp + 0x24]
add edx, ecx
lea eax, [esp + 0x80]
mov dword [ebp + 0x20], edx
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.0043c310
mov ecx, dword [ebp + 0x20]
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [ebp]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, edx
sub ecx, eax
cmp esi, ecx
jae 0x43a21e
lea edx, [eax + esi]
mov dword [ebp + 0x20], edx
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.00402252
add esp, 0x18
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x10], 0
jne 0x43a902
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.00402252
add esp, 0x18
mov edx, eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x34], edx
jne 0x43a902
xor ecx, ecx
test edi, edi
je 0x43a2ad
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x40]
add esi, 4
mov eax, dword [esi]
mov eax, dword [eax + ecx*8]
shl eax, 0x10
mov dword [ebx + ecx*8], eax
mov eax, dword [esi]
mov eax, dword [eax + ecx*8 + 4]
shl eax, 0x10
mov dword [ebx + ecx*8 + 4], eax
inc ecx
cmp ecx, edi
jb 0x43a283
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0xa4]
jmp 0x43a2b7
mov eax, dword [esp + 0xa4]
lea esi, [eax + 4]
cmp dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
jbe 0x43a76c
nop word [eax + eax]
push ebp
call fcn.00401bc2
push ebp
mov word [esp + 0x72], ax
call fcn.00401bc2
movzx esi, ax
add esp, 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], esi
test esi, 0x8000
je 0x43a3ee
xor esi, esi
cmp dword [ebx], esi
jbe 0x43a31e
mov edi, dword [esp + 0x50]
push ebp
call fcn.00401bc2
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x43a305
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test esi, 0x4000
je 0x43a37d
mov eax, dword [ebx]
xor esi, esi
test eax, eax
je 0x43a351
mov edi, dword [esp + 0x54]
push ebp
call fcn.00401bc2
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
mov eax, dword [ebx]
cmp esi, eax
jb 0x43a336
mov edi, dword [esp + 0x18]
xor esi, esi
test eax, eax
je 0x43a379
mov edi, dword [esp + 0x48]
nop dword [eax + eax]
push ebp
call fcn.00401bc2
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x43a360
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x48]
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [esp + 0x64]
push ebx
call fcn.0043b010
add esp, 0x14
mov dword [esp + 0x1c], eax
test eax, eax
je 0x43a742
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
sub eax, ecx
mov dword [esp + 0x98], eax
mov eax, edx
sub eax, ecx
cmp dword [esp + 0x24], eax
jae 0x43a3c4
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [ebp + 0x20], edx
test esi, 0x2000
je 0x43a424
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.0043c310
mov dword [esp + 0x78], eax
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
jmp 0x43a437
mov edx, esi
and edx, 0xfff
cmp edx, dword [ebx + 0x3c]
jae 0x43a7a2
mov ecx, dword [ebx]
imul edx, ecx
lea eax, [ecx*4]
push eax
mov eax, dword [ebx + 0x40]
lea eax, [eax + edx*4]
push eax
push dword [esp + 0x58]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x43a322
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
test eax, eax
mov esi, eax
cmove esi, edi
push esi
push dword [ebx + 0x4c]
push ebp
call fcn.0043c170
push esi
push dword [ebx + 0x4c]
mov dword [esp + 0x84], eax
push ebp
call fcn.0043c170
mov edx, dword [esp + 0x40]
add esp, 0x18
mov ecx, eax
mov dword [esp + 0x58], ecx
test edx, edx
je 0x43a6f1
test ecx, ecx
je 0x43a6f1
mov eax, dword [esp + 0x70]
test eax, eax
je 0x43a6f1
cmp edx, 0xffffffff
jne 0x43a559
test edi, edi
je 0x43a6f1
mov ebx, dword [esp + 0x3c]
sub eax, ecx
mov edx, dword [esp + 0x34]
sub ecx, ebx
sub edx, ebx
mov dword [esp + 0x78], eax
mov ebp, ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x28], edi
mov edi, dword [ebp]
lea esi, [ecx + ebp]
mov eax, dword [esi + eax]
mov ebx, dword [edx + ebp]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esi]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x8c]
lea ebp, [ebp + 4]
mov edx, dword [esp + 0x88]
add eax, edi
mov ecx, dword [esp + 0x2c]
mov dword [ebp - 4], eax
mov eax, dword [esp + 0x84]
add eax, ebx
sub dword [esp + 0x28], 1
mov dword [edx + ebp - 4], eax
mov eax, dword [esp + 0x78]
jne 0x43a4b6
jmp 0x43a6e5
xor esi, esi
test edi, edi
je 0x43a59d
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
sub edi, edx
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
mov byte [esi + ebp], 0
lea edx, [edx + 8]
mov eax, dword [edx + edi - 8]
inc esi
mov ecx, dword [edx + edi - 4]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
cmp esi, ebx
jb 0x43a571
mov ebp, dword [esp + 0x30]
mov edi, ebx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x70]
xor esi, esi
cmp dword [esp + 0x38], esi
jbe 0x43a673
mov ebp, eax
mov edi, ecx
mov eax, dword [esp + 0x18]
sub ebp, ecx
mov ecx, dword [esp + 0x38]
nop word [eax + eax]
movzx ebx, word [edx + esi*2]
cmp ebx, eax
jae 0x43a65f
mov eax, dword [esp + 0x44]
mov byte [ebx + eax], 1
mov eax, dword [edi + ebp]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + ebx*8]
add eax, dword [esp + 0x90]
mov dword [ecx + ebx*8], eax
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x28]
add dword [ecx + ebx*8 + 4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
inc esi
add edi, 4
cmp esi, ecx
jb 0x43a5c0
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x28]
push dword [esp + 0xb0]
call fcn.0043f490
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x43a6ed
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
sub ebp, eax
mov dword [esp + 0x78], ebp
lea edi, [eax + 4]
mov eax, dword [esp + 0x3c]
sub eax, esi
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + ebp]
lea edi, [edi + 8]
mov eax, dword [esp + 0x20]
lea esi, [esi + 4]
sub ecx, dword [edi - 8]
mov edx, dword [esi - 4]
mov ebp, dword [esp + 0x2c]
mov eax, dword [eax + ebx*8]
inc ebx
sub eax, dword [edi - 0xc]
add dword [esi + ebp - 4], eax
lea eax, [ecx + edx]
mov ebp, dword [esp + 0x78]
mov dword [esi - 4], eax
cmp ebx, dword [esp + 0x18]
jb 0x43a6b3
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x43a710
push eax
push esi
call fcn.00401938
add esp, 8
mov dword [esp + 0x6c], 0
push dword [esp + 0x70]
push esi
call fcn.00401938
push dword [esp + 0x60]
push esi
call fcn.00401938
mov ecx, dword [ebp + 0x24]
add esp, 0x10
mov edx, dword [ebp]
mov eax, ecx
mov esi, dword [esp + 0x98]
sub eax, edx
cmp esi, eax
jae 0x43a73f
lea ecx, [edx + esi]
mov dword [ebp + 0x20], ecx
mov ecx, dword [esp + 0x5c]
movzx eax, word [esp + 0x6a]
inc ecx
add dword [esp + 0x24], eax
mov dword [esp + 0x5c], ecx
cmp ecx, dword [esp + 0x60]
jb 0x43a2d0
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x34]
lea esi, [eax + 4]
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x3c]
test byte [ebx + 0x2e8], 2
je 0x43a7af
mov dword [ecx + edi*4 - 0x10], 0
add eax, 4
mov dword [edx + edi*4 - 0x10], 0
mov dword [ecx + edi*4 - 0xc], 0
mov dword [edx + edi*4 - 0xc], 0
jmp 0x43a7b1
mov dword [esp + 0x10], 8
jmp 0x43a902
mov eax, esi
test byte [ebx + 0x2e8], 0x10
je 0x43a7dc
mov dword [ecx + edi*4 - 8], 0
mov esi, eax
mov dword [edx + edi*4 - 8], 0
mov dword [ecx + edi*4 - 4], 0
mov dword [edx + edi*4 - 4], 0
mov ebx, dword [esp + 0x18]
xor edi, edi
test ebx, ebx
je 0x43a850
mov ebp, dword [esp + 0xa4]
mov esi, ecx
sub esi, dword [esp + 0x34]
mov eax, dword [edx + esi]
lea edx, [edx + 4]
mov ecx, dword [esp + 0xa8]
add eax, 0x200
sar eax, 0xa
add dword [ecx + edi*8], eax
mov eax, dword [edx - 4]
add eax, 0x200
sar eax, 0xa
add dword [ecx + edi*8 + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + edi*8]
mov eax, dword [edx + esi - 4]
add eax, 0x8000
shr eax, 0x10
cwde
add dword [ecx], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + edi*8]
mov eax, dword [edx - 4]
add eax, 0x8000
inc edi
shr eax, 0x10
cwde
add dword [ecx + 4], eax
cmp edi, ebx
jb 0x43a7f3
lea esi, [ebp + 4]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0xa0]
test byte [eax + 0x2e8], 2
jne 0x43a8a9
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x20]
mov eax, dword [eax + ebx*8 - 0x1c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], ecx
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x18]
mov eax, dword [eax + ebx*8 - 0x14]
mov dword [edi + 0x4c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + ebx*8 - 0x18]
sub eax, dword [ecx + ebx*8 - 0x20]
add eax, 0x20
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x7c]
test byte [eax + 0x2e8], 0x10
jne 0x43a902
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x10]
mov eax, dword [eax + ebx*8 - 0xc]
mov dword [edi + 0xb8], eax
mov dword [edi + 0xb4], ecx
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 8]
mov eax, dword [eax + ebx*8 - 4]
mov dword [edi + 0xbc], ecx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0xc0], eax
mov eax, dword [ecx + ebx*8 - 4]
sub eax, dword [ecx + ebx*8 - 0xc]
add eax, 0x20
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [edi + 0xb0], eax
push dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00401938
push dword [esp + 0x3c]
push ebx
call fcn.00401938
add esp, 0x10
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
je 0x43a940
jmp 0x43a936
mov dword [esp + 0x10], 8
mov ebx, dword [esp + 0x14]
xor eax, eax
push eax
push ebx
call fcn.00401938
add esp, 8
push dword [esp + 0x50]
push ebx
call fcn.00401938
push dword [esp + 0x5c]
push ebx
call fcn.00401938
push dword [esp + 0x58]
push ebx
call fcn.00401938
push ebp
call fcn.0040201d
add esp, 0x1c
push dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
push ebp
call fcn.00401938
push dword [esp + 0x28]
push ebp
call fcn.00401938
push dword [esp + 0x54]
push ebp
call fcn.00401938
mov eax, dword [esp + 0x28]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 0x8c
ret