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

Disassembly:
sub esp, 0x80
mov eax, dword [0x7c2580]
xor eax, esp
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x84]
xorps xmm0, xmm0
mov edx, dword [esp + 0x88]
movzx ecx, word [esp + 0x8c]
push ebx
mov eax, dword [eax + 0x440]
push ebp
push esi
push edi
mov edi, dword [eax]
xor esi, esi
xor eax, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x74], eax
lea ebp, [edi + 0x324]
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], eax
mov eax, dword [ebp]
mov dword [esp + 0x54], edi
movlpd qword [esp + 0x28], xmm0
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x6c], xmm0
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], ebp
test eax, eax
je 0x47f56e
mov eax, dword [eax + 0x20]
inc esi
test eax, eax
jne 0x47f566
cmp byte [esp + 0xa0], 0
jge 0x47f61b
lea eax, [esp + 0x20]
push eax
call fcn.0047ecb0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x47f5fe
mov edi, dword [edi + 0x328]
test edi, edi
je 0x47f5ba
nop dword [eax]
push dword [edi + 0x24]
mov esi, dword [edi + 0x3c]
call fcn.006e27a3
push edi
call fcn.006e27a3
add esp, 8
mov edi, esi
test esi, esi
jne 0x47f5a0
mov eax, dword [esp + 0x54]
mov edi, dword [ebp]
mov dword [eax + 0x328], 0
test edi, edi
je 0x47f5f1
nop
push dword [edi]
mov esi, dword [edi + 0x20]
call fcn.006e27a3
push dword [edi + 8]
call fcn.006e27a3
push edi
call fcn.006e27a3
add esp, 0xc
mov edi, esi
test esi, esi
jne 0x47f5d0
mov edi, dword [esp + 0x54]
mov dword [ebp], 0
jmp 0x47f607
dec ebx
cmp ebx, esi
ja 0x480776
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x338], ebx
mov dword [esp + 0x14], edx
jmp 0x47f621
mov ebx, dword [edi + 0x338]
mov eax, dword [ebp]
mov dword [esp + 0x40], eax
test ebx, ebx
je 0x47f63c
nop dword [eax]
mov eax, dword [eax + 0x20]
sub ebx, 1
jne 0x47f630
mov dword [esp + 0x40], eax
test eax, eax
je 0x47f643
inc dword [eax + 0x18]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
cmp edi, 2
jge 0x47f8fc
test eax, eax
jne 0x47f8eb
cmp edi, 2
jge 0x47f8fc
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
cmp ebp, ecx
jae 0x47f74d
movzx eax, byte [edx + ebp]
add edi, 8
shld ebx, esi, 8
cdq
inc ebp
shl esi, 8
or ebx, edx
mov edx, dword [esp + 0x14]
or esi, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x38], edi
cmp edi, 2
jl 0x47f675
mov eax, dword [esp + 0x10]
movq xmm1, qword [esp + 0x30]
sub edi, 2
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd edx, xmm1
and edx, 3
sub edx, 0
je 0x47f763
sub edx, 1
je 0x47f9b7
sub edx, 1
je 0x47f930
cmp edi, 0x20
jge 0x47f72c
test eax, eax
jne 0x47f923
cmp edi, 0x20
jge 0x47f72c
cmp ebp, ecx
jae 0x47f90d
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 0x20
jl 0x47f6f7
movq xmm1, qword [esp + 0x30]
sub edi, 0x20
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd dword [esp + 0x18], xmm1
mov edx, dword [esp + 0x18]
jmp 0x47f7c6
cmp edi, 2
jge 0x47f6aa
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
cmp edi, 4
jge 0x47f7aa
test eax, eax
jne 0x47fafd
cmp edi, 4
jge 0x47f7aa
cmp ebp, ecx
jae 0x47fae7
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 4
jl 0x47f775
movq xmm1, qword [esp + 0x30]
sub edi, 4
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd edx, xmm1
and edx, 0xf
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x2f0]
add eax, edx
mov dl, byte [esp + 0xa0]
test dl, 0x40
lea ecx, [eax + 0x102]
cmove ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x24]
test dl, 0x20
je 0x47fda1
mov eax, dword [esp + 0x10]
cmp edi, 2
jge 0x47f849
test eax, eax
jne 0x47fb1a
cmp edi, 2
jge 0x47f849
nop dword [eax]
cmp ebp, ecx
jae 0x47fb04
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 2
jl 0x47f810
mov eax, dword [esp + 0x10]
movq xmm1, qword [esp + 0x30]
sub edi, 2
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd edx, xmm1
and edx, 3
sub edx, 0
je 0x47fb1a
sub edx, 1
je 0x47fc54
sub edx, 1
je 0x47fbd3
cmp edi, 0x20
jge 0x47f8c7
test eax, eax
jne 0x47fbcb
cmp edi, 0x20
jge 0x47f8c7
cmp ebp, ecx
jae 0x47fbb5
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 0x20
jl 0x47f892
movq xmm1, qword [esp + 0x30]
sub edi, 0x20
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd dword [esp + 0x18], xmm1
mov eax, dword [esp + 0x18]
jmp 0x47fb85
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
jmp 0x47f763
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
jmp 0x47f6ae
cmp edi, 0x20
jge 0x47f72c
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x47f7c6
cmp edi, 0x10
jge 0x47f971
test eax, eax
jne 0x47f9aa
cmp edi, 0x10
jge 0x47f971
nop
cmp ebp, ecx
jae 0x47f998
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 0x10
jl 0x47f940
movq xmm1, qword [esp + 0x30]
sub edi, 0x10
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
movzx eax, ax
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x47f7c6
cmp edi, 0x10
jge 0x47f971
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x47f7c6
cmp edi, 8
jge 0x47fa05
test eax, eax
jne 0x47fab7
cmp edi, 8
jge 0x47fa05
nop dword [eax]
cmp ebp, ecx
jae 0x47faa1
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 8
jl 0x47f9d0
movq xmm1, qword [esp + 0x30]
sub edi, 8
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
movzx edx, al
mov dword [esp + 0x18], edx
cmp edx, 0x10
jae 0x47f7c6
cmp edi, 4
jge 0x47fa74
cmp dword [esp + 0x10], 0
jne 0x47fad8
cmp edi, 4
jge 0x47fa74
cmp ebp, ecx
jae 0x47fac2
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 4
jl 0x47fa43
movq xmm1, qword [esp + 0x30]
sub edi, 4
mov edx, dword [esp + 0x18]
or edx, 0xfffffff0
mov dword [esp + 0x38], edi
shl edx, 4
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
and eax, 0xf
or edx, eax
jmp 0x47f7c6
cmp edi, 8
jge 0x47fa05
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor edx, edx
mov dword [esp + 0x18], edx
jmp 0x47fa2e
cmp edi, 4
jge 0x47fa74
mov edx, dword [esp + 0x18]
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
or edx, 0xfffffff0
xor eax, eax
shl edx, 4
or edx, eax
jmp 0x47f7c6
cmp edi, 4
jge 0x47f7aa
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor edx, edx
jmp 0x47f7c6
cmp edi, 2
jge 0x47f845
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
cmp edi, 4
jge 0x47fb65
test eax, eax
jne 0x47fd9a
cmp edi, 4
jge 0x47fb65
nop dword [eax]
cmp ebp, ecx
jae 0x47fd84
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 4
jl 0x47fb30
movq xmm1, qword [esp + 0x30]
sub edi, 4
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
and eax, 0xf
mov dword [esp + 0x18], eax
mov edx, 0x3c000
mov dword [esp + 0x7c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], edx
mov dword [esp + 0x78], edx
mov dl, byte [esp + 0xa0]
test eax, eax
je 0x47fdf1
mov eax, dword [eax + 0x18]
jmp 0x47fdf3
cmp edi, 0x20
jge 0x47f8c7
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x47fb85
cmp edi, 0x10
jge 0x47fc12
test eax, eax
jne 0x47fc49
cmp edi, 0x10
jge 0x47fc12
cmp ebp, ecx
jae 0x47fc37
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 0x10
jl 0x47fbe1
movq xmm1, qword [esp + 0x30]
sub edi, 0x10
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
movzx eax, ax
mov dword [esp + 0x18], eax
jmp 0x47fb85
cmp edi, 0x10
jge 0x47fc12
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x47fb85
cmp edi, 8
jge 0x47fc9b
test eax, eax
jne 0x47fd54
cmp edi, 8
jge 0x47fc9b
cmp ebp, ecx
jae 0x47fd3e
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 8
jl 0x47fc66
movq xmm1, qword [esp + 0x30]
sub edi, 8
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
movzx eax, al
mov dword [esp + 0x18], eax
cmp eax, 0x10
jae 0x47fb85
cmp edi, 4
jge 0x47fd11
cmp dword [esp + 0x10], 0
jne 0x47fd71
cmp edi, 4
jge 0x47fd11
nop dword [eax]
cmp ebp, ecx
jae 0x47fd5f
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 4
jl 0x47fce0
movq xmm1, qword [esp + 0x30]
sub edi, 4
mov eax, dword [esp + 0x18]
or eax, 0xfffffff0
mov dword [esp + 0x38], edi
shl eax, 4
movd xmm0, edi
psrlq xmm1, xmm0
movd edx, xmm1
and edx, 0xf
or eax, edx
jmp 0x47fb81
cmp edi, 8
jge 0x47fc9b
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x47fcc4
cmp edi, 4
jge 0x47fd11
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
xor edx, edx
or eax, 0xfffffff0
shl eax, 4
or eax, edx
jmp 0x47fb81
cmp edi, 4
jge 0x47fb65
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
jmp 0x47fb81
mov eax, dword [esp + 0x40]
test eax, eax
je 0x47fdd2
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, 0x3c000
mov dword [esp + 0x50], eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x18]
jmp 0x47fdf3
mov eax, 0x3c000
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], 0x40000
test dl, 0x10
je 0x47ff61
cmp edi, 7
jge 0x47fe5c
cmp dword [esp + 0x10], 0
jne 0x47febb
cmp edi, 7
jge 0x47fe5c
cmp ebp, ecx
jae 0x47feae
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
mov dword [esp + 0x38], edi
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
mov dword [esp + 0x28], ebp
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 7
jl 0x47fe27
movq xmm1, qword [esp + 0x30]
sub edi, 7
mov dword [esp + 0x38], edi
movd xmm0, edi
psrlq xmm1, xmm0
movd ebp, xmm1
and ebp, 0x7f
xor ebx, ebx
mov edi, 1
nop
test edi, ebp
je 0x47ff07
lea eax, [esp + 0x20]
push 2
push eax
call fcn.0047ec10
add esp, 8
sub eax, 0
je 0x47fef2
sub eax, 1
je 0x47fec3
sub eax, 1
lea eax, [esp + 0x20]
je 0x47febf
push 0x20
jmp 0x47fef8
cmp edi, 7
jge 0x47fe5c
mov dword [esp + 0x3c], 1
xor ebp, ebp
jmp 0x47fe78
push 0x10
jmp 0x47fef8
lea eax, [esp + 0x20]
push 8
push eax
call fcn.0047ec10
mov esi, eax
add esp, 8
cmp esi, 0x10
jae 0x47ff03
lea eax, [esp + 0x20]
push 4
push eax
call fcn.0047ec10
or esi, 0xfffffff0
add esp, 8
shl esi, 4
or esi, eax
jmp 0x47ff03
push 4
lea eax, [esp + 0x24]
push eax
call fcn.0047ec10
add esp, 8
mov esi, eax
mov dword [esp + ebx*4 + 0x6c], esi
inc ebx
rol edi, 1
cmp ebx, 7
jb 0x47fe80
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x48013b
lea eax, [esp + 0x20]
push 2
push eax
call fcn.0047ec10
add esp, 8
sub eax, 0
je 0x47ffe6
sub eax, 1
je 0x47ffaf
sub eax, 1
lea eax, [esp + 0x20]
je 0x47ff9f
push 0x20
push eax
call fcn.0047ec10
mov ebx, eax
mov dword [esp + 0x48], ebx
jmp 0x47fff8
push 0x10
push eax
call fcn.0047ec10
mov ebx, eax
mov dword [esp + 0x48], ebx
jmp 0x47fff8
lea eax, [esp + 0x20]
push 8
push eax
call fcn.0047ec10
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
cmp ebx, 0x10
jae 0x480003
lea eax, [esp + 0x20]
push 4
push eax
call fcn.0047ec10
or ebx, 0xfffffff0
add esp, 8
shl ebx, 4
or ebx, eax
mov dword [esp + 0x40], ebx
jmp 0x47fffb
lea eax, [esp + 0x20]
push 4
push eax
call fcn.0047ec10
mov ebx, eax
mov dword [esp + 0x48], eax
add esp, 8
test ebx, ebx
je 0x480776
cmp ebx, 0x10000
ja 0x480776
push ebx
call fcn.006e38fe
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
je 0x480776
mov eax, dword [esp + 0x20]
xor edx, edx
mov edi, dword [esp + 0x38]
test ebx, ebx
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], ebx
je 0x4800e2
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
jmp 0x480064
mov ecx, dword [esp + 0x10]
cmp edi, 8
jge 0x4800a1
test ecx, ecx
jne 0x4800de
cmp edi, 8
jge 0x4800a1
cmp ebp, dword [esp + 0x24]
jae 0x4800cd
movzx eax, byte [eax + ebp]
add edi, 8
shld ebx, esi, 8
cdq
inc ebp
shl esi, 8
or ebx, edx
or esi, eax
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 8
jl 0x480072
sub edi, 8
mov eax, esi
mov edx, ebx
mov ecx, edi
call fcn.006d6d70
mov edx, dword [esp + 0x1c]
mov cl, al
mov eax, dword [esp + 0x44]
mov byte [edx + eax], cl
inc edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x40]
jb 0x480060
jmp 0x4800ea
cmp edi, 8
jge 0x4800a1
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], 1
xor cl, cl
jmp 0x4800b5
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0047d860
add esp, 8
mov dword [esp + 0x40], eax
push dword [esp + 0x44]
test eax, eax
je 0x48076e
call fcn.006e27a3
mov ecx, dword [esp + 0x4c]
add esp, 4
mov eax, dword [ecx]
test eax, eax
je 0x480135
nop dword [eax]
lea ebx, [eax + 0x20]
mov eax, dword [ebx]
mov dword [esp + 0x48], ebx
test eax, eax
jne 0x480120
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
mov ecx, dword [esp + 0x4c]
xor edx, edx
test byte [esp + 0xa0], 8
mov dword [eax + 0x1c], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], edx
je 0x480347
mov eax, dword [esp + 0x10]
cmp edi, 2
jge 0x480358
test eax, eax
jne 0x48024c
mov ecx, dword [esp + 0x24]
cmp edi, 2
jge 0x4801a9
cmp ebp, ecx
jae 0x48023a
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 2
jl 0x480178
mov eax, dword [esp + 0x10]
movq xmm1, qword [esp + 0x30]
sub edi, 2
movd xmm0, edi
psrlq xmm1, xmm0
movd edx, xmm1
and edx, 3
sub edx, 0
je 0x48024c
sub edx, 1
je 0x4803f9
sub edx, 1
je 0x480383
cmp edi, 0x20
jge 0x48021d
test eax, eax
jne 0x480372
cmp edi, 0x20
jge 0x48021d
nop
cmp ebp, ecx
jae 0x480361
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 0x20
jl 0x4801f0
movq xmm1, qword [esp + 0x30]
sub edi, 0x20
movd xmm0, edi
psrlq xmm1, xmm0
movd dword [esp + 0x1c], xmm1
mov eax, dword [esp + 0x1c]
jmp 0x4802ab
cmp edi, 2
jge 0x4801a5
mov eax, 1
mov dword [esp + 0x10], eax
cmp edi, 4
jge 0x48028f
test eax, eax
jne 0x480513
cmp edi, 4
jge 0x48028f
nop
cmp ebp, dword [esp + 0x24]
jae 0x480502
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 4
jl 0x480260
movq xmm1, qword [esp + 0x30]
sub edi, 4
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
and eax, 0xf
mov dword [esp + 0x1c], eax
cmp eax, 0x1fc0
ja 0x480776
add eax, 0x40
push eax
call fcn.006e38fe
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x480776
xor ecx, ecx
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x1c], ecx
je 0x480347
nop dword [eax]
cmp edi, 8
jge 0x48031e
cmp dword [esp + 0x10], 0
jne 0x48052b
cmp edi, 8
jge 0x48031e
cmp ebp, dword [esp + 0x24]
jae 0x48051a
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or edx, ebx
or esi, eax
mov ebx, edx
cmp edi, 8
jl 0x4802f5
sub edi, 8
mov eax, esi
mov edx, ebx
mov ecx, edi
call fcn.006d6d70
mov ecx, dword [esp + 0x48]
mov dl, al
mov eax, dword [esp + 0x44]
mov byte [eax + ecx + 0x40], dl
inc ecx
mov dword [esp + 0x48], ecx
cmp ecx, dword [esp + 0x1c]
jb 0x4802e0
mov edx, eax
cmp dword [esp + 0x10], 0
je 0x480532
push edx
jmp 0x48076e
mov ecx, dword [esp + 0x24]
jmp 0x4801a9
cmp edi, 0x20
jge 0x48021d
mov dword [esp + 0x10], 1
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
jmp 0x4802ab
cmp edi, 0x10
jge 0x4803ba
test eax, eax
jne 0x4803e8
cmp edi, 0x10
jge 0x4803ba
cmp ebp, ecx
jae 0x4803db
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 0x10
jl 0x480391
movq xmm1, qword [esp + 0x30]
sub edi, 0x10
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
movzx eax, ax
mov dword [esp + 0x1c], eax
jmp 0x4802ab
cmp edi, 0x10
jge 0x4803ba
mov dword [esp + 0x10], 1
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
jmp 0x4802ab
cmp edi, 8
jge 0x48043d
test eax, eax
jne 0x4804da
cmp edi, 8
jge 0x48043d
nop dword [eax + eax]
cmp ebp, ecx
jae 0x4804c9
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 8
jl 0x480410
movq xmm1, qword [esp + 0x30]
sub edi, 8
movd xmm0, edi
psrlq xmm1, xmm0
movd eax, xmm1
movzx eax, al
mov dword [esp + 0x1c], eax
cmp eax, 0x10
jae 0x4802ab
cmp edi, 4
jge 0x4804a0
cmp dword [esp + 0x10], 0
jne 0x4804f3
cmp edi, 4
jge 0x4804a0
cmp ebp, ecx
jae 0x4804e2
mov eax, dword [esp + 0x14]
add edi, 8
shld ebx, esi, 8
shl esi, 8
movzx eax, byte [eax + ebp]
inc ebp
cdq
or esi, eax
or ebx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
cmp edi, 4
jl 0x480477
movq xmm1, qword [esp + 0x30]
sub edi, 4
mov eax, dword [esp + 0x1c]
or eax, 0xfffffff0
shl eax, 4
movd xmm0, edi
psrlq xmm1, xmm0
movd ecx, xmm1
and ecx, 0xf
or eax, ecx
jmp 0x4802a7
cmp edi, 8
jge 0x48043d
mov dword [esp + 0x10], 1
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x480462
cmp edi, 4
jge 0x4804a0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], 1
or eax, 0xfffffff0
xor ecx, ecx
shl eax, 4
or eax, ecx
jmp 0x4802a7
cmp edi, 4
jge 0x48028f
mov dword [esp + 0x10], 1
xor eax, eax
jmp 0x4802a7
cmp edi, 8
jge 0x48031e
mov dword [esp + 0x10], 1
xor dl, dl
jmp 0x480332
push 0x40
push 1
call fcn.006dc77f
mov esi, eax
add esp, 8
test esi, esi
je 0x48076a
mov ebx, dword [esp + 0x1c]
mov ecx, 0x40
mov ebp, dword [esp + 0x40]
cmp ebx, ecx
mov dword [esi], ebp
cmova ecx, ebx
push ecx
push 1
mov dword [esi + 0x28], ecx
call fcn.006dc77f
add esp, 8
mov dword [esi + 0x24], eax
test eax, eax
je 0x48076a
mov edi, dword [esp + 0x44]
test edi, edi
je 0x480588
push ebx
push edi
push eax
call fcn.006d8770
add esp, 0xc
movups xmm0, xmmword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x4c]
movups xmmword [esi + 4], xmm0
push edi
movups xmm0, xmmword [esp + 0x80]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], ebx
movups xmmword [esi + 0x14], xmm0
call fcn.006e27a3
mov edx, dword [esi + 0x24]
add esp, 4
movups xmm1, xmmword [esp + 0x6c]
movd eax, xmm1
movaps xmm0, xmm1
movd ecx, xmm1
psrldq xmm0, 4
mov byte [edx], al
mov eax, ecx
shr eax, 8
mov byte [edx + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 2], al
shr ecx, 0x18
mov byte [edx + 3], cl
mov edx, dword [esi + 0x24]
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
movd ecx, xmm0
movaps xmm0, xmm1
mov byte [edx + 4], al
psrldq xmm0, 8
mov eax, ecx
psrldq xmm1, 0xc
shr eax, 8
mov byte [edx + 5], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 6], al
shr ecx, 0x18
mov byte [edx + 7], cl
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x60]
movd eax, xmm0
mov byte [ecx + 8], al
mov eax, edx
shr eax, 8
mov byte [ecx + 9], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0xa], al
shr edx, 0x18
mov byte [ecx + 0xb], dl
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x50]
movd eax, xmm1
movups xmm1, xmmword [esp + 0x7c]
mov byte [ecx + 0xc], al
mov eax, edx
shr eax, 8
mov byte [ecx + 0xd], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0xe], al
shr edx, 0x18
mov byte [ecx + 0xf], dl
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x18]
movd eax, xmm1
mov byte [ecx + 0x10], al
mov eax, edx
shr eax, 8
mov byte [ecx + 0x11], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0x12], al
shr edx, 0x18
mov byte [ecx + 0x13], dl
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x58]
movaps xmm0, xmm1
psrldq xmm0, 4
movd eax, xmm0
psrldq xmm1, 8
mov byte [ecx + 0x14], al
mov eax, edx
shr eax, 8
mov byte [ecx + 0x15], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0x16], al
shr edx, 0x18
mov byte [ecx + 0x17], dl
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x64]
movd eax, xmm1
mov byte [ecx + 0x18], al
mov eax, edx
shr eax, 8
mov byte [ecx + 0x19], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0x1a], al
mov eax, ebx
shr edx, 0x18
mov byte [ecx + 0x1b], dl
mov ecx, dword [esi + 0x24]
shr eax, 8
mov byte [ecx + 0x1d], al
mov eax, ebx
mov byte [ecx + 0x1c], bl
shr eax, 0x10
mov byte [ecx + 0x1e], al
shr ebx, 0x18
mov byte [ecx + 0x1f], bl
mov eax, dword [esi + 0x24]
mov dword [eax + 0x20], 0
mov edx, dword [ebp + 0x18]
mov eax, edx
mov ecx, dword [esi + 0x24]
shr eax, 8
mov byte [ecx + 0x2d], al
mov eax, edx
mov byte [ecx + 0x2c], dl
shr edx, 0x18
mov byte [ecx + 0x2f], dl
mov edx, dword [esp + 0x54]
shr eax, 0x10
mov byte [ecx + 0x2e], al
lea ecx, [edx + 0x328]
mov eax, dword [ecx]
test eax, eax
je 0x480741
lea ecx, [eax + 0x3c]
mov eax, dword [ecx]
test eax, eax
jne 0x480738
mov dword [ecx], esi
mov eax, dword [edx + 0x328]
cmp dword [eax + 0x3c], 0
jne 0x480763
mov eax, dword [esp + 0x68]
mov dword [edx + 0x330], eax
mov dword [edx + 0x334], 0
mov eax, 1
jmp 0x480778
push dword [esp + 0x44]
call fcn.006e27a3
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.006d66cb
add esp, 0x80
ret