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

Disassembly:
sub esp, 0x64
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov dword [esp + 8], eax
mov dword [esp + 0x10], eax
or eax, 0xffffffff
push ebx
mov ebx, dword [esp + 0x6c]
push ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x9c]
push esi
mov esi, dword [esp + 0x88]
push edi
mov edi, dword [ebx + 0x1c8]
push eax
push ecx
push edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edi
call fcn.00476d60
add esp, 0xc
test eax, eax
je 0x4774a0
cmp dword [esp + 0x9c], edi
je 0x4773a0
mov ebp, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0x94]
lea ecx, [esp + 0x9c]
push eax
push ecx
push ebp
push edx
push ebx
mov dword [esp + 0xb0], edi
call fcn.00476f80
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xb0]
add esp, 0x14
cmp eax, edi
mov dword [ebx + 0xc], edx
jne 0x477366
mov edi, dword [esp + 0xa8]
mov eax, dword [ebx + 0x38]
test eax, eax
lea ebp, [edi + 1]
mov dword [ebx + 0x34], ebp
je 0x4773bd
push eax
call fcn.0045abea
add esp, 4
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x4773cd
push eax
call fcn.0045abea
add esp, 4
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x4773dd
push eax
call fcn.0045abea
add esp, 4
mov eax, dword [ebx + 0x34]
lea ecx, [eax*8 + 8]
push ecx
call fcn.0045acc7
mov edx, dword [ebx + 0x34]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x48]
shl edx, 5
push edx
push eax
call fcn.0046e345
mov ecx, dword [ebx + 0x34]
mov edx, dword [ebx + 0x4c]
shl ecx, 4
push ecx
push edx
mov dword [ebx + 0x48], eax
call fcn.0046e345
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x34]
shl eax, 2
push eax
call fcn.0045acc7
mov ecx, dword [ebx + 0x34]
mov dword [ebx + 0x40], eax
shl ecx, 3
push ecx
call fcn.0045acc7
mov edx, dword [ebx + 0x34]
mov dword [ebx + 0x3c], eax
shl edx, 4
push edx
call fcn.0045acc7
mov ecx, dword [esp + 0xb0]
mov dword [ebx + 0x44], eax
mov eax, dword [ebx + 0x38]
add esp, 0x20
mov dword [eax + ebp*8], esi
mov dword [eax + ebp*8 + 4], ecx
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov dword [edx + edi*8], eax
mov dword [edx + edi*8 + 4], ecx
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
test ecx, ecx
jg 0x477488
jl 0x477484
test eax, eax
jae 0x477488
xor eax, eax
xor ecx, ecx
mov edx, dword [ebx + 0x44]
shl edi, 4
mov dword [edi + edx + 8], eax
xor eax, eax
mov dword [edi + edx + 0xc], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov ebp, dword [esp + 0x88]
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
cmp ebp, dword [esp + 0x90]
jg 0x4775e9
mov edx, dword [esp + 0x84]
jl 0x4774df
cmp edx, esi
jae 0x4775e9
jmp 0x4774df
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, esi
mov eax, edi
sub ecx, edx
sbb eax, ebp
test eax, eax
jg 0x477501
jl 0x4774fd
cmp ecx, 0x10000
jae 0x477501
mov esi, edx
jmp 0x477514
add esi, edx
push 0
adc edi, ebp
push 2
push edi
push esi
call fcn.00460610
mov esi, eax
mov ebp, edx
cmp esi, dword [ebx + 8]
jne 0x47751e
cmp ebp, dword [ebx + 0xc]
je 0x477534
push ebp
push esi
push ebx
call fcn.00477170
cdq
mov ecx, eax
add esp, 0xc
or ecx, edx
jne 0x4777f9
push 0xffffffffffffffff
lea edx, [esp + 0x48]
push 0xffffffffffffffff
push edx
push ebx
call fcn.00476ba0
add esp, 0x10
cmp eax, 0xffffff80
mov dword [esp + 0x2c], eax
mov edi, edx
jne 0x47755a
cmp edi, 0xffffffff
je 0x477801
test edi, edi
jl 0x47759f
jg 0x477564
test eax, eax
jb 0x47759f
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
push eax
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.00476d40
add esp, 0xc
test eax, eax
je 0x47759b
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
jmp 0x4775b9
mov eax, dword [esp + 0x2c]
test edi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
jl 0x4775b9
jg 0x4775b1
test eax, eax
jb 0x4775b9
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
cmp eax, edx
jl 0x4774d1
jg 0x4775e1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x84]
cmp ecx, eax
jb 0x4774d1
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
lea eax, [edi + 1]
mov dword [ebx + 8], esi
cmp eax, edi
mov dword [ebx + 0xc], ebp
je 0x477638
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
push eax
push ecx
push ebx
mov dword [esp + 0x98], edi
call fcn.00476f80
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x98]
add esp, 0x14
cmp eax, edi
mov dword [ebx + 0xc], edx
jne 0x4775fa
mov edx, dword [ebx + 8]
cmp edx, esi
jne 0x477646
mov eax, dword [ebx + 0xc]
cmp eax, ebp
je 0x47765c
push ebp
push esi
push ebx
call fcn.00477170
cdq
mov ecx, eax
add esp, 0xc
or ecx, edx
jne 0x4777f9
lea edx, [esp + 0x7c]
push 0
lea eax, [esp + 0x7c]
push edx
lea ecx, [esp + 0x3c]
push eax
lea edx, [esp + 0x60]
push ecx
push edx
push ebx
call fcn.004768f0
cdq
mov ecx, eax
add esp, 0x18
or ecx, edx
jne 0x4777f9
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x1c8]
lea ecx, [esp + 0x54]
push ecx
push ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
call fcn.004771d0
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
lea ebp, [edx + 1]
mov edx, dword [esp + 0xa4]
push ebp
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [ebx + 0xc]
push edx
mov edx, dword [ebx + 8]
push eax
mov eax, dword [esp + 0x48]
push ecx
push edx
push eax
push esi
push ebx
call fcn.004772f0
cdq
mov ecx, eax
add esp, 0x3c
or ecx, edx
jne 0x4777f9
mov eax, dword [esp + 0x78]
test eax, eax
je 0x477729
push eax
call fcn.0045abea
add esp, 4
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x20]
mov dword [edx + ebp*8], esi
lea esi, [esp + 0x54]
mov dword [edx + ebp*8 + 4], eax
mov ecx, dword [ebx + 0x40]
mov eax, dword [esp + 0x84]
mov dword [ecx + ebp*4], edi
mov edx, dword [ebx + 0x3c]
mov ecx, dword [esp + 0x88]
mov edi, ebp
mov dword [edx + ebp*8], eax
shl edi, 5
mov dword [edx + ebp*8 + 4], ecx
mov eax, dword [ebx + 0x48]
add edi, eax
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebx + 0x4c]
mov eax, dword [esp + 0x34]
shl ebp, 4
add edx, ebp
mov esi, dword [esp + 0x18]
mov dword [edx], eax
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x3c]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xa8]
mov dword [edx + 0xc], ecx
mov edx, dword [ebx + 0x44]
mov ecx, dword [esp + 0x24]
shl eax, 4
mov dword [eax + edx + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + edx + 0xc], ecx
mov ecx, dword [ebx + 0x44]
mov edx, dword [esp + 0x14]
add ebp, ecx
mov dword [ebp], edx
mov dword [ebp + 4], esi
mov ecx, dword [ebx + 0x44]
mov edi, dword [eax + ecx + 0x18]
lea ecx, [eax + ecx + 0x18]
sub edi, edx
mov dword [ecx], edi
mov edx, dword [ecx + 4]
sbb edx, esi
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x44]
mov ecx, dword [eax + edx + 0x1c]
lea eax, [eax + edx + 0x18]
test ecx, ecx
jg 0x4777f7
jl 0x4777ea
cmp dword [eax], 0
jae 0x4777f7
mov dword [eax], 0
mov dword [eax + 4], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffff80
pop ebx
add esp, 0x64
ret