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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x948
mov dword [esp + 0x104], ecx
movdqa xmm1, xmmword [0xa5ce20]
movdqa xmm2, xmmword [0xa5ce30]
xor ecx, ecx
movdqa xmm3, xmmword [str._a_a_a_a]
nop dword [eax + eax]
movdqu xmmword [esp + 0x40], xmm2
movdqu xmmword [esp + 0x50], xmm1
movzx eax, byte [edx]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm6, xmm0, 0
pxor xmm0, xmm0
punpcklbw xmm6, xmm0
punpcklwd xmm6, xmm0
movdqu xmm7, xmmword [esp + 0x40]
movdqu xmm1, xmmword [esp + 0x50]
pand xmm1, xmm3
pshufd xmm0, xmm1, 0xee
pshuflw xmm2, xmm0, 0xfe
movdqa xmm5, xmm6
psrld xmm5, xmm2
pshuflw xmm2, xmm0, 0x54
movdqa xmm0, xmm6
psrld xmm0, xmm2
pand xmm7, xmm3
punpckhqdq xmm0, xmm5
pshuflw xmm2, xmm1, 0xfe
movdqa xmm5, xmm6
psrld xmm5, xmm2
pshuflw xmm2, xmm1, 0x54
movdqa xmm1, xmm6
psrld xmm1, xmm2
punpcklqdq xmm1, xmm5
pshufd xmm2, xmm7, 0xee
pshuflw xmm5, xmm2, 0xfe
movdqa xmm3, xmm6
psrld xmm3, xmm5
pshuflw xmm2, xmm2, 0x54
movdqa xmm5, xmm6
psrld xmm5, xmm2
pshuflw xmm2, xmm7, 0xfe
movdqa xmm4, xmm6
psrld xmm4, xmm2
shufps xmm1, xmm0, 0xcc
pshuflw xmm0, xmm7, 0x54
movdqu xmm2, xmmword [esp + 0x40]
psrld xmm6, xmm0
movdqa xmm0, xmmword [0xa5ce50]
punpckhqdq xmm5, xmm3
movdqa xmm3, xmmword [str._a_a_a_a]
punpcklqdq xmm6, xmm4
shufps xmm6, xmm5, 0xcc
packuswb xmm6, xmm1
movdqu xmm1, xmmword [esp + 0x50]
packuswb xmm6, xmm6
pand xmm6, xmm0
movdqa xmm0, xmmword [0xa5ce60]
movq qword [esp + ecx + 0x2a8], xmm6
add ecx, 8
paddd xmm2, xmm0
paddd xmm1, xmm0
inc edx
cmp ecx, 0x100
jne 0x6c9720
xor edi, edi
mov ecx, 1
mov eax, 2
mov esi, 3
mov ebx, 4
mov ebp, 5
jmp 0x6c9889
mov eax, dword [esp]
mov byte [esp + edi + 0x2a8], al
mov byte [esp + edi + 0x2ae], 0
nop word cs:[eax + eax]
inc ecx
mov eax, dword [esp + 0x40]
inc eax
inc esi
inc ebx
inc ebp
mov edi, dword [esp + 0x50]
cmp edi, 0x100
je 0x6c9c4c
mov dword [esp + 0x40], eax
lea eax, [edi + 1]
mov dword [esp + 0x50], eax
cmp edi, 0xfe
ja 0x6c9870
cmp byte [esp + edi + 0x2a8], 0
je 0x6c9870
mov eax, dword [esp + 0x50]
movsx edx, byte [esp + eax + 0x2a8]
test edx, edx
je 0x6c9920
mov dword [esp], ecx
movsx eax, byte [esp + edi + 0x2a8]
lea ecx, [eax + edx*2]
cmp ecx, 0xf
jg 0x6c98e5
mov byte [esp + edi + 0x2a8], cl
mov byte [esp + edi + 0x2a9], 0
mov ecx, dword [esp]
cmp edi, 0xfd
ja 0x6c9870
jmp 0x6c992c
add edx, edx
sub eax, edx
cmp eax, 0xfffffff1
mov ecx, dword [esp]
jl 0x6c9870
mov byte [esp + edi + 0x2a8], al
mov eax, edi
nop
cmp byte [esp + eax + 0x2a9], 0
je 0x6c9a01
mov byte [esp + eax + 0x2a9], 0
inc eax
cmp eax, 0xff
jb 0x6c9900
nop
cmp edi, 0xfd
ja 0x6c9870
movsx edx, byte [esp + edi + 0x2aa]
test edx, edx
je 0x6c99ae
movsx eax, byte [esp + edi + 0x2a8]
mov dword [esp + 4], eax
lea eax, [eax + edx*4]
mov dword [esp], eax
cmp eax, 0x10
jge 0x6c996f
mov eax, dword [esp]
mov byte [esp + edi + 0x2a8], al
mov byte [esp + edi + 0x2aa], 0
cmp edi, 0xfd
je 0x6c9870
jmp 0x6c99ba
shl edx, 2
mov eax, dword [esp + 4]
sub eax, edx
cmp eax, 0xfffffff1
jl 0x6c9870
mov byte [esp + edi + 0x2a8], al
mov eax, ecx
nop word [eax + eax]
cmp byte [esp + eax + 0x2a9], 0
je 0x6c9ab3
mov byte [esp + eax + 0x2a9], 0
inc eax
cmp eax, 0xff
jb 0x6c9990
cmp edi, 0xfd
je 0x6c9870
movsx edx, byte [esp + edi + 0x2ab]
test edx, edx
je 0x6c9a5e
movsx eax, byte [esp + edi + 0x2a8]
mov dword [esp + 4], eax
lea eax, [eax + edx*8]
mov dword [esp], eax
cmp eax, 0x10
jge 0x6c9a1a
mov eax, dword [esp]
mov byte [esp + edi + 0x2a8], al
mov byte [esp + edi + 0x2ab], 0
cmp edi, 0xfb
ja 0x6c9870
jmp 0x6c9a6a
mov byte [esp + eax + 0x2a9], 1
cmp edi, 0xfd
ja 0x6c9870
jmp 0x6c992c
shl edx, 3
mov eax, dword [esp + 4]
sub eax, edx
cmp eax, 0xfffffff1
jl 0x6c9870
mov byte [esp + edi + 0x2a8], al
mov eax, dword [esp + 0x40]
nop word [eax + eax]
cmp byte [esp + eax + 0x2a9], 0
je 0x6c9b57
mov byte [esp + eax + 0x2a9], 0
inc eax
cmp eax, 0xff
jb 0x6c9a40
cmp edi, 0xfb
ja 0x6c9870
movsx edx, byte [esp + edi + 0x2ac]
test edx, edx
je 0x6c9b0e
movsx eax, byte [esp + edi + 0x2a8]
shl edx, 4
mov dword [esp + 4], eax
add eax, edx
mov dword [esp], eax
cmp eax, 0x10
jge 0x6c9acc
mov eax, dword [esp]
mov byte [esp + edi + 0x2a8], al
mov byte [esp + edi + 0x2ac], 0
cmp edi, 0xfb
je 0x6c9870
jmp 0x6c9b1a
mov byte [esp + eax + 0x2a9], 1
cmp edi, 0xfd
je 0x6c9870
jmp 0x6c99ba
mov eax, dword [esp + 4]
sub eax, edx
cmp eax, 0xfffffff1
jl 0x6c9870
mov byte [esp + edi + 0x2a8], al
mov eax, esi
nop word cs:[eax + eax]
cmp byte [esp + eax + 0x2a9], 0
je 0x6c9bac
mov byte [esp + eax + 0x2a9], 0
inc eax
cmp eax, 0xff
jb 0x6c9af0
cmp edi, 0xfb
je 0x6c9870
movsx edx, byte [esp + edi + 0x2ad]
test edx, edx
je 0x6c9bcd
movsx eax, byte [esp + edi + 0x2a8]
shl edx, 5
mov dword [esp + 4], eax
add eax, edx
mov dword [esp], eax
cmp eax, 0x10
jge 0x6c9b70
mov eax, dword [esp]
mov byte [esp + edi + 0x2a8], al
mov byte [esp + edi + 0x2ad], 0
jmp 0x6c9bcd
mov byte [esp + eax + 0x2a9], 1
cmp edi, 0xfb
ja 0x6c9870
jmp 0x6c9a6a
mov eax, dword [esp + 4]
sub eax, edx
cmp eax, 0xfffffff1
jl 0x6c9870
mov byte [esp + edi + 0x2a8], al
mov eax, ebx
nop dword [eax + eax]
cmp byte [esp + eax + 0x2a9], 0
je 0x6c9bc5
mov byte [esp + eax + 0x2a9], 0
inc eax
cmp eax, 0xff
jb 0x6c9b90
jmp 0x6c9bcd
mov byte [esp + eax + 0x2a9], 1
cmp edi, 0xfb
je 0x6c9870
jmp 0x6c9b1a
mov byte [esp + eax + 0x2a9], 1
cmp edi, 0xf9
ja 0x6c9870
movsx edx, byte [esp + edi + 0x2ae]
test edx, edx
je 0x6c9870
movsx eax, byte [esp + edi + 0x2a8]
shl edx, 6
mov dword [esp + 4], eax
add eax, edx
mov dword [esp], eax
cmp eax, 0x10
jl 0x6c9850
mov eax, dword [esp + 4]
sub eax, edx
cmp eax, 0xfffffff1
jl 0x6c9870
mov byte [esp + edi + 0x2a8], al
mov eax, ebp
nop
cmp byte [esp + eax + 0x2a9], 0
je 0x6c9c3f
mov byte [esp + eax + 0x2a9], 0
inc eax
cmp eax, 0xff
jb 0x6c9c20
jmp 0x6c9870
mov byte [esp + eax + 0x2a9], 1
jmp 0x6c9870
movdqa xmm1, xmmword [0xa5ce20]
movdqa xmm2, xmmword [0xa5ce30]
xor ecx, ecx
mov edx, dword [esp + 0x960]
nop word cs:[eax + eax]
movdqu xmmword [esp + 0x40], xmm2
movdqu xmmword [esp + 0x50], xmm1
movzx eax, byte [edx]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm6, xmm0, 0
pxor xmm0, xmm0
punpcklbw xmm6, xmm0
punpcklwd xmm6, xmm0
movdqu xmm7, xmmword [esp + 0x40]
movdqu xmm1, xmmword [esp + 0x50]
pand xmm1, xmm3
pshufd xmm0, xmm1, 0xee
pshuflw xmm2, xmm0, 0xfe
movdqa xmm5, xmm6
psrld xmm5, xmm2
pshuflw xmm2, xmm0, 0x54
movdqa xmm0, xmm6
psrld xmm0, xmm2
pand xmm7, xmm3
punpckhqdq xmm0, xmm5
pshuflw xmm2, xmm1, 0xfe
movdqa xmm5, xmm6
psrld xmm5, xmm2
pshuflw xmm2, xmm1, 0x54
movdqa xmm1, xmm6
psrld xmm1, xmm2
punpcklqdq xmm1, xmm5
pshufd xmm2, xmm7, 0xee
pshuflw xmm5, xmm2, 0xfe
movdqa xmm3, xmm6
psrld xmm3, xmm5
pshuflw xmm2, xmm2, 0x54
movdqa xmm5, xmm6
psrld xmm5, xmm2
pshuflw xmm2, xmm7, 0xfe
movdqa xmm4, xmm6
psrld xmm4, xmm2
shufps xmm1, xmm0, 0xcc
pshuflw xmm0, xmm7, 0x54
movdqu xmm2, xmmword [esp + 0x40]
psrld xmm6, xmm0
movdqa xmm0, xmmword [0xa5ce60]
punpckhqdq xmm5, xmm3
movdqa xmm3, xmmword [str._a_a_a_a]
punpcklqdq xmm6, xmm4
shufps xmm6, xmm5, 0xcc
packuswb xmm6, xmm1
movdqu xmm1, xmmword [esp + 0x50]
packuswb xmm6, xmm6
pand xmm6, xmmword [0xa5ce50]
movq qword [esp + ecx + 0x1a8], xmm6
add ecx, 8
paddd xmm2, xmm0
paddd xmm1, xmm0
inc edx
cmp ecx, 0x100
jne 0x6c9c70
xor ebp, ebp
mov eax, 1
mov ecx, 2
mov edx, 3
mov esi, 4
mov ebx, 5
jmp 0x6c9dc9
mov ecx, dword [esp]
mov byte [esp + ebp + 0x1a8], cl
mov byte [esp + ebp + 0x1ae], 0
nop
inc eax
mov ecx, dword [esp + 0x40]
inc ecx
inc edx
inc esi
inc ebx
mov ebp, dword [esp + 0x50]
cmp ebp, 0x100
je 0x6ca18d
mov dword [esp + 0x40], ecx
lea ecx, [ebp + 1]
mov dword [esp + 0x50], ecx
cmp ebp, 0xfe
ja 0x6c9db0
cmp byte [esp + ebp + 0x1a8], 0
je 0x6c9db0
mov ecx, dword [esp + 0x50]
movsx edi, byte [esp + ecx + 0x1a8]
test edi, edi
je 0x6c9e60
mov dword [esp], eax
movsx ecx, byte [esp + ebp + 0x1a8]
lea eax, [ecx + edi*2]
cmp eax, 0xf
jg 0x6c9e25
mov byte [esp + ebp + 0x1a8], al
mov byte [esp + ebp + 0x1a9], 0
mov eax, dword [esp]
cmp ebp, 0xfd
ja 0x6c9db0
jmp 0x6c9e6c
add edi, edi
sub ecx, edi
cmp ecx, 0xfffffff1
mov eax, dword [esp]
jl 0x6c9db0
mov byte [esp + ebp + 0x1a8], cl
mov ecx, ebp
nop
cmp byte [esp + ecx + 0x1a9], 0
je 0x6c9f42
mov byte [esp + ecx + 0x1a9], 0
inc ecx
cmp ecx, 0xff
jb 0x6c9e40
nop
cmp ebp, 0xfd
ja 0x6c9db0
movsx edi, byte [esp + ebp + 0x1aa]
test edi, edi
je 0x6c9eef
movsx ecx, byte [esp + ebp + 0x1a8]
mov dword [esp + 4], ecx
lea ecx, [ecx + edi*4]
mov dword [esp], ecx
cmp ecx, 0x10
jge 0x6c9eaf
mov ecx, dword [esp]
mov byte [esp + ebp + 0x1a8], cl
mov byte [esp + ebp + 0x1aa], 0
cmp ebp, 0xfd
je 0x6c9db0
jmp 0x6c9efb
shl edi, 2
mov ecx, dword [esp + 4]
sub ecx, edi
cmp ecx, 0xfffffff1
jl 0x6c9db0
mov byte [esp + ebp + 0x1a8], cl
mov ecx, eax
nop word [eax + eax]
cmp byte [esp + ecx + 0x1a9], 0
je 0x6c9ff4
mov byte [esp + ecx + 0x1a9], 0
inc ecx
cmp ecx, 0xff
jb 0x6c9ed0
cmp ebp, 0xfd
je 0x6c9db0
movsx edi, byte [esp + ebp + 0x1ab]
test edi, edi
je 0x6c9f9f
movsx ecx, byte [esp + ebp + 0x1a8]
mov dword [esp + 4], ecx
lea ecx, [ecx + edi*8]
mov dword [esp], ecx
cmp ecx, 0x10
jge 0x6c9f5b
mov ecx, dword [esp]
mov byte [esp + ebp + 0x1a8], cl
mov byte [esp + ebp + 0x1ab], 0
cmp ebp, 0xfb
ja 0x6c9db0
jmp 0x6c9fab
mov byte [esp + ecx + 0x1a9], 1
cmp ebp, 0xfd
ja 0x6c9db0
jmp 0x6c9e6c
shl edi, 3
mov ecx, dword [esp + 4]
sub ecx, edi
cmp ecx, 0xfffffff1
jl 0x6c9db0
mov byte [esp + ebp + 0x1a8], cl
mov ecx, dword [esp + 0x40]
nop dword [eax + eax]
cmp byte [esp + ecx + 0x1a9], 0
je 0x6ca098
mov byte [esp + ecx + 0x1a9], 0
inc ecx
cmp ecx, 0xff
jb 0x6c9f80
cmp ebp, 0xfb
ja 0x6c9db0
movsx edi, byte [esp + ebp + 0x1ac]
test edi, edi
je 0x6ca04f
movsx ecx, byte [esp + ebp + 0x1a8]
shl edi, 4
mov dword [esp + 4], ecx
add ecx, edi
mov dword [esp], ecx
cmp ecx, 0x10
jge 0x6ca00d
mov ecx, dword [esp]
mov byte [esp + ebp + 0x1a8], cl
mov byte [esp + ebp + 0x1ac], 0
cmp ebp, 0xfb
je 0x6c9db0
jmp 0x6ca05b
mov byte [esp + ecx + 0x1a9], 1
cmp ebp, 0xfd
je 0x6c9db0
jmp 0x6c9efb
mov ecx, dword [esp + 4]
sub ecx, edi
cmp ecx, 0xfffffff1
jl 0x6c9db0
mov byte [esp + ebp + 0x1a8], cl
mov ecx, edx
nop word cs:[eax + eax]
cmp byte [esp + ecx + 0x1a9], 0
je 0x6ca0ed
mov byte [esp + ecx + 0x1a9], 0
inc ecx
cmp ecx, 0xff
jb 0x6ca030
cmp ebp, 0xfb
je 0x6c9db0
movsx edi, byte [esp + ebp + 0x1ad]
test edi, edi
je 0x6ca10e
movsx ecx, byte [esp + ebp + 0x1a8]
shl edi, 5
mov dword [esp + 4], ecx
add ecx, edi
mov dword [esp], ecx
cmp ecx, 0x10
jge 0x6ca0b1
mov ecx, dword [esp]
mov byte [esp + ebp + 0x1a8], cl
mov byte [esp + ebp + 0x1ad], 0
jmp 0x6ca10e
mov byte [esp + ecx + 0x1a9], 1
cmp ebp, 0xfb
ja 0x6c9db0
jmp 0x6c9fab
mov ecx, dword [esp + 4]
sub ecx, edi
cmp ecx, 0xfffffff1
jl 0x6c9db0
mov byte [esp + ebp + 0x1a8], cl
mov ecx, esi
nop dword [eax]
cmp byte [esp + ecx + 0x1a9], 0
je 0x6ca106
mov byte [esp + ecx + 0x1a9], 0
inc ecx
cmp ecx, 0xff
jb 0x6ca0d0
jmp 0x6ca10e
mov byte [esp + ecx + 0x1a9], 1
cmp ebp, 0xfb
je 0x6c9db0
jmp 0x6ca05b
mov byte [esp + ecx + 0x1a9], 1
cmp ebp, 0xf9
ja 0x6c9db0
movsx edi, byte [esp + ebp + 0x1ae]
test edi, edi
je 0x6c9db0
movsx ecx, byte [esp + ebp + 0x1a8]
shl edi, 6
mov dword [esp + 4], ecx
add ecx, edi
mov dword [esp], ecx
cmp ecx, 0x10
jl 0x6c9d9c
mov ecx, dword [esp + 4]
sub ecx, edi
cmp ecx, 0xfffffff1
jl 0x6c9db0
mov byte [esp + ebp + 0x1a8], cl
mov ecx, ebx
nop
cmp byte [esp + ecx + 0x1a9], 0
je 0x6ca180
mov byte [esp + ecx + 0x1a9], 0
inc ecx
cmp ecx, 0xff
jb 0x6ca160
jmp 0x6c9db0
mov byte [esp + ecx + 0x1a9], 1
jmp 0x6c9db0
lea ecx, [esp + 0x448]
mov esi, dword [esp + 0x95c]
mov edx, esi
call fcn.006cfb20
movsd xmm0, qword [esi + 0x20]
movsd qword [esp + 0x128], xmm0
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmmword [esp + 0x118], xmm1
movups xmmword [esp + 0x108], xmm0
movups xmm0, xmmword [esi + 0x28]
movups xmm1, xmmword [esi + 0x38]
movups xmmword [esp + 0x130], xmm0
movups xmmword [esp + 0x140], xmm1
movsd xmm0, qword [esi + 0x48]
movsd qword [esp + 0x150], xmm0
movups xmm0, xmmword [esi + 0x50]
movdqu xmm1, xmmword [esi + 0x60]
movups xmmword [esp + 0x158], xmm0
movdqu xmmword [esp + 0x168], xmm1
movsd xmm0, qword [esi + 0x70]
movsd qword [esp + 0x178], xmm0
lea ebp, [esp + 0x60]
lea edx, [esp + 0x108]
mov ecx, ebp
call fcn.006ce080
lea eax, [esp + 0xd8]
lea ecx, [esp + 0x3a8]
mov edx, ebp
push eax
mov esi, eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x3d0]
lea edi, [esp + 0x88]
lea ebx, [esp + 0xb0]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x3f8]
mov edx, ebx
push esi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x420]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
mov ecx, ebp
lea edx, [esp + 0x3a8]
lea eax, [esp + 0x448]
push eax
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov edx, ebp
push esi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
push esi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x4e8]
mov ecx, esi
lea edx, [esp + 0x108]
call fcn.006cfb20
mov ecx, ebp
lea edx, [esp + 0x3a8]
push esi
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov edx, ebp
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x588]
mov ecx, esi
lea edx, [esp + 0x108]
call fcn.006cfb20
mov ecx, ebp
lea edx, [esp + 0x3a8]
push esi
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov edx, ebp
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x628]
mov ecx, esi
lea edx, [esp + 0x108]
call fcn.006cfb20
mov ecx, ebp
lea edx, [esp + 0x3a8]
push esi
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov edx, ebp
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x6c8]
mov ecx, esi
lea edx, [esp + 0x108]
call fcn.006cfb20
mov ecx, ebp
lea edx, [esp + 0x3a8]
push esi
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov edx, ebp
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x768]
mov ecx, esi
lea edx, [esp + 0x108]
call fcn.006cfb20
mov ecx, ebp
lea edx, [esp + 0x3a8]
push esi
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov edx, ebp
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x808]
mov ecx, esi
lea edx, [esp + 0x108]
call fcn.006cfb20
mov ecx, ebp
lea edx, [esp + 0x3a8]
push esi
call fcn.006cfc00
add esp, 4
lea ecx, [esp + 0x108]
mov esi, ecx
mov edx, ebp
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, ebx
lea eax, [esp + 0xd8]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x8a8]
mov edx, esi
call fcn.006cfb20
xorps xmm0, xmm0
mov ebp, dword [esp + 0x104]
movsd qword [ebp + 0x20], xmm0
xorps xmm0, xmm0
movups xmmword [ebp + 0x10], xmm0
movups xmmword [ebp], xmm0
lea eax, [ebp + 0x28]
mov dword [esp], eax
movups xmmword [ebp + 0x2c], xmm0
movups xmmword [ebp + 0x3c], xmm0
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x28], 1
lea eax, [ebp + 0x50]
mov dword [esp + 4], eax
movups xmmword [ebp + 0x54], xmm0
movups xmmword [ebp + 0x64], xmm0
mov dword [ebp + 0x74], 0
mov dword [ebp + 0x50], 1
mov dword [esp + 0x50], 0xff
mov eax, 0xfe
nop word cs:[eax + eax]
cmp byte [esp + eax + 0x2a9], 0
jne 0x6ca68e
cmp byte [esp + eax + 0x1a9], 0
jne 0x6ca693
cmp byte [esp + eax + 0x2a8], 0
jne 0x6cb278
cmp byte [esp + eax + 0x1a8], 0
jne 0x6ca68f
add dword [esp + 0x50], 0xfffffffe
add eax, 0xfffffffe
cmp eax, 0xfffffffe
jne 0x6ca650
jmp 0x6cb287
inc eax
mov dword [esp + 0x50], eax
cmp dword [esp + 0x50], 0
js 0x6cb287
inc dword [esp + 0x50]
jmp 0x6ca780
lea ecx, [esp + 0x108]
lea edx, [esp + 0x60]
lea ebp, [esp + 0xd8]
push ebp
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
lea esi, [esp + 0x88]
mov edx, esi
lea edi, [esp + 0xb0]
push edi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, edi
push ebp
lea ebp, [esp + 0x64]
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push esi
call fcn.006cc9e0
add esp, 4
shr ebx, 1
imul eax, ebx, 0x78
lea eax, [eax + 0xa64788]
mov ecx, ebp
lea edx, [esp + 0x108]
push eax
call fcn.006cdd90
add esp, 4
lea edi, [esp + 0xb0]
mov ebp, dword [esp + 0x104]
mov ecx, ebp
lea edx, [esp + 0x60]
lea ebx, [esp + 0xd8]
push ebx
call fcn.006cc9e0
add esp, 4
mov ecx, dword [esp]
lea edx, [esp + 0x88]
push edi
call fcn.006cc9e0
add esp, 4
mov ecx, dword [esp + 4]
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
dec dword [esp + 0x50]
jle 0x6cb287
lea ecx, [esp + 0x60]
mov edx, ebp
call fcn.006ce080
mov eax, dword [esp + 0x50]
movzx eax, byte [esp + eax + 0x2a7]
test al, al
jle 0x6ca850
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x108]
lea edx, [esp + 0x60]
lea ebx, [esp + 0xd8]
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
lea edi, [esp + 0x88]
mov edx, edi
lea esi, [esp + 0xb0]
push esi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, esi
lea ebp, [esp + 0x60]
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
mov eax, dword [esp + 0x40]
shr eax, 1
lea eax, [eax + eax*4]
shl eax, 5
add eax, esp
add eax, 0x448
mov ecx, ebp
lea edx, [esp + 0x108]
push eax
call fcn.006cfc00
add esp, 4
mov eax, dword [esp + 0x50]
movzx ebx, byte [esp + eax + 0x1a7]
test bl, bl
jg 0x6ca6b0
jmp 0x6ca86c
test al, al
js 0x6cad34
mov eax, dword [esp + 0x50]
movzx ebx, byte [esp + eax + 0x1a7]
test bl, bl
jg 0x6ca6b0
test bl, bl
jns 0x6ca730
lea ecx, [esp + 0x108]
lea edx, [esp + 0x60]
lea ebp, [esp + 0xd8]
push ebp
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
lea edx, [esp + 0x88]
mov esi, edx
lea edi, [esp + 0xb0]
push edi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, edi
push ebp
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
lea edx, [esp + 0x60]
push esi
call fcn.006cc9e0
add esp, 4
mov edx, dword [esp + 0x130]
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x108]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x14], ecx
add eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x10], eax
lea eax, [ecx + eax]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x110]
mov dword [esp + 0x38], eax
lea eax, [eax + ecx]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x114]
mov dword [esp + 0x30], eax
lea eax, [eax + ecx]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x140]
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x28], eax
lea eax, [eax + ecx]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x24], eax
lea eax, [eax + ecx]
mov dword [esp + 0x74], eax
mov ebp, dword [esp + 0x148]
mov eax, dword [esp + 0x120]
mov dword [esp + 0x18], eax
lea eax, [eax + ebp]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x14c]
lea ecx, [eax + edx]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x150]
mov eax, dword [esp + 0x128]
mov dword [esp + 0x100], eax
lea esi, [eax + ecx]
mov dword [esp + 0x80], esi
mov edi, dword [esp + 0x154]
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x1c], eax
lea esi, [eax + edi]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xc]
sub esi, dword [esp + 0x40]
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x10]
sub esi, dword [esp + 0x14]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x38]
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x2c]
sub esi, dword [esp + 0x30]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 8]
sub esi, dword [esp + 0x28]
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + 0x9c], eax
sub ebp, dword [esp + 0x18]
mov dword [esp + 0xa0], ebp
sub edx, dword [esp + 0x3c]
mov dword [esp + 0xa4], edx
sub ecx, dword [esp + 0x100]
mov dword [esp + 0xa8], ecx
neg bl
shr bl, 1
movzx eax, bl
imul ebx, eax, 0x78
sub edi, dword [esp + 0x1c]
lea esi, [ebx + 0xa64788]
mov dword [esp + 0xac], edi
lea eax, [ebx + 0xa647b0]
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x60]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x88]
mov edx, ecx
push esi
call fcn.006cc9e0
add esp, 4
lea edx, [ebx + 0xa647d8]
lea ecx, [esp + 0xd8]
lea eax, [esp + 0x180]
push eax
call fcn.006cc9e0
add esp, 4
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x88]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xc], ecx
sub eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
sub eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x34], ecx
sub eax, ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x2c], ecx
sub eax, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
sub eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x9c]
sub eax, ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0xa0]
sub eax, edi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1c], eax
sub eax, esi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0xa8]
sub eax, edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xac]
mov ebp, eax
sub ebp, ecx
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x14]
add ebp, dword [esp + 0x40]
mov dword [esp + 0x88], ebp
mov ebp, dword [esp + 0xc]
add ebp, dword [esp + 0x10]
mov dword [esp + 0x8c], ebp
mov ebp, dword [esp + 0x34]
add ebp, dword [esp + 0x38]
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x2c]
add ebp, dword [esp + 0x30]
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 8]
add ebp, dword [esp + 0x28]
mov dword [esp + 0x98], ebp
add ebx, dword [esp + 0x24]
mov dword [esp + 0x9c], ebx
add edi, dword [esp + 0x20]
mov dword [esp + 0xa0], edi
add esi, dword [esp + 0x1c]
mov dword [esp + 0xa4], esi
add edx, dword [esp + 0x18]
mov dword [esp + 0xa8], edx
add ecx, eax
mov dword [esp + 0xac], ecx
movdqu xmm0, xmmword [esp + 0x158]
movdqu xmm1, xmmword [esp + 0x168]
paddd xmm0, xmm0
movdqu xmm3, xmmword [esp + 0xd8]
movdqu xmm2, xmmword [esp + 0xe8]
movdqa xmm4, xmm0
psubd xmm4, xmm3
movdqu xmmword [esp + 0xb0], xmm4
paddd xmm1, xmm1
movdqa xmm4, xmm1
psubd xmm4, xmm2
movdqu xmmword [esp + 0xc0], xmm4
movdqa xmm4, xmm0
paddd xmm0, xmm3
shufps xmm3, xmm2, 3
shufps xmm3, xmm2, 0x98
shufps xmm4, xmm1, 3
shufps xmm4, xmm1, 0x98
paddd xmm4, xmm3
movdqu xmmword [esp + 0xe4], xmm4
paddd xmm1, xmm2
pshufd xmm1, xmm1, 0xff
movd dword [esp + 0xf4], xmm1
movq xmm1, qword [esp + 0x178]
paddd xmm1, xmm1
movq xmm2, qword [esp + 0xf8]
movdqa xmm3, xmm1
psubd xmm3, xmm2
movd dword [esp + 0xd0], xmm3
pshufd xmm3, xmm1, 0x44
punpcklqdq xmm4, xmm2
psubd xmm3, xmm4
shufps xmm3, xmm0, 3
shufps xmm3, xmm0, 0x98
movups xmmword [esp + 0xd4], xmm3
paddd xmm1, xmm2
movq qword [esp + 0xf8], xmm1
jmp 0x6ca730
lea ecx, [esp + 0x108]
lea ebp, [esp + 0x60]
mov edx, ebp
mov dword [esp + 0x40], eax
lea ebx, [esp + 0xd8]
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x130]
lea edx, [esp + 0x88]
mov edi, edx
lea esi, [esp + 0xb0]
push esi
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x158]
mov edx, esi
push ebx
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x180]
mov edx, ebp
push edi
call fcn.006cc9e0
add esp, 4
mov edi, dword [esp + 0x130]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x10], ecx
add eax, edi
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x134]
lea eax, [ecx + ebx]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x110]
mov dword [esp + 0xc], eax
lea eax, [eax + ecx]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x114]
mov dword [esp + 0x34], eax
lea eax, [eax + ecx]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x2c], eax
lea eax, [eax + ecx]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp + 8], eax
lea eax, [eax + ecx]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x120]
mov dword [esp + 0x1c], eax
lea eax, [eax + ecx]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x14c]
lea ecx, [eax + edx]
mov dword [esp + 0x7c], ecx
mov esi, dword [esp + 0x150]
mov eax, dword [esp + 0x128]
mov dword [esp + 0x100], eax
lea ebp, [eax + esi]
mov dword [esp + 0x80], ebp
mov ecx, dword [esp + 0x154]
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x24], eax
lea ebp, [eax + ecx]
mov dword [esp + 0x84], ebp
sub edi, dword [esp + 0x14]
mov dword [esp + 0x88], edi
sub ebx, dword [esp + 0x10]
mov dword [esp + 0x8c], ebx
mov edi, dword [esp + 0x38]
sub edi, dword [esp + 0xc]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x30]
sub edi, dword [esp + 0x34]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x28]
sub edi, dword [esp + 0x2c]
mov dword [esp + 0x98], edi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 8]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
sub edx, dword [esp + 0x3c]
mov dword [esp + 0xa4], edx
sub esi, dword [esp + 0x100]
mov dword [esp + 0xa8], esi
mov eax, dword [esp + 0x40]
neg al
shr al, 1
movzx eax, al
lea esi, [eax + eax*4]
shl esi, 5
sub ecx, dword [esp + 0x24]
lea ebx, [esp + esi]
add ebx, 0x448
mov dword [esp + 0xac], ecx
lea eax, [esp + esi + 0x470]
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x60]
push eax
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x88]
mov edx, ecx
push ebx
call fcn.006cc9e0
add esp, 4
lea edx, [esp + esi]
add edx, 0x4c0
lea ecx, [esp + 0xd8]
lea eax, [esp + 0x180]
push eax
call fcn.006cc9e0
add esp, 4
lea eax, [esp + esi]
add eax, 0x498
lea ecx, [esp + 0x60]
lea edx, [esp + 0x158]
push eax
call fcn.006cc9e0
add esp, 4
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x14], ecx
mov ecx, edx
sub ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0xc], esi
add eax, edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0xc0]
mov dword [esp + 8], edx
mov edi, dword [esp + 0x98]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x1c], edx
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x30], edx
mov dword [esp + 0x88], eax
mov edx, ecx
mov eax, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x38], ecx
add eax, edx
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov eax, dword [esp + 0xc]
sub edx, eax
mov dword [esp + 0x14], edx
add eax, ecx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, esi
mov dword [esp + 0xc], eax
add esi, ecx
mov dword [esp + 0x94], esi
mov ecx, dword [esp + 8]
mov eax, ecx
sub eax, edi
mov dword [esp + 0x10], eax
add edi, ecx
mov dword [esp + 0x98], edi
mov ecx, dword [esp + 0x18]
mov eax, ecx
sub eax, ebx
mov dword [esp + 8], eax
add ebx, ecx
mov dword [esp + 0x9c], ebx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, ebp
add ebp, ecx
mov dword [esp + 0xa0], ebp
mov edx, dword [esp + 0x24]
mov ecx, edx
mov esi, dword [esp + 0x20]
sub ecx, esi
add esi, edx
mov dword [esp + 0xa4], esi
mov edx, dword [esp + 0x2c]
mov edi, edx
mov esi, dword [esp + 0x28]
sub edi, esi
add esi, edx
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x34]
mov edx, esi
mov ebx, dword [esp + 0x30]
sub edx, ebx
add ebx, esi
mov dword [esp + 0xac], ebx
movdqu xmm0, xmmword [esp + 0x60]
movdqu xmm2, xmmword [esp + 0x70]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x6c], esi
paddd xmm0, xmm0
movdqu xmm1, xmmword [esp + 0xd8]
movdqa xmm3, xmm0
psubd xmm3, xmm1
movdqu xmmword [esp + 0xb0], xmm3
mov esi, dword [esp + 0x10]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
paddd xmm2, xmm2
movdqu xmm3, xmmword [esp + 0xe8]
movdqa xmm4, xmm2
psubd xmm4, xmm3
movdqu xmmword [esp + 0xc0], xmm4
movdqa xmm4, xmm1
shufps xmm4, xmm3, 3
shufps xmm4, xmm3, 0x98
movdqa xmm5, xmm0
shufps xmm5, xmm2, 3
shufps xmm5, xmm2, 0x98
paddd xmm5, xmm4
movdqu xmmword [esp + 0xe4], xmm5
paddd xmm2, xmm3
pshufd xmm2, xmm2, 0xff
movd dword [esp + 0xf4], xmm2
movq xmm2, qword [esp + 0x80]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edx
paddd xmm0, xmm1
paddd xmm2, xmm2
movq xmm1, qword [esp + 0xf8]
movdqa xmm3, xmm2
psubd xmm3, xmm1
movd dword [esp + 0xd0], xmm3
pshufd xmm3, xmm2, 0x44
punpcklqdq xmm4, xmm1
psubd xmm3, xmm4
shufps xmm3, xmm0, 3
shufps xmm3, xmm0, 0x98
movups xmmword [esp + 0xd4], xmm3
paddd xmm2, xmm1
movq qword [esp + 0xf8], xmm2
mov eax, dword [esp + 0x50]
movzx ebx, byte [esp + eax + 0x1a7]
test bl, bl
jg 0x6ca6b0
jmp 0x6ca86c
dec dword [esp + 0x50]
cmp dword [esp + 0x50], 0
jns 0x6ca69e
add esp, 0x948
pop esi
pop edi
pop ebx
pop ebp
ret