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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xcc
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x84], 0
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], 1
lea eax, [esp + 0x84]
mov dword [esp + 0x98], eax
lea ebx, [esp + 0x90]
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.0043bc70
test eax, eax
jle 0x43dee0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
and eax, 1
mov dword [esp + 0x28], eax
je 0x43dee0
mov dword [esp + 4], ebx
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
call fcn.0043bc70
test eax, eax
js 0x43dee0
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
call fcn.0043b4f0
cmp eax, 0x2000
ja 0x43dee0
mov dword [esp], ebp
call fcn.0043b4f0
cmp eax, 0x2000
ja 0x43dee0
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov ecx, 0xc
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
call fcn.0043b4f0
cmp eax, 0x17
jbe 0x43dec0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 2
mov dword [esp + 0x90], 1
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0043b100
mov eax, dword [ebp + 4]
lea esi, [eax + 1]
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0043adc0
test eax, eax
je 0x43dbc0
mov dword [esp + 0x24], 0
xor esi, esi
mov edi, dword [esp + 0x20]
lea edx, [edi + edi]
add edx, edi
lea ebp, [ebx + edx*4]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ecx]
add edx, ecx
lea ebx, [ebx + edx*4]
mov edi, eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x43d9df
mov eax, dword [ebp + 4]
shl eax, 2
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.0042b3a0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp], 1
mov dword [ebp + 4], 0
mov dword [ebp + 8], 0
add ebp, 0xc
cmp ebx, ebp
jne 0x43d9bb
mov eax, edi
mov edx, dword [esp + 0x98]
test edx, edx
je 0x43da39
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x94]
lea ecx, [eax*4]
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0042b3a0
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov edx, dword [esp + 0xa4]
test edx, edx
je 0x43da96
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa0]
lea ecx, [eax*4]
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0042b3a0
mov edx, dword [esp + 0xa4]
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
test esi, esi
je 0x43dae2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
lea edx, [eax*4]
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.0042b3a0
mov dword [esp], esi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov edi, dword [esp + 0x24]
test edi, edi
je 0x43db29
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
lea edx, [eax*4]
mov dword [esp + 4], edx
mov dword [esp], edi
call fcn.0042b3a0
mov dword [esp], edi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov edx, dword [esp + 0x74]
test edx, edx
je 0x43db77
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
lea ecx, [eax*4]
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0042b3a0
mov edx, dword [esp + 0x74]
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov ecx, dword [esp + 0xf0]
test ecx, ecx
je 0x43de30
mov edi, dword [esp + 0xf0]
mov edx, dword [edi + 8]
test edx, edx
je 0x43de30
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], esi
lea eax, [esp + 0x9c]
mov dword [esp], eax
call fcn.0043adc0
test eax, eax
jne 0x43de70
add esi, esi
cmp esi, 0x2710
ja 0x43e277
test esi, esi
jne 0x43de90
mov eax, dword [esp + 0xe4]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
inc eax
je 0x43df24
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x43df60
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 8]
test eax, eax
je 0x43df60
lea edi, [esp + 0x54]
mov dword [esp + 0x2c], edi
mov ecx, 3
mov esi, dword [esp + 0xf0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 4], ebp
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.0043bc70
test eax, eax
js 0x43deea
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
lea eax, [esp + 0x9c]
mov dword [esp], eax
call fcn.0043d350
test eax, eax
jne 0x43df10
mov eax, dword [ebp + 4]
inc eax
mov dword [esp + 4], eax
lea eax, [esp + 0x9c]
mov dword [esp], eax
call fcn.0043adc0
test eax, eax
jne 0x43df10
mov edi, dword [esp + 0x24]
lea eax, [edi + edi + 4]
and eax, 8
add eax, edi
mov esi, edi
imul esi, eax
mov ecx, 2
mov edx, ecx
sub edx, esi
imul eax, edx
mov esi, edi
imul esi, eax
mov edx, ecx
sub edx, esi
imul eax, edx
imul edi, eax
mov edx, edi
sub edx, ecx
imul edx, eax
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp], edx
mov ecx, ebp
mov esi, dword [esp + 0x2c]
mov edx, esi
lea eax, [esp + 0x9c]
call fcn.0043ab40
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0043b100
test eax, eax
jne 0x43df10
mov dword [esp + 0x50], 1
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 1
lea eax, [esp + 0x50]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, ebp
lea edx, [esp + 0x84]
mov eax, ebx
call fcn.0043ab40
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x68]
cmp dword [esp + 0x20], 2
je 0x43e19a
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0xec], ebp
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43de08
dec eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x34]
mov edx, dword [eax + esi*4]
mov cl, byte [esp + 0x30]
shr edx, cl
and edx, 1
jne 0x43ddda
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43dda2
dec eax
je 0x43e0b9
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
mov ecx, esi
sub ecx, eax
shl edx, cl
or dword [esp + 0x40], edx
cmp eax, esi
je 0x43e01a
mov dword [esp + 0x38], 2
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x43ddaa
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x43e28b
dec dword [esp + 0x34]
mov dword [esp + 0x30], 0x1f
jmp 0x43ddaf
mov ebx, dword [esp + 0x5c]
test ebx, ebx
je 0x43dbb0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
lea edx, [eax*4]
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0042b3a0
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x1c]
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
xor esi, esi
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x20], ecx
jae 0x43d9fd
jmp 0x43d9a1
mov dword [esp + 4], 4
mov dword [esp], esi
call sub.msvcrt.dll_calloc
test eax, eax
je 0x43e277
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], eax
jmp 0x43dbf1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 2
jmp 0x43d95f
mov eax, 0xfffffffc
jmp 0x43dbb0
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
lea eax, [esp + 0x9c]
mov dword [esp], eax
call fcn.0043b100
test eax, eax
je 0x43dc9c
lea esi, [esi]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x68]
jmp 0x43de7a
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
lea esi, [esp + 0x78]
mov dword [esp], esi
call fcn.0043b100
test eax, eax
jne 0x43df10
mov dword [esp + 0x78], 1
mov dword [esp + 0xe4], esi
jmp 0x43dc05
mov dword [esp + 4], 4
mov dword [esp], 1
call sub.msvcrt.dll_calloc
test eax, eax
je 0x43e47c
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], eax
mov dword [eax], 1
mov eax, dword [ebp + 4]
shl eax, 6
mov dword [esp + 4], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x2c], eax
mov dword [esp], eax
call fcn.0043b940
test eax, eax
jne 0x43df10
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.0043d350
test eax, eax
jne 0x43df10
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x43dc3c
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0xf0]
mov dword [esi], eax
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0xf0]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xf0]
lea edi, [eax + 4]
and edi, 0xfffffffc
sub eax, edi
mov esi, dword [esp + 0x2c]
sub esi, eax
add eax, 0xc
shr eax, 2
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x43dc3c
mov dword [esp + 0x38], 0
lea ebp, [esp + 0x6c]
lea esi, [esi]
lea esi, [esi]
mov dword [esp + 0x48], ebx
mov edi, ebx
xor esi, esi
jmp 0x43e04e
lea eax, [esi + 1]
add edi, 0xc
cmp dword [esp + 0x1c], eax
je 0x43e080
mov esi, eax
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.004403e0
and eax, 0xff
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.00440960
test eax, eax
je 0x43e040
mov esi, dword [esp + 0x4c]
jmp 0x43de7a
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov edx, ebp
mov eax, ebx
call fcn.0043ab40
mov eax, dword [esp + 0x38]
inc eax
mov edi, dword [esp + 0x2c]
cmp eax, edi
jae 0x43e10c
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
jmp 0x43e030
mov esi, ebx
lea ebp, [esp + 0x6c]
mov edi, edx
jmp 0x43e0de
inc edi
add esi, 0xc
cmp dword [esp + 0x1c], edi
je 0x43e253
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.004403e0
and eax, 0xff
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00440960
test eax, eax
je 0x43e0d0
jmp 0x43e077
xor edx, edx
mov dword [esp + 0x2c], esi
mov esi, edx
mov edi, dword [esp + 0x48]
jmp 0x43e130
lea eax, [esi + 1]
add edi, 0xc
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
je 0x43e15e
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004403e0
and eax, 0xff
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.00440960
test eax, eax
je 0x43e120
jmp 0x43e077
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov edx, ebp
mov eax, ebx
call fcn.0043ab40
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 0
jmp 0x43dda2
mov eax, dword [ebp + 4]
inc eax
mov dword [esp + 4], eax
lea edi, [esp + 0xa8]
mov dword [esp], edi
call fcn.0043adc0
test eax, eax
jne 0x43de7a
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0043b100
test eax, eax
jne 0x43de7a
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, ebp
mov edx, edi
mov eax, edi
call fcn.0043ab40
mov ecx, dword [ebp + 4]
lea eax, [ecx + 1]
mov dword [esp + 4], eax
lea ecx, [esp + 0xb4]
mov dword [esp], ecx
call fcn.0043adc0
test eax, eax
jne 0x43de7a
mov dword [esp + 4], edi
lea edi, [esp + 0xb4]
mov dword [esp], edi
call fcn.0043b100
test eax, eax
jne 0x43de7a
lea edi, [esp + 0x60]
mov dword [esp + 4], edi
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, ebp
lea edx, [esp + 0x9c]
lea eax, [esp + 0xb4]
call fcn.0043ab40
jmp 0x43dd69
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov edx, ebp
mov eax, ebx
call fcn.0043ab40
jmp 0x43dda2
xor esi, esi
mov dword [esp + 0x24], 0
mov eax, 0xfffffff0
jmp 0x43de7a
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x43e362
mov dword [esp + 0x30], 0
lea eax, [esp + 0x6c]
mov dword [esp + 0x38], esi
mov dword [esp + 0xec], ebp
mov ebp, eax
mov dword [esp + 0x34], ebx
mov edi, ebx
xor esi, esi
jmp 0x43e2de
lea eax, [esi + 1]
add edi, 0xc
cmp dword [esp + 0x1c], eax
je 0x43e310
mov esi, eax
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.004403e0
and eax, 0xff
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.00440960
test eax, eax
je 0x43e2d0
mov esi, dword [esp + 0x38]
jmp 0x43de7a
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov edx, ebp
mov eax, ebx
call fcn.0043ab40
mov edi, dword [esp + 0x40]
mov eax, edi
add eax, edi
mov dword [esp + 0x40], eax
test dword [esp + 0x1c], eax
jne 0x43e3e4
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x2c], eax
jne 0x43e2bb
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x50], 1
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 1
lea eax, [esp + 0x50]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, ebp
lea edx, [esp + 0x84]
mov eax, ebx
call fcn.0043ab40
cmp dword [esp + 0x44], 0xffffffff
jne 0x43e3ca
mov eax, dword [esp + 0xe8]
cmp dword [eax + 4], 0
je 0x43e3ca
mov eax, dword [eax + 8]
test byte [eax], 1
jne 0x43e452
mov dword [esp + 4], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.0043b100
xor eax, eax
jmp 0x43de7a
xor edi, edi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x34]
jmp 0x43e400
lea eax, [edi + 1]
add esi, 0xc
mov ecx, dword [esp + 0x28]
cmp edi, ecx
je 0x43e42e
mov edi, eax
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.004403e0
and eax, 0xff
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00440960
test eax, eax
je 0x43e3f0
jmp 0x43e307
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov edx, ebp
mov eax, ebx
call fcn.0043ab40
jmp 0x43e345
mov dword [esp + 0x90], 0xffffffff
mov dword [esp], 1
mov ecx, ebx
mov edx, ebp
mov eax, ebx
call fcn.0043c0e0
test eax, eax
je 0x43e3ca
jmp 0x43de7a
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x68]
mov eax, 0xfffffff0
jmp 0x43de7a