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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x34
mov ecx, eax
test ecx, ecx
je 0x408a03
mov edx, ecx
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x408a0d
mov esi, dword [ecx + 0x34]
mov edx, dword [edx + 0x34]
mov ebp, dword [edx + 0x68]
mov edi, dword [edx + 0x70]
mov ebx, dword [edx + 0x78]
add ebx, ebp
add ebx, 0xffffffff
mov edx, dword [edx + 0x7c]
add edx, edi
add edx, 0xffffffff
mov dword [esp + 0x30], edx
cmp ebp, dword [esi + 0x78]
jge 0x408731
cmp edi, dword [esi + 0x7c]
jge 0x408731
test ebx, ebx
jl 0x408731
test edx, edx
jl 0x408731
mov byte [esi + 0x4a], 1
mov edx, dword [esi + 4]
mov dword [esp + 8], edx
test edx, edx
jne 0x4087b6
mov eax, ebp
cdq
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], edx
mov eax, edi
cdq
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edx
mov eax, ebx
cdq
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], edx
mov eax, dword [esp + 0x30]
cdq
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
mov byte [esi + 0x48], 1
mov ebx, dword [esp + 8]
inc ebx
mov dword [esi + 4], ebx
jmp 0x408731
movsx edx, byte [esi + 0x48]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x408897
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x20], edx
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x18], edi
lea eax, [ebx + 1]
cdq
mov ebx, dword [esp + 0x20]
sub eax, ebx
sbb edx, edi
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jl 0x408887
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebx
mov eax, ebp
cdq
mov dword [esp + 0x14], edx
mov edi, dword [esi + 0x38]
mov dword [esp + 0xc], edi
mov ebx, dword [esi + 0x3c]
mov dword [esp + 0x10], ebx
mov eax, ebp
sub eax, edi
mov dword [esp + 0x1c], eax
sbb edx, ebx
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jl 0x40882b
or eax, edx
jne 0x40887e
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebx
mov ebx, dword [esi + 0x30]
mov dword [esp + 4], ebx
mov edi, dword [esi + 0x34]
mov dword [esp], edi
mov edx, dword [esp + 0x30]
lea eax, [edx + 1]
cdq
sub eax, ebx
sbb edx, edi
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jl 0x408875
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
mov eax, edi
sub eax, dword [esi + 0x40]
sbb edx, dword [esi + 0x44]
jl 0x408938
or eax, edx
je 0x408938
jmp 0x4088b3
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x4088b3
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x4088b3
mov eax, ebp
cdq
mov dword [esp + 0x14], edx
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x4088b3
mov eax, ebp
cdq
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x18], edx
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4089ca
mov eax, ebp
mov edx, dword [esp + 0x20]
sub eax, edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
sbb edx, eax
jge 0x4088dd
mov dword [esi + 0x28], ebp
mov edx, dword [esp + 0x14]
mov dword [esi + 0x2c], edx
mov edx, edi
sub edx, dword [esi + 0x30]
mov ebp, dword [esp + 0x1c]
sbb ebp, dword [esi + 0x34]
jge 0x4088f5
mov dword [esi + 0x30], edi
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x34], edx
mov eax, ebx
cdq
mov edi, ebx
sub edi, dword [esi + 0x38]
mov ebp, edx
sbb ebp, dword [esi + 0x3c]
jl 0x40890e
or edi, ebp
je 0x40890e
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], edx
mov eax, dword [esp + 0x30]
cdq
sub eax, dword [esi + 0x40]
mov ebx, edx
sbb ebx, dword [esi + 0x44]
jl 0x408731
or eax, ebx
je 0x408731
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
jmp 0x408731
mov eax, ebp
mov edx, dword [esp + 0x20]
sub eax, edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
sbb edx, eax
jge 0x408956
mov dword [esi + 0x28], ebp
mov edx, dword [esp + 0x14]
mov dword [esi + 0x2c], edx
mov ebp, edi
mov edx, dword [esp + 4]
sub ebp, edx
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp]
sbb edx, ebp
jge 0x408981
mov dword [esi + 0x30], edi
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x34], edx
mov ebp, dword [esi + 0x38]
mov dword [esp + 0xc], ebp
mov edi, dword [esi + 0x3c]
mov dword [esp + 0x10], edi
mov eax, ebx
cdq
mov ebp, ebx
mov edi, dword [esp + 0xc]
sub ebp, edi
mov eax, edx
mov edi, dword [esp + 0x10]
sbb eax, edi
jl 0x4089a0
or ebp, eax
je 0x4089a0
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], edx
mov eax, dword [esp + 0x30]
cdq
sub eax, dword [esi + 0x40]
mov ebx, edx
sbb ebx, dword [esi + 0x44]
jl 0x408731
or eax, ebx
je 0x408731
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
jmp 0x408731
mov dword [esi + 0x28], ebp
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x2c], ebp
mov dword [esi + 0x30], edi
mov edi, dword [esp + 0x1c]
mov dword [esi + 0x34], edi
mov eax, ebx
cdq
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], edx
mov eax, dword [esp + 0x30]
cdq
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
mov byte [esi + 0x48], 1
mov ebx, dword [esp + 8]
inc ebx
mov dword [esi + 4], ebx
jmp 0x408731
xor eax, eax
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret