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

Disassembly:
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
push esi
push edi
push 0xffffffffffffffff
push ebx
call fcn.00477cc0
mov ecx, dword [ebx + 0x58]
add esp, 8
cmp ecx, 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jl 0x478734
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x478137
pop edi
pop esi
pop ebp
mov eax, 0xffffff76
pop ebx
add esp, 0x84
ret
mov edi, dword [esp + 0xa0]
test edi, edi
mov ecx, dword [esp + 0x9c]
jl 0x478734
jg 0x478157
test ecx, ecx
jb 0x478734
cmp edi, edx
jg 0x478734
jl 0x478169
cmp ecx, eax
ja 0x478734
mov ecx, dword [ebx + 0x34]
dec ecx
mov dword [esp + 0x28], ecx
js 0x4781ab
mov ebp, dword [ebx + 0x44]
mov esi, ecx
shl esi, 4
lea esi, [esi + ebp + 8]
mov ebp, dword [esi]
sub eax, ebp
mov ebp, dword [esi + 4]
sbb edx, ebp
cmp edi, edx
jg 0x47819f
jl 0x478197
cmp dword [esp + 0x9c], eax
jae 0x47819f
dec ecx
sub esi, 0x10
test ecx, ecx
jge 0x47817f
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov esi, dword [ebx + 0x38]
mov edx, dword [esi + ecx*8 + 0xc]
mov eax, dword [esi + ecx*8 + 8]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + ecx*8]
mov esi, dword [esi + ecx*8 + 4]
shl ecx, 4
mov ebp, dword [ecx + eax]
mov edi, dword [ecx + eax + 8]
add ecx, eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
add edi, ebp
adc ecx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x20]
mov ecx, ebp
sub ecx, edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x38], eax
sbb eax, ebp
add ecx, edi
mov dword [esp + 0x2c], ecx
adc eax, dword [esp + 0xa0]
mov dword [esp + 0x30], eax
cmp esi, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], esi
jg 0x4784dc
jl 0x47823a
cmp edx, dword [esp + 0x18]
jae 0x4784dc
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
sub ecx, edi
sbb eax, ebp
test eax, eax
jg 0x478260
jl 0x47825c
cmp ecx, 0x10000
jae 0x478260
mov esi, ebp
jmp 0x4782c3
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
sub edx, esi
mov esi, dword [esp + 0x38]
push eax
push ecx
sbb edi, esi
push edi
push edx
call fcn.00445240
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
sub ecx, edi
mov edi, dword [esp + 0x50]
sbb edi, esi
push edi
push ecx
push edx
push eax
call fcn.00445190
mov ecx, dword [esp + 0x10]
mov edi, eax
add edi, ecx
mov esi, edx
adc esi, ebp
sub edi, 0x10000
sbb esi, 0
cmp esi, ebp
jg 0x4782c3
jl 0x4782b7
mov eax, ecx
cmp edi, eax
ja 0x4782c3
mov edi, dword [esp + 0x10]
add edi, 1
mov esi, ebp
adc esi, 0
push esi
push edi
push ebx
call fcn.004773f0
cdq
add esp, 0xc
mov ebp, eax
or eax, edx
jne 0x478715
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
sub ecx, edx
mov edx, dword [esp + 0x1c]
sbb edx, eax
push edx
push ecx
lea eax, [esp + 0x6c]
push eax
push ebx
call fcn.00477120
mov ebp, eax
add esp, 0x10
cmp ebp, 0xffffff80
mov dword [esp + 0x48], edx
jne 0x478311
mov eax, edx
cmp eax, 0xffffffff
je 0x478715
mov eax, dword [esp + 0x48]
test eax, eax
jg 0x478381
jl 0x47831f
test ebp, ebp
jae 0x478381
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ecx, 1
adc eax, 0
cmp esi, eax
jl 0x4784dc
jg 0x47833f
cmp edi, ecx
jbe 0x4784dc
mov edx, edi
or edx, esi
je 0x478715
mov edx, dword [esp + 0x14]
add edi, 0xffff0000
adc esi, 0xffffffff
cmp esi, edx
jg 0x478366
jl 0x478362
cmp edi, dword [esp + 0x10]
ja 0x478366
mov edi, ecx
mov esi, eax
push esi
push edi
push ebx
call fcn.004773f0
cdq
add esp, 0xc
mov ebp, eax
or eax, edx
jne 0x478715
jmp 0x47848f
lea ecx, [esp + 0x64]
push ecx
call fcn.004693c0
mov edx, dword [ebx + 0x40]
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp eax, dword [edx + ecx*4]
jne 0x47848f
lea edx, [esp + 0x64]
push edx
call fcn.004692e0
mov ecx, eax
and ecx, edx
add esp, 4
cmp ecx, 0xffffffff
je 0x47848f
cmp edx, dword [esp + 0x30]
jg 0x478410
jl 0x4783c6
cmp eax, dword [esp + 0x2c]
jae 0x478410
mov ecx, dword [esp + 0x48]
mov edi, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
sbb eax, edx
test eax, eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], edx
jg 0x4784be
jl 0x47848f
cmp ecx, 0xac44
ja 0x4784be
jmp 0x47848f
mov ecx, dword [esp + 0x10]
add ecx, 1
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
adc ecx, 0
cmp esi, ecx
mov dword [esp + 0x58], ecx
jl 0x4784dc
jg 0x47843a
cmp edi, dword [esp + 0x54]
jbe 0x4784dc
mov ecx, dword [esp + 0x18]
cmp ecx, dword [ebx + 8]
jne 0x4784ae
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [ebx + 0xc]
jne 0x4784ae
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
add edi, 0xffff0000
adc esi, 0xffffffff
cmp esi, eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edx
jg 0x478479
jl 0x478471
cmp edi, dword [esp + 0x10]
ja 0x478479
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
push esi
push edi
push ebx
call fcn.004773f0
cdq
add esp, 0xc
mov ebp, eax
or eax, edx
jne 0x478715
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x1c]
jg 0x4784dc
jl 0x4782d9
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x18]
jae 0x4784dc
jmp 0x4782d9
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x14], eax
jl 0x47823a
jg 0x4784dc
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x10], ecx
jb 0x47823a
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
push edi
push ebx
call fcn.004773f0
cdq
mov ebp, eax
or eax, 0xffffffff
mov ecx, ebp
add esp, 0xc
or ecx, edx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
jne 0x478715
push eax
push eax
lea edx, [esp + 0x5c]
push edx
push ebx
call fcn.00477120
add esp, 0x10
test edx, edx
mov ebp, eax
jl 0x478715
jg 0x478529
test ebp, ebp
jb 0x478715
mov esi, dword [esp + 0x28]
cmp esi, dword [ebx + 0x60]
je 0x478550
push ebx
call fcn.00477c90
mov eax, dword [ebx + 0x40]
mov dword [ebx + 0x60], esi
mov ecx, dword [eax + esi*4]
add esp, 4
mov dword [ebx + 0x5c], ecx
mov dword [ebx + 0x58], 3
jmp 0x47855f
lea edx, [ebx + 0x1e0]
push edx
call fcn.0046ada0
add esp, 4
mov eax, dword [ebx + 0x5c]
push eax
lea esi, [ebx + 0x78]
push esi
call fcn.00469c10
lea ecx, [esp + 0x5c]
push ecx
push esi
call fcn.004698a0
add esp, 0x10
xor ebp, ebp
lea edx, [esp + 0x74]
push edx
push esi
call fcn.00469d80
cdq
mov ecx, eax
add esp, 8
or ecx, edx
je 0x4785ca
cmp edx, ebp
jl 0x47866e
jg 0x4785a3
cmp eax, ebp
jb 0x47866e
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x478678
push ebp
push esi
call fcn.00469c30
add esp, 8
jmp 0x47857c
mov eax, dword [esp + 0x40]
push eax
push edi
push ebx
call fcn.004773f0
cdq
add esp, 0xc
test edx, edx
mov ebp, eax
jl 0x478715
jg 0x4785ee
test ebp, ebp
jb 0x478715
lea ecx, [esp + 0x54]
push ecx
push ebx
call fcn.00477450
mov esi, edx
add esp, 8
test esi, esi
mov ebp, eax
jl 0x478715
jg 0x478612
test ebp, ebp
jb 0x478715
lea edx, [esp + 0x54]
push edx
call fcn.004693c0
mov ecx, dword [ebx + 0x5c]
add esp, 4
cmp eax, ecx
jne 0x478650
lea eax, [esp + 0x54]
push eax
call fcn.004692e0
add esp, 4
cmp edx, 0xffffffff
jg 0x478658
jl 0x47863f
cmp eax, 0xffffffff
ja 0x478658
lea ecx, [esp + 0x54]
push ecx
call fcn.004692b0
add esp, 4
test eax, eax
je 0x478658
mov dword [ebx + 8], ebp
mov dword [ebx + 0xc], esi
jmp 0x4785ee
push esi
push ebp
push ebx
call fcn.00477dc0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ebp, 0xffffff78
jmp 0x47870d
mov edx, dword [ebx + 0x60]
mov esi, dword [ebx + 0x44]
shl edx, 4
mov edi, dword [edx + esi]
add edx, esi
sub eax, edi
sbb ecx, dword [edx + 4]
mov dword [ebx + 0x50], eax
mov eax, ecx
cmp eax, ebp
mov dword [ebx + 0x54], ecx
jg 0x4786a4
jl 0x47869e
cmp dword [ebx + 0x50], ebp
jae 0x4786a4
mov dword [ebx + 0x50], ebp
mov dword [ebx + 0x54], ebp
mov esi, dword [ebx + 0x50]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add esi, eax
mov dword [ebx + 0x50], esi
mov edx, dword [ebx + 0x54]
mov esi, dword [esp + 0xa0]
adc edx, ecx
cmp edx, esi
mov dword [ebx + 0x54], edx
jg 0x478708
jl 0x4786d5
mov eax, dword [ebx + 0x50]
cmp eax, dword [esp + 0x9c]
ja 0x478708
push 0xffffffffffffffff
push ebx
call fcn.00477cc0
add esp, 8
cmp esi, edx
jg 0x478708
jl 0x4786ef
cmp dword [esp + 0x9c], eax
ja 0x478708
pop edi
mov dword [ebx + 0x68], ebp
mov dword [ebx + 0x70], ebp
pop esi
mov dword [ebx + 0x6c], ebp
mov dword [ebx + 0x74], ebp
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret
mov ebp, 0xffffff7f
mov dword [esp + 0x48], 0xffffffff
or eax, 0xffffffff
mov dword [ebx + 0x50], eax
push ebx
mov dword [ebx + 0x54], eax
call fcn.00477c90
add esp, 4
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x84
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffff7d
pop ebx
add esp, 0x84
ret