Function at 0x40870c
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 0x4089ef
mov edx, ecx
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x4089f9
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 0x40871d
cmp edi, dword [esi + 0x7c]
jge 0x40871d
test ebx, ebx
jl 0x40871d
test edx, edx
jl 0x40871d
mov byte [esi + 0x4a], 1
mov edx, dword [esi + 4]
mov dword [esp + 8], edx
test edx, edx
jne 0x4087a2
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 0x40871d
movsx edx, byte [esi + 0x48]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x408883
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 0x408873
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 0x408817
or eax, edx
jne 0x40886a
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 0x408861
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
mov eax, edi
sub eax, dword [esi + 0x40]
sbb edx, dword [esi + 0x44]
jl 0x408924
or eax, edx
je 0x408924
jmp 0x40889f
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x40889f
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x40889f
mov eax, ebp
cdq
mov dword [esp + 0x14], edx
mov eax, edi
cdq
mov dword [esp + 0x1c], edx
jmp 0x40889f
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 0x4089b6
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 0x4088c9
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 0x4088e1
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 0x4088fa
or edi, ebp
je 0x4088fa
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 0x40871d
or eax, ebx
je 0x40871d
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
jmp 0x40871d
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 0x408942
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 0x40896d
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 0x40898c
or ebp, eax
je 0x40898c
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 0x40871d
or eax, ebx
je 0x40871d
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
jmp 0x40871d
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 0x40871d
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