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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push ebx
mov ebx, dword [ecx + 0xc]
mov dword [esp + 0x10], edx
mov edx, dword [eax]
push ebp
push esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x2c], edx
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x10], edx
test ebx, ebx
jle 0x43182f
push edi
mov eax, dword [esp + 0x78]
test eax, eax
je 0x431672
cmp edx, dword [eax + 0xc]
jg 0x431825
cmp edx, dword [eax + 4]
jl 0x431818
xor edi, edi
mov dword [esp + 0x10], edi
test esi, esi
jle 0x43180d
mov ebp, dword [ecx + 8]
mov ecx, dword [ecx + 4]
mov eax, ebp
imul eax, edx
add eax, edi
mov edx, dword [ecx + eax*4]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x70]
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x1c], edx
push ecx
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x48], ebp
call fcn.00431070
add esp, 0xc
test eax, eax
je 0x4317ec
mov ecx, dword [esp + 0x20]
xor ebx, ebx
test ecx, ecx
jbe 0x43175f
mov dword [esp + 0x18], esi
lea esp, [esp]
lea eax, [ebx + edi]
cmp eax, dword [esp + 0x24]
jge 0x4317ec
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x431751
mov edi, dword [esp + 0x18]
add ebp, ebp
add ebp, ebp
lea ecx, [ecx]
mov ecx, dword [esp + 0x14]
lea edx, [esi + ecx]
cmp edx, dword [esp + 0x2c]
jge 0x4317e8
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
imul ecx, esi
add ecx, ebx
mov eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x70]
mov ecx, dword [edi]
mov dword [esp + 0x34], eax
push edx
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], ecx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00431070
add esp, 0xc
test eax, eax
je 0x4317e8
inc esi
add edi, ebp
cmp esi, dword [esp + 0x1c]
jb 0x4316f0
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], 4
inc ebx
cmp ebx, ecx
jb 0x4316d0
mov eax, dword [esp + 0x14]
lea edx, [edi + ecx]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
add eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], edx
test eax, eax
je 0x431799
lea edx, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x4317ec
mov esi, dword [esp + 0x6c]
mov ecx, dword [esi + 8]
inc ecx
push ecx
mov ecx, esi
call fcn.00431570
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x40]
shl eax, 4
add eax, dword [esi]
mov dword [eax], edx
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x48]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], ecx
inc dword [esi + 8]
cmp dword [esp + 0x74], 0
mov eax, 1
mov dword [esp + 0x28], eax
jne 0x431827
mov edx, dword [esp + 0x48]
dec edx
mov edi, edx
jmp 0x4317ec
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
inc edi
cmp edi, esi
mov dword [esp + 0x10], edi
jl 0x431680
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
test ebp, ebp
je 0x431818
cmp dword [esp + 0x74], 0
jne 0x431825
inc edx
cmp edx, ebx
mov dword [esp + 0x14], edx
jl 0x431658
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x50
ret