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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
mov ebp, dword [esp + 0x64]
push esi
push edi
xor ebx, ebx
mov edi, ecx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x50]
push edx
push ebp
push eax
lea esi, [esp + 0x4c]
mov eax, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.10087fd0
push edi
call fcn.10088b00
call fcn.10088ba0
mov eax, dword [edi + 0x78]
mov esi, dword [esp + 0x68]
cmp eax, ebx
mov ebx, dword [esp + 0x64]
je 0x100878b9
mov ecx, dword [eax]
sub ecx, 1
mov dword [esp + 0x68], ecx
js 0x100878b9
jmp 0x10087894
mov ecx, dword [esp + 0x68]
mov edx, dword [edi + 0x78]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x60]
mov ecx, dword [eax + ecx*4]
push ebp
push esi
push ebx
push edx
call fcn.100877f0
test eax, eax
jne 0x10087c73
sub dword [esp + 0x68], 1
jns 0x10087890
mov eax, dword [edi + 0x80]
test eax, eax
je 0x100878fc
mov ecx, dword [eax]
sub ecx, 1
mov dword [esp + 0x68], ecx
js 0x100878fc
jmp 0x100878d4
mov ecx, dword [esp + 0x68]
mov eax, dword [edi + 0x80]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x60]
mov ecx, dword [eax + ecx*4]
push ebp
push esi
push ebx
push edx
call fcn.100877f0
test eax, eax
jne 0x10087c73
sub dword [esp + 0x68], 1
jns 0x100878d0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jl 0x10087a97
mov edx, dword [esp + 0x30]
add edx, ecx
cmp eax, edx
jge 0x10087a97
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0xc]
cmp eax, ecx
jl 0x10087a97
mov edx, dword [esp + 0x34]
add edx, ecx
cmp eax, edx
jge 0x10087a97
mov eax, dword [esi + 8]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x190]
mov ebp, ecx
call edx
mov edi, dword [esp + 0x4c]
sub edi, eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x244]
mov ecx, ebp
call edx
mov ecx, ebp
add edi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x18c]
call edx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
push 4
sub ecx, eax
mov eax, dword [ebp]
mov eax, dword [eax + 0x158]
push edi
push ecx
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x28]
push ecx
push edx
push esi
push ebx
mov ecx, ebp
call eax
test al, al
jne 0x100879f5
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp]
mov edx, dword [edx + 0x158]
push 3
push edi
push eax
mov eax, dword [esp + 0x34]
push ecx
push eax
push esi
push ebx
mov ecx, ebp
call edx
test al, al
jne 0x100879f5
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp]
push 2
push edi
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [eax + 0x158]
push ecx
push esi
push ebx
mov ecx, ebp
call edx
test al, al
je 0x10087a8f
mov ecx, dword [esi]
test ecx, ecx
je 0x10087a05
cmp dword [esi + 4], 0
jne 0x10087a81
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
test eax, eax
je 0x10087a24
test byte [eax + 0x1b], 1
jne 0x10087a1d
mov edi, dword [eax + 8]
test edi, edi
jne 0x10087a26
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10087a10
xor edi, edi
or ebp, 0xffffffff
test ecx, ecx
jne 0x10087a53
test edi, edi
je 0x10087a35
add dword [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
mov dword [esi], edi
je 0x10087a53
add dword [ecx + 4], ebp
cmp dword [ecx + 4], 0
jg 0x10087a53
cmp dword [ecx + 8], 0
jne 0x10087a53
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
cmp dword [esi + 4], 0
jne 0x10087a81
test edi, edi
je 0x10087a61
add dword [edi + 4], 1
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [esi + 4], edi
je 0x10087a81
add dword [ecx + 4], ebp
cmp dword [ecx + 4], 0
jg 0x10087a81
cmp dword [ecx + 8], 0
jne 0x10087a81
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x10087ad9
mov ecx, dword [eax]
sub ecx, 1
mov dword [esp + 0x6c], ecx
js 0x10087ad9
jmp 0x10087ab4
mov ecx, dword [esp + 0x6c]
mov edx, dword [edi + 0x7c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x60]
mov ecx, dword [eax + ecx*4]
push ebp
push esi
push ebx
push edx
call fcn.100877f0
test eax, eax
jne 0x10087c73
sub dword [esp + 0x6c], 1
jns 0x10087ab0
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x38]
cmp eax, edx
mov ecx, dword [esi + 0xc]
jl 0x10087c2d
mov ebp, dword [esp + 0x40]
add ebp, edx
cmp eax, ebp
jge 0x10087c2d
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jl 0x10087c2d
mov edx, dword [esp + 0x44]
add edx, eax
cmp ecx, edx
jge 0x10087c2d
mov eax, dword [esi + 8]
mov ebp, dword [edi + 4]
mov edx, eax
mov dword [esp + 0x28], eax
mov eax, ecx
mov dword [esp + 0x18], edx
mov edx, dword [ebp]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x190]
mov ecx, ebp
mov dword [esp + 0x60], ecx
call eax
mov ecx, dword [esp + 0x4c]
sub ecx, eax
mov dword [esp + 0x6c], ecx
mov ecx, ebp
mov edx, dword [ecx]
mov eax, dword [edx + 0x244]
call eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp]
add ecx, eax
mov eax, dword [edx + 0x18c]
mov dword [esp + 0x6c], ecx
mov ecx, ebp
call eax
mov ecx, dword [esp + 0x48]
sub ecx, eax
push 0
mov eax, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x158]
push ebp
push eax
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x28]
push eax
push esi
push ebx
call edx
test al, al
je 0x10087c2d
mov ecx, dword [esi]
test ecx, ecx
je 0x10087ba7
cmp dword [esi + 4], 0
jne 0x10087c21
mov eax, dword [edi + 4]
test eax, eax
je 0x10087bc4
mov edi, edi
test byte [eax + 0x1b], 1
jne 0x10087bbd
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x10087bc6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10087bb0
xor ebx, ebx
or ebp, 0xffffffff
test ecx, ecx
jne 0x10087bf3
test ebx, ebx
je 0x10087bd5
add dword [ebx + 4], 1
mov ecx, dword [esi]
test ecx, ecx
mov dword [esi], ebx
je 0x10087bf3
add dword [ecx + 4], ebp
cmp dword [ecx + 4], 0
jg 0x10087bf3
cmp dword [ecx + 8], 0
jne 0x10087bf3
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
cmp dword [esi + 4], 0
jne 0x10087c21
test ebx, ebx
je 0x10087c01
add dword [ebx + 4], 1
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [esi + 4], ebx
je 0x10087c21
add dword [ecx + 4], ebp
cmp dword [ecx + 4], 0
jg 0x10087c21
cmp dword [ecx + 8], 0
jne 0x10087c21
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
cmp byte [ebx + 1], 0
jne 0x10087c39
cmp byte [ebx + 3], 0
je 0x10087c71
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0xa8]
call edx
test al, al
je 0x10087c71
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 4]
push esi
lea eax, [esp + 0x2c]
call fcn.100e5730
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10