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

Disassembly:
sub esp, 0x68
mov eax, dword [esp + 0x78]
shr dword [esp + 0x74], 1
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0x78]
mov edx, esi
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x38], ecx
lea ebx, [esi + 0x40]
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0x24]
push edi
lea edi, [esi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x44]
cmovle edx, edi
cmovle edi, esi
mov esi, ebx
mov ebp, edi
mov dword [esp + 0x7c], ebp
cmp dword [edx + 4], eax
mov eax, dword [edi + 4]
cmovle ebx, edx
cmovg esi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebx
cmp eax, dword [ebx + 4]
jle 0x43d3eb
mov ebp, ebx
mov dword [esp + 0x7c], ebx
mov ebx, edi
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x28]
mov esi, dword [ebp + 4]
mov dword [esp + 0x64], esi
mov edx, dword [edx + 4]
lea ecx, [esi + 0xffff]
sar ecx, 0x10
mov dword [esp + 0x60], ecx
lea eax, [edx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x20], eax
cmp ecx, eax
je 0x43dd9b
mov ebx, dword [ebx + 4]
sub edx, esi
lea eax, [ebx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x58], eax
mov eax, edx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov ecx, dword [ebp]
mov edi, eax
mov eax, dword [esp + 0x28]
mov esi, edx
push esi
push edi
mov dword [esp + 0x5c], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x7c]
mov ebp, edx
push esi
push edi
mov dword [esp + 0x4c], ebp
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x90], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x7c]
push esi
mov dword [esp + 0x34], edx
push edi
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov esi, dword [esp + 0x64]
sub ebx, esi
mov dword [esp + 0x34], edx
mov eax, ebx
cdq
mov ecx, eax
mov ebx, edx
push ebx
mov eax, ebp
mov dword [esp + 0x50], ecx
cdq
push ecx
mov edi, edx
mov dword [esp + 0x50], ebx
push edi
push eax
mov dword [esp + 0x8c], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x54]
mov ecx, eax
mov eax, dword [esp + 0x18]
shrd ecx, edx, 0x10
add ecx, ebp
mov ebx, dword [eax]
mov dword [esp + 0x5c], ecx
cmp ebx, ecx
je 0x43dd9b
mov eax, dword [esp + 0x60]
shl eax, 0x10
sub eax, esi
cdq
mov ecx, edx
mov dword [esp + 0x64], eax
push ecx
push eax
push edi
push dword [esp + 0x88]
mov dword [esp + 0x60], ecx
call fcn.0059bca0
push dword [esp + 0x50]
shrd eax, edx, 0x10
add eax, ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
cdq
push ebp
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x50]
shrd eax, edx, 0x10
push ebp
add eax, dword [esp + 0x90]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, dword [esp + 0x5c]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov ebp, edx
push dword [esp + 0x50]
push esi
push edi
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x28]
mov eax, dword [eax + 0x18]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x90]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x48]
mov dword [esp + 0x20], edx
push dword [esp + 0x50]
push dword [esp + 0x70]
push dword [esp + 0x78]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x28]
mov eax, dword [eax + 0x1c]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x34]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
mov ecx, dword [esp + 0x60]
mov ebx, edx
imul ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x2c], ebx
lea eax, [eax + ecx*2]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
je 0x43da01
mov eax, dword [esp + 0x18]
push dword [esp + 0x48]
push dword [esp + 0x50]
mov ebp, dword [eax]
mov eax, ebp
sub eax, dword [esp + 0x5c]
cdq
push 0x10000
push 0
mov edi, eax
mov esi, edx
call fcn.0059bbf0
push edx
push eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x50]
mov eax, edx
push dword [esp + 0x68]
mov dword [esp + 0x54], eax
cdq
push edx
push eax
call fcn.0059bca0
mov esi, eax
shrd esi, edx, 0x10
add esi, dword [esp + 0x54]
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x7c]
jge 0x43d856
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x43da05
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x68], eax
mov eax, ebx
mov dword [esp + 0x6c], edx
cdq
mov dword [esp + 0x70], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x48], edx
lea edx, [ebp + 0xffff]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], edx
mov ebx, edx
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x24], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x74]
push dword [esp + 0x74]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x50]
shrd eax, edx, 0x10
push dword [esp + 0x7c]
add eax, dword [esp + 0x20]
mov dword [esp + 0x84], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x54]
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x88]
mov eax, ebx
add ecx, dword [esp + 0x14]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x60], ecx
lea esi, [edx + eax*2]
mov dword [esp + 0x64], esi
test ebp, ebp
jle 0x43d800
mov ebx, dword [esp + 0x74]
nop dword [eax]
shr ecx, 0x10
mov eax, ebx
imul ecx, dword [esp + 0x38]
dec ebp
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x43d7e1
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + ecx*4]
mov edx, ecx
shr edx, 0x18
cmp edx, 8
jbe 0x43d7e1
movzx esi, word [esi]
mov eax, ecx
and eax, 0xff00
mov edi, ecx
imul eax, edx
and edi, 0xff0000
imul edi, edx
movzx ecx, cl
imul ecx, edx
mov edx, esi
and edx, 0x7e0
shr eax, 0xd
add edx, eax
shr edi, 0x10
mov eax, esi
shr edx, 5
and eax, 0x1f
shr ecx, 0xb
and esi, 0xf800
and edi, 0xf800
add eax, ecx
add esi, edi
shr eax, 5
shr esi, 5
or edx, eax
or edx, esi
mov esi, dword [esp + 0x64]
mov word [esi], dx
mov ecx, dword [esp + 0x60]
add esi, 2
add ecx, dword [esp + 0x2c]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
test ebp, ebp
jg 0x43d760
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x4c]
add dword [esp + 0x54], eax
mov ebp, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
lea eax, [ecx + ecx]
add dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
add dword [esp + 0x10], eax
add ebp, dword [esp + 0x44]
add edx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x50], edx
test ecx, ecx
jg 0x43d6e0
mov ebx, dword [esp + 0x2c]
jmp 0x43da05
jle 0x43da05
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x43da05
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x70], eax
mov eax, ebx
mov dword [esp + 0x74], edx
cdq
mov dword [esp + 0x68], eax
lea eax, [ebp + 0xffff]
mov dword [esp + 0x54], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x50], eax
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x24], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x74]
shrd eax, edx, 0x10
push dword [esp + 0x74]
add eax, dword [esp + 0x20]
mov dword [esp + 0x58], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x54]
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x88]
mov eax, ebx
add ecx, dword [esp + 0x14]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x60], ecx
lea esi, [edx + eax*2]
mov dword [esp + 0x64], esi
test ebp, ebp
jle 0x43d9b0
mov ebx, dword [esp + 0x48]
nop word [eax + eax]
shr ecx, 0x10
mov eax, ebx
imul ecx, dword [esp + 0x38]
dec ebp
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x43d991
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + ecx*4]
mov edx, ecx
shr edx, 0x18
cmp edx, 8
jbe 0x43d991
movzx esi, word [esi]
mov eax, ecx
and eax, 0xff00
mov edi, ecx
imul eax, edx
and edi, 0xff0000
imul edi, edx
movzx ecx, cl
imul ecx, edx
mov edx, esi
and edx, 0x7e0
shr eax, 0xd
add edx, eax
shr edi, 0x10
mov eax, esi
shr edx, 5
and eax, 0x1f
shr ecx, 0xb
and esi, 0xf800
and edi, 0xf800
add eax, ecx
add esi, edi
shr eax, 5
shr esi, 5
or edx, eax
or edx, esi
mov esi, dword [esp + 0x64]
mov word [esi], dx
mov ecx, dword [esp + 0x60]
add esi, 2
add ecx, dword [esp + 0x2c]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
test ebp, ebp
jg 0x43d910
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x44]
add ebp, eax
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
lea ecx, [edx + edx]
add dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x30]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x34]
add dword [esp + 0x14], ecx
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x50], eax
test ecx, ecx
jg 0x43d894
mov ebx, dword [esp + 0x2c]
jmp 0x43da05
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x58]
sub dword [esp + 0x20], eax
je 0x43dd9b
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
sub eax, edi
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, dword [eax]
sub eax, dword [edx]
cdq
push edx
push eax
push ecx
push esi
call fcn.0059bca0
mov eax, dword [esp + 0x58]
mov ecx, edx
shl eax, 0x10
sub eax, edi
mov dword [esp + 0x54], ecx
imul ecx
mov ecx, dword [esp + 0x18]
mov esi, eax
shrd esi, edx, 0x10
mov eax, dword [ecx]
add esi, eax
cmp dword [esp + 0x5c], eax
jge 0x43dc0b
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x43dd9b
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x70], eax
mov eax, ebx
mov dword [esp + 0x74], edx
cdq
mov dword [esp + 0x68], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x5c], eax
lea ebx, [ebp + 0xffff]
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x20], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x74]
shrd eax, edx, 0x10
push dword [esp + 0x74]
add eax, dword [esp + 0x20]
mov dword [esp + 0x68], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x5c]
mov ecx, ebx
shrd eax, edx, 0x10
mov edx, dword [esp + 0x88]
sub ebp, ebx
add eax, dword [esp + 0x14]
sar ecx, 0x10
sar ebp, 0x10
mov dword [esp + 0x60], eax
lea esi, [edx + ecx*2]
mov dword [esp + 0x64], esi
test ebp, ebp
jle 0x43dbc2
mov ebx, dword [esp + 0x58]
nop dword [eax + eax]
mov ecx, eax
dec ebp
shr ecx, 0x10
mov eax, ebx
imul ecx, dword [esp + 0x38]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x43dba3
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + ecx*4]
mov edx, ecx
shr edx, 0x18
cmp edx, 8
jbe 0x43dba3
movzx esi, word [esi]
mov eax, ecx
and eax, 0xff00
mov edi, ecx
imul eax, edx
and edi, 0xff0000
imul edi, edx
movzx ecx, cl
imul ecx, edx
mov edx, esi
and edx, 0x7e0
shr eax, 0xd
add edx, eax
shr edi, 0x10
mov eax, esi
shr edx, 5
and eax, 0x1f
shr ecx, 0xb
and esi, 0xf800
and edi, 0xf800
add eax, ecx
add esi, edi
shr eax, 5
shr esi, 5
or edx, eax
or edx, esi
mov esi, dword [esp + 0x64]
mov word [esi], dx
mov eax, dword [esp + 0x60]
add esi, 2
add eax, dword [esp + 0x2c]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], eax
test ebp, ebp
jg 0x43db20
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x54]
add dword [esp + 0x5c], eax
mov ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x44]
lea eax, [ecx + ecx]
add dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x7c], ebp
test ecx, ecx
jg 0x43daa3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
jle 0x43dd9b
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x43dd9b
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x70], eax
mov eax, ebx
mov dword [esp + 0x74], edx
cdq
mov dword [esp + 0x68], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x5c], eax
nop
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x20], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x74]
shrd eax, edx, 0x10
push dword [esp + 0x74]
add eax, dword [esp + 0x20]
mov dword [esp + 0x68], eax
call fcn.0059bca0
shrd eax, edx, 0x10
mov edx, dword [esp + 0x88]
mov ecx, ebx
add eax, dword [esp + 0x14]
sub ebp, ebx
sar ecx, 0x10
add ebp, 0xffff
sar ebp, 0x10
mov dword [esp + 0x60], eax
lea edx, [edx + ecx*2]
mov dword [esp + 0x64], edx
test ebp, ebp
jle 0x43dd56
mov ebx, dword [esp + 0x58]
shr eax, 0x10
mov ecx, ebx
imul eax, dword [esp + 0x38]
dec ebp
shr ecx, 0x10
add eax, ecx
cmp eax, dword [esp + 0x3c]
jae 0x43dd37
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + eax*4]
mov ecx, eax
shr ecx, 0x18
cmp ecx, 8
jbe 0x43dd37
movzx edx, word [edx]
mov edi, eax
mov esi, eax
and edi, 0xff0000
movzx eax, al
and esi, 0xff00
imul eax, ecx
imul edi, ecx
imul esi, ecx
mov ecx, edx
and ecx, 0x1f
shr eax, 0xb
add ecx, eax
shr edi, 0x10
mov eax, edx
shr esi, 0xd
and eax, 0xf800
shr ecx, 5
and edi, 0xf800
and edx, 0x7e0
add eax, edi
add edx, esi
shr eax, 5
shr edx, 5
or ecx, eax
or ecx, edx
mov edx, dword [esp + 0x64]
mov word [edx], cx
mov eax, dword [esp + 0x60]
add edx, 2
add eax, dword [esp + 0x2c]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
test ebp, ebp
jg 0x43dcb6
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x54]
lea ecx, [edx + edx]
add dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x30]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x34]
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x5c], eax
test ecx, ecx
jg 0x43dc40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret