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

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor edi, edi
mov edx, dword [esi + 0x60]
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x159c]
sub eax, edx
and eax, 0x3fffff
mov dword [esp + 0x10], edi
test ecx, ecx
jle 0x100786c1
mov ecx, dword [esi + 0x15a0]
mov ecx, dword [ecx + edi*4]
test ecx, ecx
je 0x100786ae
mov bl, byte [ecx + 0x3c]
test bl, bl
je 0x1007854b
mov byte [ecx + 0x3c], 0
jmp 0x100786ae
mov ebp, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x34]
mov ecx, ebp
mov dword [esp + 0x18], ebx
sub ecx, edx
and ecx, 0x3fffff
cmp ecx, eax
jae 0x100786ae
cmp edx, ebp
je 0x10078588
push ebp
push edx
mov ecx, esi
call fcn.10078400
test eax, eax
jne 0x100786d0
mov eax, dword [esi + 0x5c]
mov edx, ebp
sub eax, ebp
and eax, 0x3fffff
cmp ebx, eax
ja 0x100786d8
add ebx, ebp
and ebx, 0x3fffff
cmp ebp, ebx
mov dword [esp + 0x14], ebx
jb 0x100785d8
test ebx, ebx
je 0x100785d8
mov edx, dword [esi + 0x58]
mov ebx, 0x400000
sub ebx, ebp
add edx, ebp
lea edi, [esi + 0x1554]
push ebx
push edx
push 0
mov ecx, edi
call fcn.1007bfb0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x58]
push eax
push ecx
push ebx
mov ecx, edi
call fcn.1007bfb0
mov ebx, dword [esp + 0x14]
jmp 0x100785f2
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x18]
add eax, ebp
lea edi, [esi + 0x1554]
push edx
push eax
push 0
mov ecx, edi
call fcn.1007bfb0
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push edx
mov ecx, esi
call fcn.10078450
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x159c]
inc eax
cmp eax, ecx
jge 0x1007866e
mov ebx, eax
mov ecx, dword [esi + 0x15a0]
mov eax, dword [ecx + ebx*4]
test eax, eax
je 0x1007866a
cmp dword [eax + 0x30], ebp
jne 0x1007866a
mov ecx, dword [esp + 0x20]
mov edx, dword [eax + 0x34]
cmp edx, ecx
jne 0x10078674
mov dl, byte [eax + 0x3c]
test dl, dl
jne 0x10078674
mov edx, dword [edi]
mov eax, dword [esp + 0x1c]
add edx, eax
push ecx
push edx
push 0
mov ecx, edi
call fcn.1007bfb0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
inc eax
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x18], eax
inc ebx
call fcn.10078450
cmp ebx, dword [esi + 0x159c]
jl 0x10078614
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
jmp 0x10078678
mov ebx, dword [esp + 0x14]
mov edx, dword [edi]
mov ebp, dword [esp + 0x1c]
add edx, ebp
push ecx
push edx
mov ecx, esi
call fcn.10078380
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x78]
add ecx, eax
mov eax, dword [esi + 0x5c]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x78], ecx
mov ebp, dword [esi + 0x7c]
mov edx, ebx
adc ebp, 0
sub eax, ebx
mov dword [esi + 0x7c], ebp
and eax, 0x3fffff
mov ecx, dword [esi + 0x159c]
inc edi
cmp edi, ecx
mov dword [esp + 0x10], edi
jl 0x1007852a
mov eax, dword [esi + 0x5c]
mov ecx, esi
push eax
push edx
mov dword [esi + 0x60], eax
call fcn.10078400
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esi + 0x159c]
mov ecx, edi
cmp edi, eax
jge 0x10078707
mov eax, dword [esi + 0x15a0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100786fc
mov bl, byte [eax + 0x3c]
test bl, bl
je 0x100786fc
mov byte [eax + 0x3c], 0
mov eax, dword [esi + 0x159c]
inc ecx
cmp ecx, eax
jl 0x100786e4
mov dword [esi + 0x60], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret