Function at 0x10072aed
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100dc2f0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x148
cmp byte [0x10129dcc], 0
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x78], edi
je case.0x10073472.0
mov eax, dword [edi]
sub eax, 0
je 0x10072ab8
sub eax, 1
je 0x100726ff
sub eax, 1
jne case.0x10073472.0
mov eax, dword [edi + 0x8c]
mov edx, dword [0x1010fffc]
mov eax, dword [eax]
mov dword [edx + 0x24], eax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + 4]
mov dword [edx + 0x28], eax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + 8]
mov dword [edx + 0x2c], eax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + 0x30]
mov dword [edx + 0x30], eax
add edx, 0xc
mov eax, dword [edi + 0x8c]
push edx
mov ecx, dword [eax + 0x24]
mov dword [edx], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 4], ecx
mov ecx, dword [0x1010ffb0]
mov eax, dword [eax + 0x2c]
mov dword [edx + 8], eax
mov eax, dword [ecx]
call dword [eax + 0x4c]
mov esi, dword [0x1010fffc]
mov eax, dword [edi + 0x8c]
movss xmm0, dword [esi + 0x10]
subss xmm0, dword [eax + 0x28]
mulss xmm0, dword [0x100f8684]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x38], xmm0
call fcn.100d7d40
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x14], xmm0
movsd xmm0, qword [ebp - 0x38]
call fcn.100d8a60
movss xmm2, dword [esi + 0x24]
xorps xmm3, xmm3
movss xmm4, dword [esi + 0x28]
movaps xmm1, xmm2
mulss xmm1, dword [ebp - 0x14]
cvtsd2ss xmm3, xmm0
movaps xmm0, xmm3
mulss xmm2, xmm3
mulss xmm0, xmm4
mulss xmm4, dword [ebp - 0x14]
subss xmm1, xmm0
addss xmm2, xmm4
movss dword [esi + 0x24], xmm1
movss dword [esi + 0x28], xmm2
mov esi, dword [edi + 0x8c]
mov eax, dword [edi + 0x90]
mov dword [ebp - 0x14], esi
add esi, 0x38
mov dword [ebp - 0x34], eax
cmp esi, eax
je 0x100726b7
mov edi, dword [ebp - 0x14]
lea ecx, [edi + 0x14]
lea edx, [edi + 0x4c]
nop dword [eax]
mov eax, dword [esi]
lea edi, [edi + 0x38]
mov dword [edi - 0x38], eax
lea ecx, [ecx + 0x38]
mov eax, dword [edx - 0x10]
lea edx, [edx + 0x38]
mov dword [ecx - 0x48], eax
add esi, 0x38
mov eax, dword [edx - 0x44]
mov dword [ecx - 0x44], eax
mov eax, dword [edx - 0x40]
mov dword [ecx - 0x40], eax
mov eax, dword [edx - 0x3c]
mov dword [ecx - 0x3c], eax
mov eax, dword [edx - 0x38]
mov dword [ecx - 0x38], eax
mov eax, dword [edx - 0x34]
mov dword [ecx - 0x34], eax
mov eax, dword [edx - 0x30]
mov dword [ecx - 0x30], eax
mov eax, dword [edx - 0x2c]
mov dword [ecx - 0x2c], eax
mov eax, dword [edx - 0x28]
mov dword [ecx - 0x28], eax
mov eax, dword [edx - 0x24]
mov dword [ecx - 0x24], eax
mov eax, dword [edx - 0x20]
mov dword [ecx - 0x20], eax
mov eax, dword [edx - 0x1c]
mov dword [ecx - 0x1c], eax
mov al, byte [edx - 0x18]
mov byte [ecx - 0x18], al
cmp esi, dword [ebp - 0x34]
jne 0x10072650
mov edi, dword [ebp - 0x78]
add dword [edi + 0x90], 0xffffffc8
mov eax, 0x92492493
mov ecx, dword [edi + 0x90]
sub ecx, dword [edi + 0x8c]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jae case.0x10073472.0
mov dword [edi], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [0x1010ffb0]
movss xmm0, dword [0x100f8828]
mov dword [ebp - 0x14], 0
movss dword [ebp - 0x24], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0xd0]
call eax
mov esi, eax
lea eax, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x10072728
mov ecx, dword [0x1010ffb0]
sub esi, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xd0]
call eax
mov dword [ebp - 0x34], eax
xor edx, edx
mov eax, 0x45c3370d
mov dword [ebp - 0x50], eax
test esi, esi
je 0x1007276c
mov edi, dword [ebp - 0x34]
movzx ecx, byte [edx + edi]
inc edx
xor ecx, eax
imul eax, ecx, 0x1000193
cmp edx, esi
jb 0x10072755
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x50], eax
mov esi, dword [edi + 8]
mov dword [ebp - 0x34], esi
mov esi, dword [edi + 4]
mov ecx, dword [ebp - 0x34]
cmp esi, ecx
je 0x1007283a
xor edi, edi
cmp dword [esi + 0x30], eax
jne 0x1007282b
mov ecx, dword [0x1010ffa4]
call fcn.1004ccd0
mov ecx, dword [esi + 0x38]
movss xmm2, dword [eax]
movss xmm0, dword [eax + 4]
subss xmm0, dword [ecx + 0x1c]
subss xmm2, dword [ecx + 0x18]
movss xmm1, dword [eax + 8]
subss xmm1, dword [ecx + 0x20]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.1004c960
movss xmm1, dword [ebp - 0x24]
comiss xmm1, xmm0
jbe 0x10072825
mov ecx, dword [0x1010ffa4]
call fcn.1004ccd0
mov ecx, dword [esi + 0x38]
movss xmm2, dword [eax]
movss xmm0, dword [eax + 4]
subss xmm0, dword [ecx + 0x1c]
subss xmm2, dword [ecx + 0x18]
movss xmm1, dword [eax + 8]
subss xmm1, dword [ecx + 0x20]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.1004c960
movss dword [ebp - 0x24], xmm0
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
add esi, 0x44
inc edi
cmp esi, ecx
jne 0x10072782
mov edi, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x24]
andps xmm1, xmmword [0x100f8ff0]
movss xmm0, dword [0x100f86dc]
shl ecx, 4
add ecx, dword [ebp - 0x14]
shl ecx, 2
comiss xmm0, xmm1
mov dword [ebp - 0x34], ecx
movss dword [ebp - 0x50], xmm1
jbe 0x100728af
mov esi, dword [edi + 4]
mov edx, dword [0x1010fffc]
add esi, ecx
add edx, 0xc
mov ecx, dword [esi + 0x38]
add ecx, 0x24
call fcn.10069c70
movss xmm1, dword [0x100f8698]
comiss xmm1, xmm0
jbe 0x100728b4
push esi
lea ecx, [edi + 0x54]
call fcn.100736b0
mov dword [edi], 2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov dword [ebp - 0x34], ecx
jmp 0x100728b7
mov ecx, dword [ebp - 0x34]
movss xmm0, dword [0x100f881c]
mov esi, dword [edi + 4]
minss xmm0, dword [ebp - 0x24]
mov eax, dword [0x1010fffc]
mov esi, dword [esi + ecx + 0x38]
mov ecx, dword [0x1010ffa4]
movss dword [eax + 0x24], xmm0
call fcn.1004ccd0
movss xmm0, dword [esi + 0x18]
lea edx, [ebp - 0x80]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x7c], 0
subss xmm0, dword [eax]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [esi + 0x1c]
subss xmm0, dword [eax + 4]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [esi + 0x20]
subss xmm0, dword [eax + 8]
movss dword [ebp - 0x14], xmm0
call fcn.1006a7d0
mov esi, dword [0x1010fffc]
movss xmm0, dword [esi + 0x10]
subss xmm0, dword [ebp - 0x7c]
mulss xmm0, dword [0x100f8684]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x80], xmm0
call fcn.100d7d40
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x14], xmm0
movsd xmm0, qword [ebp - 0x80]
call fcn.100d8a60
movss xmm4, dword [esi + 0x24]
xorps xmm3, xmm3
movss xmm2, dword [esi + 0x28]
movaps xmm1, xmm4
mulss xmm1, dword [ebp - 0x14]
cvtsd2ss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm2, dword [ebp - 0x14]
mulss xmm0, xmm3
mulss xmm4, xmm3
subss xmm1, xmm0
movss xmm0, dword [0x100f87d8]
comiss xmm0, dword [ebp - 0x50]
addss xmm4, xmm2
movss dword [esi + 0x24], xmm1
movss dword [esi + 0x28], xmm4
jbe case.0x10073472.0
mov ecx, dword [0x1010ffb0]
lea edx, [ebp - 0x1c]
push edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov eax, dword [ecx]
mov dword [ebp - 0x14], 0
call dword [eax + 0x48]
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax + ecx + 0x38]
lea ecx, [ebp - 0x58]
movq xmm0, qword [eax + 0x24]
mov eax, dword [eax + 0x2c]
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x50], eax
call fcn.10069d40
movss xmm0, dword [ebp - 0x1c]
lea ecx, [ebp - 0x3c]
subss xmm0, dword [ebp - 0x58]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x18]
subss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x14]
subss xmm0, dword [ebp - 0x50]
movss dword [ebp - 0x34], xmm0
call fcn.10069d40
movss xmm2, dword [0x100f878c]
lea ecx, [ebp - 0x58]
movss xmm1, dword [ebp - 0x3c]
divss xmm1, xmm2
movss xmm0, dword [ebp - 0x1c]
subss xmm0, xmm1
movss xmm1, dword [ebp - 0x38]
divss xmm1, xmm2
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x18]
subss xmm0, xmm1
movss xmm1, dword [ebp - 0x34]
divss xmm1, xmm2
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [ebp - 0x14]
subss xmm0, xmm1
movss dword [ebp - 0x50], xmm0
call fcn.10069d40
mov edx, dword [0x1010fffc]
movss xmm0, dword [ebp - 0x58]
add edx, 0xc
mov ecx, dword [0x1010ffb0]
push edx
movss dword [edx], xmm0
movss xmm0, dword [ebp - 0x54]
mov eax, dword [ecx]
movss dword [edx + 4], xmm0
movss xmm0, dword [ebp - 0x50]
movss dword [edx + 8], xmm0
call dword [eax + 0x4c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [0x10129e78]
mov eax, dword [0x10129e7c]
test ecx, ecx
jne 0x10072ad9
cmp eax, 2
je case.0x10073472.0
cmp eax, 1
je case.0x10073472.0
cmp eax, 3
ja case.default.0x10072ade
jmp dword [eax*4 + 0x100734c0]
mov al, byte [ecx + 0x10133420]
jmp 0x10072af8
mov al, byte [ecx + 0x10133320]
jmp 0x10072af8
mov al, byte [ebp - 0x41]
test al, al
je case.0x10073472.0
mov eax, dword [0x10129dd0]
mov dl, byte [0x1010ffd0]
cmp byte [eax + 0x10133420], 0
je 0x10073454
cmp byte [eax + 0x10133520], 0
jne 0x10073454
test dl, dl
jne 0x10073454
mov dword [edi], 3
mov eax, dword [edi + 0x48]
cmp eax, dword [edi + 0x4c]
je 0x10072b3e
mov dword [edi + 0x4c], eax
xorps xmm0, xmm0
mov dword [ebp - 0xb8], 0
movups xmmword [ebp - 0xc8], xmm0
mov dword [ebp - 0xb4], 0xf
movups xmmword [ebp - 0xb0], xmm0
mov byte [ebp - 0xc8], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0xf
mov byte [ebp - 0xb0], 0
movq qword [ebp - 0x98], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 4], 0
xor ecx, ecx
movq xmm0, qword [str.lINS_R_A]
mov al, byte [0x100f40f4]
movq qword [ebp - 0x19], xmm0
mov byte [ebp - 0x11], al
mov dword [ebp - 0x34], ecx
nop dword [eax]
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 0x34]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 0x34]
add al, 0x39
xor byte [ebp + ecx - 0x19], al
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 9
jl 0x10072bd0
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
lea ecx, [ebp - 0x19]
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x70], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10072c20
sub ecx, edx
lea eax, [ebp - 0x19]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.10049b80
mov byte [ebp - 4], 1
lea edx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae edx, dword [ebp - 0x70]
mov ecx, edx
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10072c50
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xb0]
call fcn.100777a0
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x10072c9e
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10072c94
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100734ba
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov ecx, dword [0x1010ffb0]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd0]
call eax
mov esi, eax
lea eax, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x10072cb3
mov ecx, dword [0x1010ffb0]
sub esi, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xd0]
call eax
xor edx, edx
mov edi, 0x45c3370d
test esi, esi
je 0x10072ce8
movzx ecx, byte [edx + eax]
inc edx
xor ecx, edi
imul edi, ecx, 0x1000193
cmp edx, esi
jb 0x10072cd7
cmp byte [0x100f410f], 0
mov eax, dword [0x10110000]
mov edx, dword [0x100f410c]
mov esi, dword [0x1010f2d8]
mov dword [ebp - 0x98], edi
mov edi, 5
movss xmm0, dword [eax + 0x20]
mov eax, dword [str.IVZ_H___]
movss dword [ebp - 0x94], xmm0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
je 0x10072e67
xor ecx, ecx
mov dword [ebp - 0x34], ecx
cmp esi, 2
jl 0x10072e33
movaps xmm2, xmmword [0x100f8cc0]
mov ecx, 0x1f
movaps xmm3, xmmword [0x100f9040]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm1, xmm3
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm4, edi
psrad xmm1, xmm4
movd xmm5, ecx
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x100f8dd0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x100f8d00]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100f8f50]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.9999999999999999]
movd xmm0, eax
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x18], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm1, xmm3
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x100f8dd0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100f8f50]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.9999999999999999]
movd xmm0, edx
pxor xmm1, xmm0
movd dword [ebp - 0x14], xmm1
jmp 0x10072e67
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 0x34]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 0x34]
add al, 0x39
xor byte [ebp + ecx - 0x18], al
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 8
jl 0x10072e33
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x70], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10072e82
sub ecx, edx
lea eax, [ebp - 0x18]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.10049b80
mov byte [ebp - 4], 2
lea edx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae edx, dword [ebp - 0x70]
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10072eb0
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0xc8]
call fcn.100777a0
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x10072efe
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10072ef4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100734ba
push ecx
push edx
call fcn.100b0b76
add esp, 8
lea eax, [ebp - 0x58]
push eax
call fcn.100bb82f
add esp, 4
lea eax, [ebp - 0x58]
push eax
call fcn.100bbb26
movups xmm0, xmmword [0x100f3de0]
mov cx, word [0x100f3df0]
add esp, 4
mov word [ebp - 0x30], cx
mov edi, eax
movups xmmword [ebp - 0x40], xmm0
test ch, ch
je 0x100730bb
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp esi, 2
jl 0x10073087
movaps xmm0, xmmword [str.9999999999999999]
mov eax, 5
movaps xmm4, xmmword [0x100f8cc0]
movaps xmm3, xmmword [0x100f9040]
movaps xmm6, xmmword [0x100f8dd0]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x20], xmm0
mov edx, dword [ebp - 0x20]
movd xmm7, eax
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100f8f50]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x40]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100f8f50]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x3c]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x3c], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x10072f80
mov dword [ebp - 0x24], ecx
cmp ecx, 0x12
jge 0x100730bb
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 0x24]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 0x24]
add al, 0x39
xor byte [ebp + ecx - 0x40], al
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x12
jl 0x10073087
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x70], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100730d6
sub ecx, edx
lea eax, [ebp - 0x40]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.10049b80
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
push edi
cmovae eax, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x150]
push 0x50
push eax
call fcn.100bafb3
mov ecx, dword [ebp - 0x5c]
add esp, 0x10
cmp ecx, 0x10
jb 0x1007313e
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10073134
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100734b5
push ecx
push edx
call fcn.100b0b76
add esp, 8
lea edi, [ebp - 0x150]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
lea ecx, [edi + 1]
mov byte [ebp - 0x70], 0
nop dword [eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x10073160
mov edx, dword [ebp - 0xb4]
sub edi, ecx
mov ecx, dword [ebp - 0xb8]
mov eax, edx
sub eax, ecx
push edi
cmp edi, eax
ja 0x100731af
lea eax, [edi + ecx]
cmp edx, 0x10
mov dword [ebp - 0xb8], eax
lea esi, [ebp - 0xc8]
cmovae esi, dword [ebp - 0xc8]
lea eax, [ebp - 0x150]
add esi, ecx
push eax
push esi
call fcn.100b3840
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100731c9
lea eax, [ebp - 0x150]
mov byte [ebp - 0x14], 0
push eax
push dword [ebp - 0x14]
lea ecx, [ebp - 0xc8]
push edi
call fcn.100540a0
mov eax, dword [0x1010fffc]
xorps xmm0, xmm0
mov ecx, dword [0x1010ffa4]
movq qword [ebp - 0xd0], xmm0
movss xmm0, dword [eax + 0x24]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [eax + 0x28]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [eax + 0x2c]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [eax + 0xc]
movss dword [ebp - 0xdc], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0xd8], xmm0
movss xmm0, dword [eax + 0x14]
mov eax, dword [eax + 0x30]
movss dword [ebp - 0xd4], xmm0
mov dword [ebp - 0xd0], eax
call fcn.1004ccd0
movss xmm0, dword [eax]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [eax + 8]
movss dword [ebp - 0xe0], xmm0
call fcn.1004d000
movss xmm0, dword [eax]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [eax + 8]
movss dword [ebp - 0xec], xmm0
call fcn.1004d190
mov ecx, dword [0x1010ffdc]
push ecx
mov eax, dword [eax]
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
mov eax, dword [ebp - 0x8c]
setne byte [ebp - 0xcc]
cmp eax, dword [ebp - 0x88]
je 0x100732f2
movups xmm0, xmmword [ebp - 0x100]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xf0]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xe0]
movups xmmword [eax + 0x20], xmm0
movq xmm0, qword [ebp - 0xd0]
movq qword [eax + 0x30], xmm0
add dword [ebp - 0x8c], 0x38
jmp 0x10073305
lea ecx, [ebp - 0x100]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.10079b50
mov esi, dword [ebp - 0x78]
lea eax, [ebp - 0xc8]
add esi, 0x10
cmp esi, eax
je 0x10073331
cmp dword [ebp - 0xb4], 0x10
mov ecx, esi
push dword [ebp - 0xb8]
cmovae eax, dword [ebp - 0xc8]
push eax
call fcn.100777a0
lea ecx, [esi + 0x18]
lea eax, [ebp - 0xb0]
cmp ecx, eax
je 0x10073358
cmp dword [ebp - 0x9c], 0x10
push dword [ebp - 0xa0]
cmovae eax, dword [ebp - 0xb0]
push eax
call fcn.100777a0
movss xmm0, dword [ebp - 0x94]
lea ecx, [esi + 0x38]
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
mov dword [esi + 0x30], eax
movss dword [esi + 0x34], xmm0
cmp ecx, edx
je 0x100733a3
mov esi, dword [ebp - 0x8c]
mov eax, 0x92492493
mov edi, dword [ebp - 0x90]
sub esi, edi
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push edi
call fcn.10078e20
lea ecx, [ebp - 0x90]
call fcn.10077240
mov ecx, dword [ebp - 0x9c]
cmp ecx, 0x10
jb 0x100733e8
mov edx, dword [ebp - 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100733de
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100734ba
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0xf
mov byte [ebp - 0xb0], 0
cmp ecx, 0x10
jb case.0x10073472.0
mov edx, dword [ebp - 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10073437
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100734ba
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [0x10129dd8]
mov eax, dword [0x10129ddc]
test ecx, ecx
jne 0x1007346d
cmp eax, 2
je case.0x10073472.0
cmp eax, 1
je case.0x10073472.0
cmp eax, 3
ja case.default.0x10073472
jmp dword [eax*4 + 0x100734d0]
mov al, byte [ecx + 0x10133420]
jmp 0x1007348c
mov al, byte [ecx + 0x10133320]
jmp 0x1007348c
mov al, byte [ebp - 0x41]
test al, al
je case.0x10073472.0
test dl, dl
jne case.0x10073472.0
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
je case.0x10073472.0
mov dword [edi], 1
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100b7b82
call fcn.100b7b82
nop
mov byte [0xe5100734], al
sub al, byte [edi]
adc ch, ch
sub al, byte [edi]
adc byte [eax], al
sub eax, dword [edi]
adc byte [edx + 0x79100734], ah
xor al, 7
adc byte [ecx - 0x6feff8cc], al
xor al, 7
adc byte [ebp - 0x75], dl
push ebp
mov ebp, esp