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

Disassembly:
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
mov ebp, ecx
mov eax, dword [ebx]
lea ecx, [esp + 0x28]
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x13], 0
call dword [eax + 0x94]
mov edx, eax
mov eax, dword [edx]
test eax, eax
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
je 0x43703a
test ecx, ecx
je 0x43703a
mov eax, dword [ebx]
push esi
lea ecx, [esp + 0x2c]
push edi
push ecx
mov ecx, ebx
call dword [eax + 0x98]
mov edi, dword [eax]
mov ecx, edi
mov edx, dword [eax + 4]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
mov eax, 0x20
sub eax, ecx
mov ecx, dword [esp + 0x9c]
cdq
sub eax, edx
mov edx, dword [ecx]
mov esi, eax
mov eax, 0x20
sar esi, 1
add esi, edx
mov edx, dword [esp + 0x5c]
shl edx, 5
sub eax, edx
cdq
sub eax, edx
mov edx, dword [ecx + 4]
sar eax, 1
add eax, edx
test ebx, ebx
mov dword [esp + 0x34], eax
je 0x436e16
mov ecx, dword [ebx + 0x128]
push 0x621c78
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
je 0x436e12
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], ebx
jmp 0x436e1e
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], 0
test edi, edi
jle 0x43701c
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jle 0x437002
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x7c]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 0
call fcn.0041a3e0
mov esi, dword [eax]
mov ecx, ebp
mov edi, dword [eax + 4]
push edi
push esi
mov edx, dword [eax + 8]
mov dword [esp + 0x98], edx
call fcn.0041a3b0
test al, al
je 0x436fe4
mov eax, dword [ebp + 0x2c]
imul eax, edi
add eax, esi
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x38]
lea edi, [ecx + eax*4]
test edi, edi
je 0x436fe4
push 1
mov ecx, edi
call fcn.00420ad0
test al, al
je 0x436fe4
mov eax, dword [esp + 0x3c]
and eax, 0x8000003f
jns 0x436ece
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, dword [esp + 0x40]
and ecx, 0x8000003f
jns 0x436edf
dec ecx
or ecx, 0xffffffc0
inc ecx
test eax, eax
jl 0x43702d
test ecx, ecx
jl 0x43702d
cmp eax, 0x40
jge 0x43702d
cmp ecx, 0x40
jge 0x43702d
cdq
and edx, 0x1f
add eax, edx
mov esi, eax
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar esi, 5
sar eax, 5
lea edx, [eax + esi*2]
mov ecx, dword [edi + edx*4 + 4]
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x436f7e
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x436f3b
mov eax, dword [ecx]
push ebx
call dword [eax + 0xb8]
test al, al
jne 0x436f7e
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x64]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
call fcn.0043c890
push eax
lea ecx, [esp + 0x4c]
call fcn.004b8b50
mov cl, byte [esp + 0x4c]
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x50]
mov byte [esp + 0x54], cl
push edx
lea ecx, [esp + 0x78]
mov dword [esp + 0x54], eax
call fcn.004b8b50
mov byte [esp + 0x13], 1
mov ecx, edi
call fcn.00421e10
test al, al
je 0x436fe4
mov eax, dword [edi]
mov esi, dword [eax]
cmp esi, eax
je 0x436fe4
mov ecx, dword [esi + 8]
test ecx, ecx
mov dword [esp + 0x28], ecx
je 0x436fb4
mov ecx, dword [ecx + 0x128]
push 0x621c78
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
jne 0x436fc1
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
push ebx
call dword [edx + 0xb8]
test al, al
jne 0x436fdc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0xa8]
call fcn.0043c890
mov byte [esp + 0x13], 1
mov esi, dword [esi]
mov eax, dword [edi]
cmp esi, eax
jne 0x436f91
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add ecx, 0x20
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
jne 0x436e42
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
add edx, 0x20
dec ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
jne 0x436e2e
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret 0xc
mov dword [esp + 0x1c], 0
jmp 0x436f7e
pop ebp
xor al, al
pop ebx
add esp, 0x84
ret 0xc