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

Disassembly:
sub esp, 0x80
mov eax, dword [0x9726c0]
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 0x48114e
mov eax, dword [eax + 0x20]
inc esi
test eax, eax
jne 0x481146
cmp byte [esp + 0xa0], 0
jge 0x4811fb
lea eax, [esp + 0x20]
push eax
call fcn.00480890
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4811de
mov edi, dword [edi + 0x328]
test edi, edi
je 0x48119a
nop dword [eax]
push dword [edi + 0x24]
mov esi, dword [edi + 0x3c]
call fcn.00877223
push edi
call fcn.00877223
add esp, 8
mov edi, esi
test esi, esi
jne 0x481180
mov eax, dword [esp + 0x54]
mov edi, dword [ebp]
mov dword [eax + 0x328], 0
test edi, edi
je 0x4811d1
nop
push dword [edi]
mov esi, dword [edi + 0x20]
call fcn.00877223
push dword [edi + 8]
call fcn.00877223
push edi
call fcn.00877223
add esp, 0xc
mov edi, esi
test esi, esi
jne 0x4811b0
mov edi, dword [esp + 0x54]
mov dword [ebp], 0
jmp 0x4811e7
dec ebx
cmp ebx, esi
ja 0x482356
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x338], ebx
mov dword [esp + 0x14], edx
jmp 0x481201
mov ebx, dword [edi + 0x338]
mov eax, dword [ebp]
mov dword [esp + 0x40], eax
test ebx, ebx
je 0x48121c
nop dword [eax]
mov eax, dword [eax + 0x20]
sub ebx, 1
jne 0x481210
mov dword [esp + 0x40], eax
test eax, eax
je 0x481223
inc dword [eax + 0x18]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
cmp edi, 2
jge 0x4814dc
test eax, eax
jne 0x4814cb
cmp edi, 2
jge 0x4814dc
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
cmp ebp, ecx
jae 0x48132d
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 0x481255
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 0x481343
sub edx, 1
je 0x481597
sub edx, 1
je 0x481510
cmp edi, 0x20
jge 0x48130c
test eax, eax
jne 0x481503
cmp edi, 0x20
jge 0x48130c
cmp ebp, ecx
jae 0x4814ed
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 0x4812d7
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 0x4813a6
cmp edi, 2
jge 0x48128a
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
cmp edi, 4
jge 0x48138a
test eax, eax
jne 0x4816dd
cmp edi, 4
jge 0x48138a
cmp ebp, ecx
jae 0x4816c7
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 0x481355
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 0x481981
mov eax, dword [esp + 0x10]
cmp edi, 2
jge 0x481429
test eax, eax
jne 0x4816fa
cmp edi, 2
jge 0x481429
nop dword [eax]
cmp ebp, ecx
jae 0x4816e4
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 0x4813f0
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 0x4816fa
sub edx, 1
je 0x481834
sub edx, 1
je 0x4817b3
cmp edi, 0x20
jge 0x4814a7
test eax, eax
jne 0x4817ab
cmp edi, 0x20
jge 0x4814a7
cmp ebp, ecx
jae 0x481795
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 0x481472
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 0x481765
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
jmp 0x481343
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
jmp 0x48128e
cmp edi, 0x20
jge 0x48130c
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 0x4813a6
cmp edi, 0x10
jge 0x481551
test eax, eax
jne 0x48158a
cmp edi, 0x10
jge 0x481551
nop
cmp ebp, ecx
jae 0x481578
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 0x481520
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 0x4813a6
cmp edi, 0x10
jge 0x481551
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 0x4813a6
cmp edi, 8
jge 0x4815e5
test eax, eax
jne 0x481697
cmp edi, 8
jge 0x4815e5
nop dword [eax]
cmp ebp, ecx
jae 0x481681
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 0x4815b0
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 0x4813a6
cmp edi, 4
jge 0x481654
cmp dword [esp + 0x10], 0
jne 0x4816b8
cmp edi, 4
jge 0x481654
cmp ebp, ecx
jae 0x4816a2
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 0x481623
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 0x4813a6
cmp edi, 8
jge 0x4815e5
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor edx, edx
mov dword [esp + 0x18], edx
jmp 0x48160e
cmp edi, 4
jge 0x481654
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 0x4813a6
cmp edi, 4
jge 0x48138a
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor edx, edx
jmp 0x4813a6
cmp edi, 2
jge 0x481425
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
cmp edi, 4
jge 0x481745
test eax, eax
jne 0x48197a
cmp edi, 4
jge 0x481745
nop dword [eax]
cmp ebp, ecx
jae 0x481964
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 0x481710
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 0x4819d1
mov eax, dword [eax + 0x18]
jmp 0x4819d3
cmp edi, 0x20
jge 0x4814a7
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x481765
cmp edi, 0x10
jge 0x4817f2
test eax, eax
jne 0x481829
cmp edi, 0x10
jge 0x4817f2
cmp ebp, ecx
jae 0x481817
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 0x4817c1
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 0x481765
cmp edi, 0x10
jge 0x4817f2
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x481765
cmp edi, 8
jge 0x48187b
test eax, eax
jne 0x481934
cmp edi, 8
jge 0x48187b
cmp ebp, ecx
jae 0x48191e
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 0x481846
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 0x481765
cmp edi, 4
jge 0x4818f1
cmp dword [esp + 0x10], 0
jne 0x481951
cmp edi, 4
jge 0x4818f1
nop dword [eax]
cmp ebp, ecx
jae 0x48193f
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 0x4818c0
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 0x481761
cmp edi, 8
jge 0x48187b
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4818a4
cmp edi, 4
jge 0x4818f1
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 0x481761
cmp edi, 4
jge 0x481745
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
xor eax, eax
jmp 0x481761
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4819b2
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 0x4819d3
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 0x481b41
cmp edi, 7
jge 0x481a3c
cmp dword [esp + 0x10], 0
jne 0x481a9b
cmp edi, 7
jge 0x481a3c
cmp ebp, ecx
jae 0x481a8e
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 0x481a07
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 0x481ae7
lea eax, [esp + 0x20]
push 2
push eax
call fcn.004807f0
add esp, 8
sub eax, 0
je 0x481ad2
sub eax, 1
je 0x481aa3
sub eax, 1
lea eax, [esp + 0x20]
je 0x481a9f
push 0x20
jmp 0x481ad8
cmp edi, 7
jge 0x481a3c
mov dword [esp + 0x3c], 1
xor ebp, ebp
jmp 0x481a58
push 0x10
jmp 0x481ad8
lea eax, [esp + 0x20]
push 8
push eax
call fcn.004807f0
mov esi, eax
add esp, 8
cmp esi, 0x10
jae 0x481ae3
lea eax, [esp + 0x20]
push 4
push eax
call fcn.004807f0
or esi, 0xfffffff0
add esp, 8
shl esi, 4
or esi, eax
jmp 0x481ae3
push 4
lea eax, [esp + 0x24]
push eax
call fcn.004807f0
add esp, 8
mov esi, eax
mov dword [esp + ebx*4 + 0x6c], esi
inc ebx
rol edi, 1
cmp ebx, 7
jb 0x481a60
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 0x481d1b
lea eax, [esp + 0x20]
push 2
push eax
call fcn.004807f0
add esp, 8
sub eax, 0
je 0x481bc6
sub eax, 1
je 0x481b8f
sub eax, 1
lea eax, [esp + 0x20]
je 0x481b7f
push 0x20
push eax
call fcn.004807f0
mov ebx, eax
mov dword [esp + 0x48], ebx
jmp 0x481bd8
push 0x10
push eax
call fcn.004807f0
mov ebx, eax
mov dword [esp + 0x48], ebx
jmp 0x481bd8
lea eax, [esp + 0x20]
push 8
push eax
call fcn.004807f0
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
cmp ebx, 0x10
jae 0x481be3
lea eax, [esp + 0x20]
push 4
push eax
call fcn.004807f0
or ebx, 0xfffffff0
add esp, 8
shl ebx, 4
or ebx, eax
mov dword [esp + 0x40], ebx
jmp 0x481bdb
lea eax, [esp + 0x20]
push 4
push eax
call fcn.004807f0
mov ebx, eax
mov dword [esp + 0x48], eax
add esp, 8
test ebx, ebx
je 0x482356
cmp ebx, 0x10000
ja 0x482356
push ebx
call fcn.0087837e
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
je 0x482356
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 0x481cc2
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
jmp 0x481c44
mov ecx, dword [esp + 0x10]
cmp edi, 8
jge 0x481c81
test ecx, ecx
jne 0x481cbe
cmp edi, 8
jge 0x481c81
cmp ebp, dword [esp + 0x24]
jae 0x481cad
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 0x481c52
sub edi, 8
mov eax, esi
mov edx, ebx
mov ecx, edi
call fcn.0086b580
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 0x481c40
jmp 0x481cca
cmp edi, 8
jge 0x481c81
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], 1
xor cl, cl
jmp 0x481c95
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0047f440
add esp, 8
mov dword [esp + 0x40], eax
push dword [esp + 0x44]
test eax, eax
je 0x48234e
call fcn.00877223
mov ecx, dword [esp + 0x4c]
add esp, 4
mov eax, dword [ecx]
test eax, eax
je 0x481d15
nop dword [eax]
lea ebx, [eax + 0x20]
mov eax, dword [ebx]
mov dword [esp + 0x48], ebx
test eax, eax
jne 0x481d00
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 0x481f27
mov eax, dword [esp + 0x10]
cmp edi, 2
jge 0x481f38
test eax, eax
jne 0x481e2c
mov ecx, dword [esp + 0x24]
cmp edi, 2
jge 0x481d89
cmp ebp, ecx
jae 0x481e1a
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 0x481d58
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 0x481e2c
sub edx, 1
je 0x481fd9
sub edx, 1
je 0x481f63
cmp edi, 0x20
jge 0x481dfd
test eax, eax
jne 0x481f52
cmp edi, 0x20
jge 0x481dfd
nop
cmp ebp, ecx
jae 0x481f41
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 0x481dd0
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 0x481e8b
cmp edi, 2
jge 0x481d85
mov eax, 1
mov dword [esp + 0x10], eax
cmp edi, 4
jge 0x481e6f
test eax, eax
jne 0x4820f3
cmp edi, 4
jge 0x481e6f
nop
cmp ebp, dword [esp + 0x24]
jae 0x4820e2
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 0x481e40
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 0x482356
add eax, 0x40
push eax
call fcn.0087837e
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x482356
xor ecx, ecx
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x1c], ecx
je 0x481f27
nop dword [eax]
cmp edi, 8
jge 0x481efe
cmp dword [esp + 0x10], 0
jne 0x48210b
cmp edi, 8
jge 0x481efe
cmp ebp, dword [esp + 0x24]
jae 0x4820fa
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 0x481ed5
sub edi, 8
mov eax, esi
mov edx, ebx
mov ecx, edi
call fcn.0086b580
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 0x481ec0
mov edx, eax
cmp dword [esp + 0x10], 0
je 0x482112
push edx
jmp 0x48234e
mov ecx, dword [esp + 0x24]
jmp 0x481d89
cmp edi, 0x20
jge 0x481dfd
mov dword [esp + 0x10], 1
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
jmp 0x481e8b
cmp edi, 0x10
jge 0x481f9a
test eax, eax
jne 0x481fc8
cmp edi, 0x10
jge 0x481f9a
cmp ebp, ecx
jae 0x481fbb
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 0x481f71
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 0x481e8b
cmp edi, 0x10
jge 0x481f9a
mov dword [esp + 0x10], 1
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
jmp 0x481e8b
cmp edi, 8
jge 0x48201d
test eax, eax
jne 0x4820ba
cmp edi, 8
jge 0x48201d
nop dword [eax + eax]
cmp ebp, ecx
jae 0x4820a9
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 0x481ff0
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 0x481e8b
cmp edi, 4
jge 0x482080
cmp dword [esp + 0x10], 0
jne 0x4820d3
cmp edi, 4
jge 0x482080
cmp ebp, ecx
jae 0x4820c2
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 0x482057
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 0x481e87
cmp edi, 8
jge 0x48201d
mov dword [esp + 0x10], 1
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x482042
cmp edi, 4
jge 0x482080
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], 1
or eax, 0xfffffff0
xor ecx, ecx
shl eax, 4
or eax, ecx
jmp 0x481e87
cmp edi, 4
jge 0x481e6f
mov dword [esp + 0x10], 1
xor eax, eax
jmp 0x481e87
cmp edi, 8
jge 0x481efe
mov dword [esp + 0x10], 1
xor dl, dl
jmp 0x481f12
push 0x40
push 1
call fcn.00870e8f
mov esi, eax
add esp, 8
test esi, esi
je 0x48234a
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.00870e8f
add esp, 8
mov dword [esi + 0x24], eax
test eax, eax
je 0x48234a
mov edi, dword [esp + 0x44]
test edi, edi
je 0x482168
push ebx
push edi
push eax
call fcn.0086cdf0
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.00877223
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 0x482321
lea ecx, [eax + 0x3c]
mov eax, dword [ecx]
test eax, eax
jne 0x482318
mov dword [ecx], esi
mov eax, dword [edx + 0x328]
cmp dword [eax + 0x3c], 0
jne 0x482343
mov eax, dword [esp + 0x68]
mov dword [edx + 0x330], eax
mov dword [edx + 0x334], 0
mov eax, 1
jmp 0x482358
push dword [esp + 0x44]
call fcn.00877223
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0086aede
add esp, 0x80
ret