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

Disassembly:
sub esp, 0x58
push ebx
mov ebx, dword [esp + 0x68]
mov eax, dword [ebx]
push edi
mov edi, dword [esp + 0x68]
mov ecx, dword [edi]
mov edx, eax
xor edx, ecx
or eax, ecx
mov ecx, dword [esp + 0x64]
shr edx, 1
and edx, 0x7f7f7f7f
sub eax, edx
mov dword [ecx], eax
add ecx, 4
mov eax, 2
cmp dword [esp + 0x70], eax
mov dword [esp + 0x64], ecx
jb 0x5b8951
sub dword [esp + 0x70], eax
mov eax, dword [esp + 0x74]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov ecx, dword [edi]
push ebp
movzx edx, ch
mov dword [esp + 0x38], edx
mov ebp, ecx
and ecx, 0xff
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 4]
add edi, 4
movzx edx, ch
mov dword [esp + 0x44], edx
push esi
mov esi, ecx
and ecx, 0xff
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx]
mov edx, ecx
shr edx, 0x10
and edx, 0xff
mov dword [esp + 0x2c], edx
movzx edx, ch
mov dword [esp + 0x30], edx
and ecx, 0xff
add ebx, 4
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx]
mov edx, ecx
shr edx, 0x10
and edx, 0xff
mov dword [esp + 0x20], edx
movzx edx, ch
mov dword [esp + 0x24], edx
mov edx, dword [edi + 4]
add edi, 4
and ecx, 0xff
add ebx, 4
mov dword [esp + 0x10], ebx
movzx ebx, dh
mov dword [esp + 0x28], ecx
mov ecx, edx
and edx, 0xff
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
add edi, 4
shr ebp, 0x10
mov dword [esp + 0x14], edi
mov edi, edx
and ebp, 0xff
shr edi, 0x10
add dword [esp + 0x10], 4
and edi, 0xff
sub ebp, edi
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x54], ebx
movzx ebx, dh
sub ebp, ebx
and edx, 0xff
mov dword [esp + 0x60], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x40]
sub ebp, edx
mov dword [esp + 0x64], edx
mov edx, ebp
imul ebp, edx
mov edx, ebx
imul edx, ebx
shr esi, 0x10
shr ecx, 0x10
add eax, 0xc
and esi, 0xff
and ecx, 0xff
add ebp, edx
mov edx, dword [esp + 0x1c]
mov ebx, edx
imul ebx, edx
add ebp, ebx
mov ebx, dword [esp + 0x4c]
sub ebx, dword [esp + 0x28]
mov dword [eax], ebp
mov ebp, ebx
imul ebp, ebx
mov edx, esi
sub edx, dword [esp + 0x20]
add eax, 0xc
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x24]
mov ebx, edx
imul ebx, edx
mov edx, dword [esp + 0x1c]
add ebp, ebx
mov ebx, edx
imul ebx, edx
add ebp, ebx
mov ebx, dword [esp + 0x58]
sub ebx, dword [esp + 0x34]
mov edx, ecx
sub edx, dword [esp + 0x2c]
mov dword [eax - 8], ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x30]
mov ebp, ebx
imul ebp, ebx
mov ebx, edx
imul ebx, edx
mov edx, dword [esp + 0x1c]
add ebp, ebx
mov ebx, edx
imul ebx, edx
mov edx, dword [esp + 0x78]
add ebp, ebx
mov dword [eax - 4], ebp
add edx, 0xffffffff
mov dword [esp + 0x18], edx
je 0x5b88b1
jmp 0x5b85e0
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
movzx ebx, dh
mov ebp, edx
and edx, 0xff
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x3c], ebx
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
mov dword [esp + 0x2c], ebx
sub esi, dword [esp + 0x2c]
movzx ebx, dh
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x48]
sub esi, ebx
and edx, 0xff
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x4c]
sub ebx, edx
mov dword [esp + 0x34], edx
mov edx, ebx
imul ebx, edx
mov edx, esi
imul edx, esi
add ebx, edx
mov edx, dword [esp + 0x1c]
mov esi, edx
imul esi, edx
add ebx, esi
mov esi, dword [esp + 0x58]
sub esi, dword [esp + 0x64]
mov dword [eax], ebx
mov ebx, esi
imul ebx, esi
mov edx, ecx
sub edx, edi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x60]
shr ebp, 0x10
mov esi, edx
imul esi, edx
mov edx, dword [esp + 0x1c]
add ebx, esi
mov esi, edx
imul esi, edx
add ebx, esi
mov esi, dword [esp + 0x40]
sub esi, dword [esp + 0x28]
and ebp, 0xff
mov edx, ebp
sub edx, dword [esp + 0x20]
mov dword [eax + 4], ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x24]
mov ebx, esi
imul ebx, esi
add dword [esp + 0x14], 4
add dword [esp + 0x10], 4
mov esi, edx
imul esi, edx
mov edx, dword [esp + 0x1c]
add ebx, esi
mov esi, edx
imul esi, edx
add ebx, esi
mov dword [eax + 8], ebx
add eax, 0xc
sub dword [esp + 0x18], 1
je 0x5b88b1
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
movzx ebx, dh
mov esi, edx
and edx, 0xff
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x48], ebx
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
mov dword [esp + 0x20], ebx
sub ecx, dword [esp + 0x20]
movzx ebx, dh
and edx, 0xff
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
sub ecx, ebx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x58]
sub ebx, edx
mov dword [esp + 0x28], edx
mov edx, ebx
imul ebx, edx
mov edx, ecx
imul edx, ecx
mov ecx, dword [esp + 0x1c]
add ebx, edx
mov edx, ecx
imul edx, ecx
add ebx, edx
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x34]
mov dword [eax], ebx
mov ecx, ebp
sub ecx, dword [esp + 0x2c]
mov ebx, edx
imul ebx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x30]
shr esi, 0x10
mov edx, ecx
imul edx, ecx
mov ecx, dword [esp + 0x1c]
add ebx, edx
mov edx, ecx
imul edx, ecx
add ebx, edx
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x60]
and esi, 0xff
add dword [esp + 0x14], 4
add dword [esp + 0x10], 4
mov ecx, esi
sub ecx, edi
mov edi, dword [esp + 0x4c]
sub edi, dword [esp + 0x64]
mov dword [eax + 4], ebx
mov ebx, edi
imul ebx, edi
mov edi, edx
imul edi, edx
mov edx, ecx
imul edx, ecx
add ebx, edi
add ebx, edx
mov dword [eax + 8], ebx
add eax, 0xc
sub dword [esp + 0x18], 1
je 0x5b88b1
mov edi, dword [esp + 0x14]
mov edx, dword [edi]
movzx ebx, dh
mov ecx, edx
and edx, 0xff
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x54], ebx
movzx ebx, dh
add edi, 4
mov dword [esp + 0x14], edi
mov edi, edx
mov dword [esp + 0x60], ebx
and edx, 0xff
shr edi, 0x10
and edi, 0xff
sub ebp, edi
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x3c]
sub ebp, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x40]
sub ebp, edx
mov dword [esp + 0x64], edx
mov edx, ebp
imul ebp, edx
mov edx, ebx
imul edx, ebx
add ebp, edx
mov edx, dword [esp + 0x1c]
mov ebx, edx
imul ebx, edx
add ebp, ebx
mov ebx, dword [esp + 0x4c]
sub ebx, dword [esp + 0x28]
mov dword [eax], ebp
mov ebp, ebx
imul ebp, ebx
mov edx, esi
sub edx, dword [esp + 0x20]
shr ecx, 0x10
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x24]
and ecx, 0xff
mov ebx, edx
imul ebx, edx
mov edx, dword [esp + 0x1c]
add ebp, ebx
mov ebx, edx
imul ebx, edx
add ebp, ebx
mov ebx, dword [esp + 0x58]
sub ebx, dword [esp + 0x34]
mov edx, ecx
sub edx, dword [esp + 0x2c]
mov dword [eax + 4], ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x30]
mov ebp, ebx
imul ebp, ebx
add dword [esp + 0x10], 4
mov ebx, edx
imul ebx, edx
mov edx, dword [esp + 0x1c]
add ebp, ebx
mov ebx, edx
imul ebx, edx
add ebp, ebx
mov dword [eax + 8], ebp
add eax, 0xc
sub dword [esp + 0x18], 1
jne 0x5b85e0
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x78]
cmp eax, ecx
jbe 0x5b8937
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x20]
add eax, dword [ecx]
add edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x1c]
add ebx, dword [ecx + 0x10]
add eax, dword [ecx + 0xc]
add edx, dword [ecx + 8]
add ebx, dword [ecx + 4]
cmp eax, edx
jge 0x5b8900
cmp eax, ebx
jge 0x5b890b
mov edx, dword [esi]
mov eax, dword [edi + 8]
jmp 0x5b8911
cmp edx, ebx
jge 0x5b890b
mov edx, dword [esi + 8]
mov eax, dword [edi]
jmp 0x5b8911
mov eax, dword [edi + 4]
mov edx, dword [esi + 4]
mov ebx, eax
xor ebx, edx
shr ebx, 1
and ebx, 0x7f7f7f7f
or eax, edx
sub eax, ebx
mov dword [ebp], eax
add ebp, 4
add ecx, 0xc
add esi, 4
add edi, 4
sub dword [esp + 0x78], 1
jne 0x5b88d7
mov edi, dword [edi + 4]
mov esi, dword [esi + 4]
mov eax, edi
xor eax, esi
shr eax, 1
or edi, esi
and eax, 0x7f7f7f7f
sub edi, eax
pop esi
mov dword [ebp], edi
pop ebp
pop edi
pop ebx
add esp, 0x58
ret