Function at 0x1016638c
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x103216ed
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x30
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x30], edi
cmp edx, 0xd
ja case.0x101661b9.2
movzx eax, byte [edx + 0x10166b10]
jmp dword [eax*4 + 0x10166afc]
cmp byte [0x104b1120], 0
jne 0x1016635a
mov edi, dword [0x104b112c]
mov edx, edi
mov eax, dword [0x104b1128]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x104b1120], 1
mov dword [ebp - 0x30], eax
mov ecx, edx
shld ecx, eax, 0xd
mov esi, dword [ebp - 0x30]
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1121]
xor al, cl
mov ecx, edx
mov byte [0x104b1121], al
mov eax, dword [0x104b1128]
xor eax, 0x1de26cd4
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1122]
xor al, cl
mov ecx, edx
mov byte [0x104b1122], al
mov eax, dword [0x104b1128]
xor eax, 0x1de26cd7
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor al, byte [0x104b1123]
xor al, cl
mov byte [0x104b1123], al
mov eax, dword [0x104b1128]
xor eax, 0x1de26cd6
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
xor edx, 0xd28f2c5
mov ecx, edx
xor edi, 0xd28f2c5
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104b1128]
shl eax, 0x11
xor edx, 0x1de26cd1
xor al, byte [0x104b1124]
xor al, cl
mov ecx, edi
mov byte [0x104b1124], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor edx, eax
mov ecx, edi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor edi, ecx
mov eax, edx
shld edi, eax, 0x11
mov edi, dword [ebp - 0x3c]
shl eax, 0x11
xor al, dl
xor byte [0x104b1125], al
push ecx
push 0x104b1125
push 0x104b1121
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae ecx, dword [ebp - 0x2c]
push ecx
mov ecx, edi
call fcn.10019eb0
jmp 0x10166ad3
cmp byte [0x104b13a0], 0
jne 0x101663ff
mov byte [0x104b13a0], 1
xor eax, eax
nop
xor esi, esi
mov ecx, eax
xor ecx, dword [0x104b13b0]
xor esi, dword [0x104b13b4]
xor ecx, 0x1de26cd5
xor esi, 0xd28f2c5
mov dword [ebp - 0x30], ecx
mov edx, esi
shld edx, ecx, 0xd
xor esi, edx
shl ecx, 0xd
xor dword [ebp - 0x30], ecx
mov edx, esi
mov ecx, dword [ebp - 0x30]
shrd ecx, edx, 7
xor dword [ebp - 0x30], ecx
mov cl, byte [eax + 0x104b13a1]
shr edx, 7
xor esi, edx
mov edx, dword [ebp - 0x30]
shld esi, edx, 0x11
shl edx, 0x11
xor dl, byte [ebp - 0x30]
xor dl, cl
mov byte [eax + 0x104b13a1], dl
inc eax
cmp eax, 0xd
jb 0x101663a0
push ecx
push 0x104b13ad
push 0x104b13a1
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 1
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
mov ecx, edi
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.10019eb0
jmp 0x10166ad3
cmp byte [0x104b1400], 0
jne 0x10166756
mov edi, dword [0x104b1414]
mov edx, edi
mov eax, dword [0x104b1410]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x104b1400], 1
mov dword [ebp - 0x30], eax
mov ecx, edx
shld ecx, eax, 0xd
mov esi, dword [ebp - 0x30]
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1401]
xor al, cl
mov ecx, edx
mov byte [0x104b1401], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd4
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1402]
xor al, cl
mov ecx, edx
mov byte [0x104b1402], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd7
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor al, byte [0x104b1403]
xor al, cl
mov byte [0x104b1403], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd6
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1404]
xor al, cl
mov ecx, edx
mov byte [0x104b1404], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd1
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1405]
xor al, cl
mov ecx, edx
mov byte [0x104b1405], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd0
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1406]
xor al, cl
mov ecx, edx
mov byte [0x104b1406], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd3
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, eax
xor edx, ecx
mov eax, esi
mov ecx, edx
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1407]
xor al, cl
mov ecx, edx
mov byte [0x104b1407], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cd2
mov dword [ebp - 0x30], eax
shld ecx, eax, 0xd
mov esi, dword [ebp - 0x30]
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
xor edi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1408]
xor al, cl
mov ecx, edx
mov byte [0x104b1408], al
mov eax, dword [0x104b1410]
xor eax, 0x1de26cdd
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104b1410]
shl eax, 0x11
xor edx, 0x1de26cdc
xor al, byte [0x104b1409]
xor al, cl
mov ecx, edi
mov byte [0x104b1409], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor edx, eax
mov ecx, edi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor edi, ecx
mov eax, edx
shld edi, eax, 0x11
mov edi, dword [ebp - 0x3c]
shl eax, 0x11
xor al, dl
xor byte [0x104b140a], al
push ecx
push 0x104b140a
push 0x104b1401
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 2
jmp 0x10166419
cmp byte [0x104b1100], 0
jne 0x10166a01
mov edi, dword [0x104b1114]
mov edx, edi
mov eax, dword [0x104b1110]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x104b1100], 1
mov dword [ebp - 0x30], eax
mov ecx, edx
shld ecx, eax, 0xd
mov esi, dword [ebp - 0x30]
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1101]
xor al, cl
mov ecx, edx
mov byte [0x104b1101], al
mov eax, dword [0x104b1110]
xor eax, 0x1de26cd4
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1102]
xor al, cl
mov ecx, edx
mov byte [0x104b1102], al
mov eax, dword [0x104b1110]
xor eax, 0x1de26cd7
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor al, byte [0x104b1103]
xor al, cl
mov byte [0x104b1103], al
mov eax, dword [0x104b1110]
xor eax, 0x1de26cd6
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1104]
xor al, cl
mov ecx, edx
mov byte [0x104b1104], al
mov eax, dword [0x104b1110]
xor eax, 0x1de26cd1
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1105]
xor al, cl
mov ecx, edx
mov byte [0x104b1105], al
mov eax, dword [0x104b1110]
xor eax, 0x1de26cd0
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1106]
xor al, cl
mov ecx, edx
mov byte [0x104b1106], al
mov eax, dword [0x104b1110]
xor eax, 0x1de26cd3
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x30]
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, eax
xor edx, ecx
mov eax, esi
mov ecx, edx
xor edi, 0xd28f2c5
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x30], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104b1110]
shl eax, 0x11
xor edx, 0x1de26cd2
xor al, byte [0x104b1107]
xor al, cl
mov ecx, edi
mov byte [0x104b1107], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor edx, eax
mov ecx, edi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor edi, ecx
mov eax, edx
shld edi, eax, 0x11
mov edi, dword [ebp - 0x3c]
shl eax, 0x11
xor al, byte [0x104b1108]
xor al, dl
mov byte [0x104b1108], al
push ecx
push 0x104b1108
push 0x104b1101
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 3
jmp 0x10166419
cmp byte [0x104b1200], 0
jne 0x10166a83
mov edx, dword [0x104b120c]
mov eax, dword [0x104b1208]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x104b1200], 1
mov dword [ebp - 0x3c], eax
mov ecx, edx
mov esi, dword [ebp - 0x3c]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x3c], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
shl eax, 0x11
xor al, byte [0x104b1201]
xor al, cl
mov byte [0x104b1201], al
push ecx
push 0x104b1201
push 0x104b1201
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 4
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
xorps xmm0, xmm0
movups xmmword [edi], xmm0
cmovae edx, dword [ebp - 0x2c]
mov ecx, edx
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10166ac1
sub ecx, esi
push ecx
push edx
mov ecx, edi
call fcn.1001a920
lea ecx, [ebp - 0x2c]
call fcn.10019dd0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret