Function at 0x408764
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 0x408a47
mov edx, ecx
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x408a51
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 0x408775
cmp edi, dword [esi + 0x7c]
jge 0x408775
test ebx, ebx
jl 0x408775
test edx, edx
jl 0x408775
mov byte [esi + 0x4a], 1
mov edx, dword [esi + 4]
mov dword [esp + 8], edx
test edx, edx
jne 0x4087fa
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 0x408775
movsx edx, byte [esi + 0x48]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x4088db
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 0x4088cb
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 0x40886f
or eax, edx
jne 0x4088c2
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 0x4088b9
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
mov eax, edi
sub eax, dword [esi + 0x40]
sbb edx, dword [esi + 0x44]
jl 0x40897c
or eax, edx
je 0x40897c
jmp 0x4088f7
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x4088f7
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x4088f7
mov eax, ebp
cdq
mov dword [esp + 0x14], edx
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x4088f7
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 0x408a0e
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 0x408921
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 0x408939
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 0x408952
or edi, ebp
je 0x408952
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 0x408775
or eax, ebx
je 0x408775
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
jmp 0x408775
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 0x40899a
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 0x4089c5
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 0x4089e4
or ebp, eax
je 0x4089e4
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 0x408775
or eax, ebx
je 0x408775
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
jmp 0x408775
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 0x408775
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