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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4788d6
sub esp, 0x68
call fcn.004383e0
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test edx, edx
jle 0x4788b4
mov dword [esp + 0x50], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x64], ebp
xor ebp, ebp
jmp 0x47885d
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov edx, eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
cmp esi, edx
jge 0x47872a
mov dword [esp + 0x38], edx
sub edx, esi
mov dword [esp + 0x44], edx
shr edx, 0x1f
mov edi, dword [esp + 0x44]
add edx, edi
sar edx, 1
mov dword [esp + 0x44], edx
lea edi, [edx + esi]
mov edx, dword [esp + 0x34]
cmp edi, edx
jae 0x4788c5
mov dword [esp + 0x40], edi
mov eax, dword [ebx + edi*4]
nop
add eax, ebp
mov dword [esp], eax
call fcn.004745a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
call fcn.004021e0
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x478715
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
jmp 0x478674
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
lea ecx, [ebx + edx + 1]
mov eax, dword [esp + 0x38]
jmp 0x478674
mov edx, dword [esp + 0x34]
jmp 0x478761
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x64], eax
mov edi, ebx
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x24], edi
cmp esi, edx
jge 0x478829
jae 0x4788bc
mov dword [esp + 0x3c], esi
mov eax, dword [ebx + esi*4]
nop
add eax, ebp
mov dword [esp + 0x5c], eax
mov dword [esp], eax
call fcn.004745a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
cmp dword [esp + 8], ecx
jne 0x478829
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00402300
movzx eax, byte [esp + 0xc]
test al, al
je 0x478829
mov edx, dword [esp + 0x24]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x28]
cmp ebx, ebp
ja 0x4787f2
mov eax, dword [esp + 0x64]
lea edi, [eax + edx*4]
mov esi, dword [0xa918d0]
test esi, esi
jne 0x4787e0
mov esi, dword [esp + 0x5c]
mov dword [eax + edx*4], esi
jmp 0x478730
mov ecx, eax
mov eax, dword [esp + 0x5c]
call fcn.00451480
mov eax, ecx
jmp 0x478730
lea eax, [0x79f6c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.0043c860
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov edx, dword [esp + 0x24]
jmp 0x4787c7
mov edx, dword [esp + 0x30]
inc edx
mov ebx, dword [esp + 0x2c]
cmp edx, ebx
jge 0x478898
mov eax, dword [esp + 0x60]
add eax, 0xc
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x24]
mov ebx, eax
mov ebp, edx
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x60], ebx
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ebp, ecx
jae 0x4788ce
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], ebx
mov ebp, dword [eax + ebp*4]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
jmp 0x478696
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
add esp, 0x68
ret
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x4788a4
mov eax, esi
mov ecx, edx
call fcn.00451500
mov eax, edi
mov ecx, edx
call fcn.00451500
mov eax, ebp
call fcn.00451500
nop
call fcn.0044fc40
jmp fcn.00478620