Function at 0x100d2c40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [0x104e2068]
mov ebp, ecx
mov dword [esp + 0x14], edx
xor edx, edx
movss dword [esp + 0x1c], xmm0
mov dword [esp + 0x18], ebp
mov eax, dword [edi + 0x1bec]
mov esi, dword [eax + 0xe0]
mov eax, dword [eax + 0xe8]
push dword [eax + esi*4 - 4]
call fcn.10152b90
mov ebx, eax
cmp dword [edi + 0x1c24], ebx
jne 0x100d2c8a
mov dword [edi + 0x1c28], ebx
cmp dword [edi + 0x1c5c], ebx
jne 0x100d2c99
mov byte [edi + 0x1c60], 1
mov esi, dword [edi + 0x1bec]
xor edx, edx
add esi, 0xe0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
push dword [eax + ecx*4 - 4]
mov ecx, ebp
call fcn.10152b90
mov ebp, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x10], eax
cmp ecx, ebp
jne 0x100d2cec
inc ecx
test ebp, ebp
je 0x100d2cd4
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ebp
jmp 0x100d2cd9
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100be400
mov edi, dword [0x104e2068]
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4], edx
inc dword [esi]
mov eax, dword [edi + 0x1bec]
mov byte [eax + 0xa8], 1
mov eax, dword [edi + 0x1bec]
cmp byte [eax + 0xab], 0
jne 0x100d2d56
movss xmm1, dword [edi + 0x159c]
movss xmm0, dword [eax + 0x118]
addss xmm1, xmm1
addss xmm1, dword [edi + 0x1988]
maxss xmm0, xmm1
movss dword [eax + 0x118], xmm0
movss xmm0, dword [eax + 0x124]
maxss xmm0, dword [edi + 0x159c]
movss dword [eax + 0x124], xmm0
mov ecx, dword [esp + 0x18]
xor edx, edx
push 1
call fcn.1016d430
movss xmm1, dword [0x101ff52c]
movss xmm0, dword [esp + 0x1c]
call fcn.1015ee50
mov eax, dword [0x104e2068]
cmp dword [eax + 0x1c24], ebx
jne 0x100d2efe
movss xmm0, dword [0x101ff140]
mov ecx, 0x18
call fcn.10153a90
mov edx, eax
mov ecx, 0x16
call fcn.10153b70
cmp byte [str.7rZYCKM_K], 0
mov eax, dword [0x101f5764]
mov dword [esp + 0x10], eax
je 0x100d2e8a
xor ebx, ebx
cmp dword [0x102296a0], 2
jl 0x100d2e60
movaps xmm3, xmmword [0x101ff6c0]
mov ecx, 5
movaps xmm2, xmm3
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x101ffc10]
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x101ffc10]
shufps xmm2, xmm0, 0xdd
movd xmm0, ecx
paddd xmm2, xmm3
psrad xmm2, xmm0
mov ecx, 0x1f
movaps xmm1, xmm2
movd xmm0, ecx
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x101ff730]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [0x101ff810]
movd xmm0, eax
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
jmp 0x100d2e8a
mov eax, 0xa0a0a0a1
mov cl, bl
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
sub cl, al
add cl, 0x34
xor byte [esp + ebx + 0x10], cl
inc ebx
cmp ebx, 4
jl 0x100d2e60
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x10]
push 1
push 0
call fcn.1016e290
mov esi, dword [0x104e2068]
mov eax, dword [esi + 0x1ce8]
mov ecx, dword [esi + 0x1cf0]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
xor ecx, ecx
movups xmmword [esi + eax*8 + 0x1624], xmm0
dec dword [esi + 0x1ce8]
mov byte [esi + 0x1c32], 1
call fcn.10155740
test al, al
jne 0x100d2ee3
cmp byte [esi + 0x420], cl
jne 0x100d2ef0
mov ecx, dword [esp + 0x14]
call fcn.100caeb0
test al, al
je 0x100d2f51
call fcn.101556b0
mov byte [0x104e1ef8], 1
jmp 0x100d2f51
mov eax, dword [esp + 0x14]
mov ecx, 0x42
mov edx, dword [esp + 0x24]
push 1
push 0
cmp dword [eax + 0x1c], 0x67
cmovb ecx, dword [eax + 0x1c]
lea eax, [ecx + ecx*2]
mov ecx, dword [eax*4 + 0x101f2f38]
call fcn.1016e290
mov esi, dword [0x104e2068]
test al, al
je 0x100d2f51
mov byte [0x104e1ef8], 1
mov ecx, ebx
mov eax, dword [esi + 0x1bec]
mov byte [eax + 0xa8], 1
mov edx, dword [esi + 0x1bec]
call fcn.101555e0
mov eax, dword [esi + 0x1bec]
pop edi
pop esi
pop ebp
dec dword [eax + 0xe0]
pop ebx
add esp, 0x10
ret 4