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

Disassembly:
sub esp, 0x54
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax]
push esi
push edi
mov edi, dword [esp + 0x6c]
cmp ecx, 8
mov ecx, dword [edi + 0x34]
mov edx, dword [ecx]
mov dword [esp + 0xc], ebx
je 0x30087a28
cmp edx, 8
je 0x300879b3
test ecx, ecx
je 0x30087911
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x3008790c
mov esi, dword [ecx + 0x34]
jmp 0x30087913
mov esi, dword [ecx + 0x18]
jmp 0x30087913
xor esi, esi
test ecx, ecx
je 0x30087928
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x30087923
mov edx, dword [ecx + 0x30]
jmp 0x3008792a
mov edx, dword [ecx + 0x14]
jmp 0x3008792a
xor edx, edx
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
lea edi, [esp + 0x20]
push edi
add esi, eax
push esi
add edx, ecx
push edx
push eax
push ecx
call fcn.30077090
mov eax, dword [ebx + 0x34]
add esp, 0x14
test eax, eax
je 0x30087960
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x3008795b
mov esi, dword [eax + 0x34]
jmp 0x30087962
mov esi, dword [eax + 0x18]
jmp 0x30087962
xor esi, esi
test eax, eax
je 0x30087977
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x30087972
mov eax, dword [eax + 0x30]
jmp 0x30087979
mov eax, dword [eax + 0x14]
jmp 0x30087979
xor eax, eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
lea edi, [esp + 0x30]
push edi
add esi, ecx
push esi
add eax, edx
push eax
push ecx
push edx
call fcn.30077090
mov ecx, edi
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.300773f0
add esp, 0x1c
neg eax
pop edi
sbb eax, eax
pop esi
neg eax
pop ebx
add esp, 0x54
ret 0x14
test eax, eax
je 0x300879c8
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x300879c3
mov esi, dword [eax + 0x34]
jmp 0x300879ca
mov esi, dword [eax + 0x18]
jmp 0x300879ca
xor esi, esi
test eax, eax
je 0x300879df
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x300879da
mov eax, dword [eax + 0x30]
jmp 0x300879e1
mov eax, dword [eax + 0x14]
jmp 0x300879e1
xor eax, eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
lea ebx, [esp + 0x30]
push ebx
add esi, ecx
push esi
add eax, edx
push eax
push ecx
push edx
call fcn.30077090
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
add esp, 0x14
mov ecx, ebx
push ecx
push edx
push eax
mov ecx, edi
call fcn.30083c40
neg al
pop edi
pop esi
pop ebx
sbb eax, eax
neg eax
add esp, 0x54
ret 0x14
cmp edx, 8
je 0x30087a9c
test ecx, ecx
je 0x30087a42
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x30087a3d
mov esi, dword [ecx + 0x34]
jmp 0x30087a44
mov esi, dword [ecx + 0x18]
jmp 0x30087a44
xor esi, esi
test ecx, ecx
je 0x30087a59
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x30087a54
mov ecx, dword [ecx + 0x30]
jmp 0x30087a5b
mov ecx, dword [ecx + 0x14]
jmp 0x30087a5b
xor ecx, ecx
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 4]
mov edx, dword [edx]
lea edi, [esp + 0x30]
push edi
add esi, eax
push esi
add ecx, edx
push ecx
push eax
push edx
call fcn.30077090
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
add esp, 0x14
mov edx, edi
push edx
push eax
push ecx
mov ecx, ebx
call fcn.30083c40
neg al
pop edi
pop esi
pop ebx
sbb eax, eax
neg eax
add esp, 0x54
ret 0x14
test eax, eax
je 0x30087ab1
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x30087aac
mov esi, dword [eax + 0x34]
jmp 0x30087ab3
mov esi, dword [eax + 0x18]
jmp 0x30087ab3
xor esi, esi
test eax, eax
je 0x30087ac8
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x30087ac3
mov eax, dword [eax + 0x30]
jmp 0x30087aca
mov eax, dword [eax + 0x14]
jmp 0x30087aca
xor eax, eax
push ebp
mov ebp, dword [esp + 0x6c]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
lea ebx, [esp + 0x54]
push ebx
add esi, ecx
push esi
add eax, edx
push eax
push ecx
push edx
call fcn.30077090
mov eax, dword [edi + 0x34]
add esp, 0x14
test eax, eax
je 0x30087b02
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x30087afd
mov esi, dword [eax + 0x34]
jmp 0x30087b04
mov esi, dword [eax + 0x18]
jmp 0x30087b04
xor esi, esi
test eax, eax
je 0x30087b19
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x30087b14
mov eax, dword [eax + 0x30]
jmp 0x30087b1b
mov eax, dword [eax + 0x14]
jmp 0x30087b1b
xor eax, eax
mov ebx, dword [esp + 0x78]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
lea edi, [esp + 0x44]
push edi
add esi, ecx
push esi
add eax, edx
push eax
push ecx
push edx
call fcn.30077090
lea ecx, [esp + 0x28]
push ecx
mov edx, edi
push edx
lea eax, [esp + 0x70]
push eax
call fcn.30077350
mov eax, dword [esp + 0x34]
add esp, 0x20
cmp eax, 0x7ffffff
je 0x30087c80
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + 0x34]
mov edx, dword [ecx + 0x10]
test edx, edx
mov dword [esp + 0x78], ecx
je 0x30087c80
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x34]
test ecx, ecx
mov dword [esp + 0x6c], ecx
je 0x30087c80
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x30087c80
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
shl ecx, 0x18
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
shl ecx, 0x18
mov edx, eax
sub edx, dword [ebp]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov edx, ecx
sub edx, dword [ebp + 4]
mov ebp, dword [ebx]
sub edi, eax
mov dword [esp + 0x2c], edx
mov edx, dword [ebx + 4]
sub eax, ebp
sub esi, ecx
sub ecx, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x3c], ecx
push eax
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.300802a0
mov edx, dword [esp + 0x84]
mov ebx, eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.300802a0
mov ebp, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
sar ebp, 2
sar edx, 2
add esp, 0x18
test esi, esi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x68], 0
jle 0x30087c80
test edi, edi
mov dword [esp + 0x70], 0
jle 0x30087c65
mov ebp, ebx
mov ecx, eax
sub ebp, eax
mov edx, dword [esp + 0x10]
cmp dword [ecx + ebp], edx
jb 0x30087c55
mov edx, dword [esp + 0x74]
cmp dword [ecx], edx
jae 0x30087c8c
mov edx, dword [esp + 0x70]
inc edx
add ecx, 4
cmp edx, edi
mov dword [esp + 0x70], edx
jl 0x30087c44
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
lea ebx, [ebx + ecx*4]
mov ecx, dword [esp + 0x68]
inc ecx
cmp ecx, esi
lea eax, [eax + edx*4]
mov dword [esp + 0x68], ecx
jl 0x30087c32
pop ebp
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x54
ret 0x14
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x54
ret 0x14