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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x60
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], edx
mov ebp, eax
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x40], ecx
mov edx, edi
mov eax, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], esi
sub ebx, edi
sbb ecx, esi
jge 0x870b2c
lea ebx, [ebp + 0x18]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
sub edx, ecx
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x40]
sbb esi, edi
sub edx, 0x2134
sbb esi, 0
jge 0x870753
mov edx, ecx
mov ecx, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
jmp 0x870791
mov edx, ecx
mov ecx, dword [esp + 0x58]
add edx, ecx
mov esi, edi
mov dword [esp + 0x4c], edx
mov edi, dword [esp + 0x54]
adc esi, edi
test esi, esi
mov dword [esp + 0x50], esi
jge 0x87077f
mov ecx, esi
add edx, 1
mov dword [esp + 0x4c], edx
adc ecx, 0
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
shrd edx, ecx, 1
sar ecx, 1
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
mov esi, dword [ebp]
test esi, esi
je 0x8707c0
push 0
mov edx, ecx
push edx
mov ecx, dword [esp + 0x54]
push ecx
push esi
call dword [ebp + 0x2c4]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ecx
push ebx
call fcn.00876954
add esp, 0x14
lea esi, [esp + 0x24]
push esi
push ebx
call fcn.00876198
add esp, 8
test eax, eax
jl 0x870b16
jne 0x870afc
call fcn.00859dd6
mov dword [eax], 0
cmp dword [ebp], 0
je 0x870831
push 0x2134
push ebx
call fcn.008760f8
push dword [ebp]
push 0x2134
push 1
push eax
call dword [ebp + 0x2c0]
mov edi, eax
add esp, 0x18
test edi, edi
jle 0x87081e
push edi
push ebx
call fcn.0087617c
add esp, 8
jmp 0x870833
jne 0x870833
call fcn.00859dd6
cmp dword [eax], 0
je 0x870833
mov edi, 0xffffffff
jmp 0x870833
xor edi, edi
test edi, edi
je 0x870ae9
jge 0x8707c4
mov edx, 0xffffff80
mov esi, 0xffffffff
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x5c]
lea edi, [edx + 0x80]
lea ecx, [esi + 1]
or edi, ecx
je 0x870b41
mov edx, esi
sub edx, 0
jl 0x87089e
lea edx, [esp + 0x24]
push edx
call fcn.00875ffc
pop ecx
mov edx, dword [esp + 0x44]
cmp eax, edx
jne 0x87089e
mov ecx, dword [esp + 0x28]
mov eax, ecx
cdq
mov edi, edx
mov eax, dword [esp + 0x30]
cdq
add ecx, eax
adc edi, edx
mov eax, dword [esp + 0x5c]
add ecx, eax
mov dword [esp + 0x3c], ecx
adc edi, esi
mov dword [esp + 0x40], edi
jmp 0x8708c1
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov edi, esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
sub edi, 0
jl 0x8708c1
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], esi
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
sub edx, ecx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
sbb esi, edi
jl 0x870726
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00870b50
lea eax, [esp + 0x24]
mov esi, eax
push esi
push ebx
call fcn.00876198
add esp, 8
test eax, eax
jl 0x870ad3
jne 0x870aaf
call fcn.00859dd6
mov dword [eax], 0
cmp dword [ebp], 0
je 0x870973
push 0x2134
push ebx
call fcn.008760f8
push dword [ebp]
push 0x2134
push 1
push eax
call dword [ebp + 0x2c0]
mov edi, eax
add esp, 0x18
test edi, edi
jle 0x870960
push edi
push ebx
call fcn.0087617c
add esp, 8
jmp 0x870975
jne 0x870975
call fcn.00859dd6
cmp dword [eax], 0
je 0x870975
mov edi, 0xffffffff
jmp 0x870975
xor edi, edi
test edi, edi
je 0x870a92
jge 0x870906
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov ebx, 0xffffff80
mov ecx, 0xffffffff
add ebx, 0x80
lea edx, [ecx + 1]
or ebx, edx
je 0x870b34
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
sub edx, edi
sbb ebx, esi
jge 0x870a1a
sub ecx, 0
jl 0x870a1a
lea edx, [esp + 0x24]
push edx
call fcn.00875ffc
mov edx, eax
add esp, 4
mov ebx, dword [esp + 0x48]
lea ecx, [ebx + 1]
mov ebx, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x34]
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov eax, ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
call fcn.008706d0
cdq
add eax, 0x80
inc edx
or eax, edx
je 0x870b34
mov edx, dword [esp + 0x48]
lea edx, [edx + edx]
add edx, edx
add edx, edx
jmp 0x870a68
mov ecx, dword [esp + 0x48]
lea edx, [ecx + 1]
lea ebx, [ecx + ecx + 2]
mov dword [ebp + 0x34], edx
add ebx, ebx
lea esi, [ebx + ebx + 8]
push esi
call fcn.00859c55
mov dword [ebp + 0x38], eax
mov edx, dword [ebp + 0x34]
add edx, edx
add edx, edx
push edx
call fcn.00859c55
add esp, 8
mov dword [ebp + 0x40], eax
mov edx, dword [esp + 0x48]
lea edx, [edx + edx]
add edx, edx
add edx, edx
mov esi, dword [ebp + 0x38]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov dword [esi + edx + 8], ecx
mov dword [esi + edx + 0xc], ebx
mov esi, dword [ebp + 0x38]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [esi + edx], ecx
mov dword [esi + edx + 4], ebx
mov eax, dword [ebp + 0x40]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov dword [eax + ebp*4], edx
xor eax, eax
add esp, 0x60
pop ebx
pop ebp
pop esi
pop edi
ret
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov ebx, 0xfffffffe
mov ecx, 0xffffffff
jmp 0x870997
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
cdq
add eax, ebx
adc edx, ecx
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
jmp 0x870997
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
cdq
sub ecx, eax
sbb edi, edx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edi
jmp 0x870906
mov edx, 0xfffffffe
mov esi, 0xffffffff
mov dword [esp + 0x5c], edx
jmp 0x87084b
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x5c], ecx
cdq
add eax, ecx
adc edx, esi
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
jmp 0x87084b
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
cdq
sub ecx, eax
sbb edi, edx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edi
jmp 0x8707c4
lea ebx, [ebp + 0x18]
jmp 0x8708e9
mov eax, 0xffffff80
add esp, 0x60
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffff80
add esp, 0x60
pop ebx
pop ebp
pop esi
pop edi
ret