Function at 0x100d4db0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [0x10453c48]
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.10155bc0
mov ebx, eax
cmp dword [edi + 0x1c24], ebx
jne 0x100d4dfa
mov dword [edi + 0x1c28], ebx
cmp dword [edi + 0x1c5c], ebx
jne 0x100d4e09
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.10155bc0
mov ebp, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x10], eax
cmp ecx, ebp
jne 0x100d4e5c
inc ecx
test ebp, ebp
je 0x100d4e44
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ebp
jmp 0x100d4e49
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100c0490
mov edi, dword [0x10453c48]
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 0x100d4ec6
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.10170460
movss xmm1, dword [0x1020244c]
movss xmm0, dword [esp + 0x1c]
call fcn.10161e80
mov eax, dword [0x10453c48]
cmp dword [eax + 0x1c24], ebx
jne 0x100d506e
movss xmm0, dword [0x10202060]
mov ecx, 0x18
call fcn.10156ac0
mov edx, eax
mov ecx, 0x16
call fcn.10156ba0
cmp byte [str.5sF_Z], 0
mov eax, dword [0x101f7aac]
mov dword [esp + 0x10], eax
je 0x100d4ffa
xor ebx, ebx
cmp dword [0x1022b6e0], 2
jl 0x100d4fd0
movaps xmm3, xmmword [0x102025e0]
mov ecx, 5
movaps xmm2, xmm3
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x10202b30]
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x10202b30]
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 [0x10202680]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.2222222222222222777777777777777788888888888888889999999999999999]
movd xmm0, eax
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
jmp 0x100d4ffa
mov eax, 0x8fb823ef
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, 0x39
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x10], cl
inc ebx
cmp ebx, 4
jl 0x100d4fd0
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x10]
push 1
push 0
call fcn.101712c0
mov esi, dword [0x10453c48]
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.10158770
test al, al
jne 0x100d5053
cmp byte [esi + 0x420], cl
jne 0x100d5060
mov ecx, dword [esp + 0x14]
call fcn.100ccf60
test al, al
je 0x100d50c1
call fcn.101586e0
mov byte [0x10453ad0], 1
jmp 0x100d50c1
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 + 0x101f5f90]
call fcn.101712c0
mov esi, dword [0x10453c48]
test al, al
je 0x100d50c1
mov byte [0x10453ad0], 1
mov ecx, ebx
mov eax, dword [esi + 0x1bec]
mov byte [eax + 0xa8], 1
mov edx, dword [esi + 0x1bec]
call fcn.10158610
mov eax, dword [esi + 0x1bec]
pop edi
pop esi
pop ebp
dec dword [eax + 0xe0]
pop ebx
add esp, 0x10
ret 4