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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], edx
movzx eax, byte [eax]
mov dword [esp + 0x20], ecx
test al, al
js 0x784510
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x70]
lea edx, [esp + 0x48]
mov ebp, 0x10b
add edi, dword [esp + 0x74]
mov dword [esp + 0x1c], edi
call fcn.006b35c0
lea edx, [esp + 0x48]
add eax, dword [esp + 0x70]
mov ebx, eax
call fcn.006b35c0
add ebx, eax
cmp edi, ebx
jb 0x784402
jbe 0x78453a
mov eax, dword [esp + 0x7c]
test eax, eax
mov eax, dword [esp + 0x78]
setne byte [esp + 0x27]
or eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
je 0x78430f
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
lea esi, [esi]
nop
movzx eax, byte [ebx]
test al, al
js 0x784480
mov dword [esp + 0x40], eax
mov eax, 1
add ebx, eax
mov ecx, dword [esp + 0x44]
mov eax, ebx
sub eax, dword [esp + 0x70]
cmp eax, ecx
jl 0x784470
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x40]
sub eax, ebx
cmp eax, ebp
jl 0x784470
test ebp, ebp
je 0x784470
mov eax, ebp
mov esi, ecx
mov edi, ecx
cdq
sar edi, 0x1f
add esi, ebp
mov eax, dword [esp + 0x10]
adc edi, edx
mov edx, dword [esp + 0x14]
cmp eax, esi
mov eax, edx
sbb eax, edi
jge 0x78427f
mov ebp, dword [0x7d2cd0]
test ebp, ebp
jne 0x784500
call fcn.006b5b60
test eax, eax
jne 0x784490
call fcn.006fbfc0
test eax, eax
jne 0x784490
mov ecx, dword [esp + 0xc]
shld edi, esi, 1
add esi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
test ecx, ecx
je 0x784528
mov edi, dword [esp + 0x10]
mov eax, 0x7ffffeff
mov ebp, dword [esp + 0x14]
cmp eax, edi
mov eax, 0
sbb eax, ebp
jl 0x784490
mov eax, dword [esp + 0xc]
mov edx, edi
mov ecx, ebp
call fcn.006b9540
test eax, eax
je 0x784490
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
sub esp, 4
push ebp
add ecx, edi
push ebx
push ecx
call fcn.00798628
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
add esp, 0xc
add esi, eax
add ebx, eax
mov eax, dword [esp + 0x24]
cmp eax, esi
cmovg eax, esi
push eax
push edi
push dword [esp + 0x34]
call fcn.00798630
mov edi, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x4c]
mov ecx, eax
mov eax, dword [esp + 0x48]
test edi, edi
je 0x7842e5
test ecx, ecx
js 0x7842dc
jne 0x7844b0
cmp dword [esp + 0x20], esi
jge 0x7844b0
mov edi, dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jns 0x784410
cmp byte [esp + 0x27], 0
je 0x784410
mov edi, dword [esp + 0x7c]
mov dword [edi], eax
add eax, 1
mov dword [edi + 4], edx
adc edx, 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
sub esp, 0xc
xor ebp, ebp
push dword [esp + 0x18]
call fcn.006b6db0
add esp, 0x10
cmp dword [esp + 0x3c], 1
jle 0x784402
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
test ebp, ebp
je 0x784668
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x7843b8
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov edx, dword [edx]
mov esi, ebx
mov edi, eax
xor esi, edx
xor edi, ecx
or edi, esi
je 0x7843cd
sub esp, 4
mov ecx, eax
mov edx, ebx
push 0
lea edi, [esp + 0x4c]
push edi
lea esi, [esp + 0x4c]
push esi
mov eax, dword [esp + 0x3c]
call fcn.00783f10
add esp, 0x10
mov ebp, eax
test eax, eax
je 0x7845fb
sub esp, 0xc
push dword [esp + 0x4c]
call fcn.006b6db0
mov dword [esp + 0x50], 0
add esp, 0x10
xor eax, eax
jmp 0x7843f6
mov esi, dword [esp + 0x78]
test esi, esi
je 0x784668
mov eax, dword [esp + 0x78]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
lea edi, [esp + 0x44]
lea esi, [esp + 0x40]
sub esp, 4
push 0
push edi
push esi
mov eax, dword [esp + 0x3c]
call fcn.00783f10
add esp, 0x10
mov ebp, eax
test eax, eax
je 0x7845a5
mov eax, dword [esp + 0x40]
sub esp, 0xc
push eax
call fcn.006b6db0
add esp, 0x10
add esp, 0x5c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
add eax, 1
adc edx, 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x1c], ebx
jbe 0x784567
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x78430f
movzx eax, byte [ebx]
mov dword [esp + 0x18], 0
mov byte [esp + 0x27], 1
mov dword [esp + 0x44], 0
test al, al
js 0x7844e6
mov dword [esp + 0x44], eax
mov edx, 1
add ebx, edx
cmp esi, eax
jge 0x7841a0
lea esi, [esi]
nop
mov ebp, 0x10b
jmp 0x784495
lea edx, [esp + 0x40]
mov eax, ebx
call fcn.006b36f0
jmp 0x7841b4
mov ebp, 7
sub esp, 0xc
push dword [esp + 0x18]
call fcn.006b6db0
add esp, 0x10
mov eax, ebp
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add eax, 1
adc edx, 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x1c], ebx
jbe 0x784556
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x44], 0
test eax, eax
movzx eax, byte [ebx]
setne byte [esp + 0x27]
test al, al
jns 0x784454
lea edx, [esp + 0x44]
mov eax, ebx
call fcn.006b36f0
mov edx, eax
mov eax, dword [esp + 0x44]
jmp 0x78445d
lock or dword [esp], 0
jmp 0x784228
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x3c]
call fcn.006b36f0
jmp 0x784116
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.006b97d0
jmp 0x78426b
mov eax, dword [esp + 0x78]
test eax, eax
je 0x784672
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x78430f
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x48]
sub esp, 0xc
xor ebp, ebp
mov edx, dword [esp + 0x58]
mov dword [edi], eax
mov dword [edi + 4], edx
push dword [esp + 0x18]
call fcn.006b6db0
add esp, 0x10
cmp dword [esp + 0x3c], 1
jg 0x78432b
jmp 0x784402
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], 0
movzx edx, byte [eax]
test dl, dl
js 0x78464f
mov dword [esp + 0x48], edx
mov ebp, 0x10b
cmp dword [esp + 0x3c], edx
jle 0x7843f6
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push dword [esp + 0x4c]
push eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
call fcn.007840f0
mov ebp, eax
mov eax, dword [esp + 0x50]
add esp, 0x10
jmp 0x7843f6
push 0
push dword [esp + 0x7c]
push dword [esp + 0x4c]
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
call fcn.007840f0
pop ebx
push dword [esp + 0x4c]
mov ebp, eax
call fcn.006b6db0
mov dword [esp + 0x50], 0
add esp, 0x10
test ebp, ebp
jne 0x7843b1
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], 0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
jmp 0x7843d5
lea edx, [esp + 0x48]
call fcn.006b36f0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
jmp 0x7845c0
lea edi, [esp + 0x44]
lea esi, [esp + 0x40]
jmp 0x784639
mov dword [esp + 0xc], 0
jmp 0x784567