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

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
mov esi, edx
push ebx
sub esp, 0x5c
mov edx, dword [esp + 0x70]
mov dword [esp + 0x28], eax
test edx, edx
js 0x7846e8
lea ebx, [esp + 0x48]
mov dword [esp + 0x48], 0
sub esp, 0xc
mov edx, 0xc
mov dword [esp + 0x38], ebx
mov ecx, ebx
push 0
call fcn.00770750
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x7848c0
mov ebp, dword [esp + 0x48]
sub esp, 0xc
push ebp
call fcn.007281d0
add esp, 0x10
cmp ebx, 0x65
cmove ebx, eax
add esp, 0x5c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x108]
test eax, eax
je 0x784706
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x120], esi
je 0x7847b9
cmp dword [esp + 0x70], 0xffffffff
je 0x7847a0
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0
sub esp, 0xc
mov edx, 0xd
mov dword [esp + 0x38], eax
mov ecx, eax
push 0
mov eax, dword [esp + 0x38]
call fcn.00770750
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x7846c5
mov ebx, dword [esp + 0x28]
mov eax, esi
mov ebp, edi
sar ebp, 0x1f
imul dword [ebx + 0x104]
add eax, edi
adc edx, ebp
shld edx, eax, 0xa
shl eax, 0xa
push edx
push eax
push 1
push dword [esp + 0x54]
call fcn.006f6cf0
mov eax, esi
imul dword [ebx + 0x104]
add eax, edi
adc edx, ebp
shld edx, eax, 0xa
shl eax, 0xa
add eax, 0x3ff
adc edx, 0
push edx
push eax
push 2
push dword [esp + 0x64]
call fcn.006f6cf0
add esp, 0x20
jmp 0x7848f7
sub esp, 0xc
xor ebx, ebx
push 0
call fcn.007281d0
add esp, 0x10
add esp, 0x5c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x7c]
lea edx, [ecx + ecx*2]
or ebx, dword [esp + 0x80]
mov dword [esp + 0x10], ebx
lea eax, [eax + edx*8]
je 0x784b38
mov eax, dword [eax + 0xc]
mov dword [esp + 0x48], eax
test eax, eax
je 0x784ccc
xor ecx, ecx
mov dword [esp + 0x18], esi
xor ebp, ebp
mov esi, dword [esp + 0x78]
mov dword [esp + 0x24], edi
xor ebx, ebx
mov edi, ecx
jmp 0x78481d
mov eax, dword [esp + 0x48]
mov dword [ebp + ebx*4], eax
add ebx, 1
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
test eax, eax
je 0x784cde
test esi, esi
je 0x78483d
cmp esi, dword [eax + 0x10]
jg 0x78480b
sub esp, 4
push esi
push dword [esp + 0x7c]
push dword [eax + 0xc]
call fcn.00798630
add esp, 0x10
test eax, eax
jne 0x78480b
cmp edi, ebx
jne 0x784800
mov eax, dword [0x7d2cd0]
test eax, eax
jne 0x784cc2
call fcn.006b5b60
test eax, eax
jne 0x784c9f
call fcn.006fbfc0
test eax, eax
jne 0x784c9f
add edi, 0x10
mov dword [esp + 0xc], 0
lea ecx, [edi*4]
mov dword [esp + 8], ecx
test ebp, ebp
je 0x784d1e
test ecx, ecx
je 0x784d30
mov eax, 0x7ffffeff
mov edx, dword [esp + 8]
cmp eax, ecx
mov ecx, dword [esp + 0xc]
mov eax, 0
sbb eax, ecx
jb 0x784c9f
mov eax, ebp
call fcn.006b9540
test eax, eax
je 0x784c9f
mov ebp, eax
jmp 0x784800
mov ebx, dword [esp + 0x28]
mov eax, esi
imul dword [ebx + 0x104]
mov ecx, eax
mov eax, edi
mov ebx, edx
cdq
add ecx, edi
mov eax, dword [esp + 0x70]
adc ebx, edx
shld ebx, ecx, 0xa
shl ecx, 0xa
cdq
add eax, ecx
adc edx, ebx
push edx
push eax
push 1
push dword [esp + 0x54]
call fcn.006f6cf0
add esp, 0x10
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x48]
jmp 0x784a8d
mov eax, ebp
call fcn.006c1540
mov edx, 2
mov eax, ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
call fcn.006c1590
call fcn.006ba180
mov esi, eax
mov eax, ebp
mov edi, edx
call fcn.006c1540
mov edx, 3
mov eax, ebp
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
call fcn.006c1590
call fcn.006ba180
mov dword [esp + 8], eax
mov eax, ebp
mov dword [esp + 0xc], edx
call fcn.006c1540
mov edx, 4
mov eax, ebp
call fcn.006c1590
mov edx, 1
call fcn.006d6a70
mov esi, eax
mov eax, ebp
call fcn.006c1540
mov edx, 4
mov eax, ebp
call fcn.006c1590
sub esp, 0xc
push eax
call fcn.006d7760
mov edi, eax
mov eax, ebp
call fcn.006c1540
add esp, 0x10
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov eax, ecx
or eax, ebx
mov eax, dword [esp + 0x74]
setne dl
test eax, eax
setne al
test dl, al
je 0x784c30
test edi, edi
je 0x784c30
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x784c48
push 0
lea eax, [esp + 0x44]
push eax
push esi
push edi
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x38]
call fcn.007840f0
add esp, 0x10
test eax, eax
jne 0x784c90
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
test eax, eax
jne 0x784c30
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x24]
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x84]
sete dl
sub esp, 0xc
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp + 0x24], eax
lea eax, [esp + 0x48]
push eax
push esi
push edi
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x34]
push ebx
push ecx
mov eax, dword [esp + 0x48]
call fcn.006ff200
add esp, 0x30
test eax, eax
jne 0x784c90
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x84]
call fcn.007293d0
test eax, eax
jne 0x784c90
sub esp, 0xc
push ebp
call fcn.00755d60
add esp, 0x10
cmp eax, 0x64
jne 0x784c90
mov edx, 1
mov eax, ebp
mov dword [esp + 0x3c], 0
call fcn.006c1590
call fcn.006ba180
mov esi, eax
mov edi, edx
test ebp, ebp
jne 0x784910
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x44], edx
mov edx, 2
call fcn.006c1590
call fcn.006ba180
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x4c], edx
mov edx, 3
call fcn.006c1590
call fcn.006ba180
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0xc], edx
mov edx, 4
call fcn.006c1590
mov edx, 1
call fcn.006d6a70
mov edx, 4
mov esi, eax
xor eax, eax
call fcn.006c1590
sub esp, 0xc
push eax
call fcn.006d7760
add esp, 0x10
mov edi, eax
jmp 0x7849a3
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
add eax, 4
call fcn.006ba6c0
test eax, eax
je 0x784706
mov dword [esp + 0x48], eax
mov edx, 0x68
xor ecx, ecx
mov ebx, 1
mov dword [esp + 8], 0x68
lea ebp, [esp + 0x48]
mov eax, dword [0x7d2cd0]
test eax, eax
jne 0x784d14
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
call fcn.006b5b60
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x784c97
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
call fcn.006fbfc0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x784c97
mov eax, edx
mov edx, ecx
call fcn.006b97d0
test eax, eax
je 0x784d5e
sub esp, 4
shl ebx, 2
push dword [esp + 0xc]
push 0
push eax
mov dword [esp + 0x18], eax
call fcn.00798618
mov edx, dword [esp + 0x18]
add esp, 0xc
lea eax, [edx + 0x60]
mov dword [edx], 0x7fffffff
mov dword [edx + 0x38], eax
push ebx
push ebp
push eax
call fcn.00798628
mov eax, dword [esp + 0x20]
add esp, 0x10
mov edx, dword [esp + 8]
test eax, eax
jne 0x784d49
mov eax, dword [esp + 0x84]
xor ebp, ebp
call fcn.007293d0
cmp dword [esp + 0x70], 0xffffffff
mov ebx, eax
je 0x7846c9
test eax, eax
jne 0x7846c9
jmp 0x784711
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jmp 0x784a29
push dword [esp + 0x2c]
lea eax, [esp + 0x44]
push eax
push esi
push edi
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x38]
call fcn.007840f0
add esp, 0x10
test eax, eax
jne 0x784c90
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jmp 0x784a29
mov ebx, eax
jmp 0x7846c9
mov eax, dword [esp + 0x10]
test eax, eax
je 0x784cab
sub esp, 0xc
push ebp
call fcn.006b6db0
add esp, 0x10
sub esp, 0xc
mov ebx, 7
push 0
call fcn.007281d0
add esp, 0x10
jmp 0x7847af
lock or dword [esp], 0
jmp 0x784868
sub esp, 0xc
push 0
call fcn.006b6db0
add esp, 0x10
jmp 0x784706
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
cmp ebx, 1
jle 0x784d6f
push 0x6b6290
push 4
push ebx
push ebp
call fcn.00798610
lea eax, [ebx*4 + 0x64]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov edx, eax
add esp, 0x10
jmp 0x784b6c
lock or dword [esp], 0
jmp 0x784bb3
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
call fcn.006b97d0
jmp 0x7848b1
sub esp, 0xc
push ebp
call fcn.006b6db0
mov dword [esp], ebp
call fcn.006b6db0
add esp, 0x10
jmp 0x784cab
sub esp, 0xc
push ebp
call fcn.006b6db0
add esp, 0x10
mov edx, dword [esp + 8]
jmp 0x784c08
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x784c9f
jmp 0x784cab
test ebx, ebx
jne 0x784d84
sub esp, 0xc
push ebp
call fcn.006b6db0
add esp, 0x10
jmp 0x784706
mov dword [esp + 8], 0x68
mov edx, 0x68
xor ecx, ecx
mov ebx, 1
jmp 0x784b6c