Function at 0x10166b20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10321799
mov eax, dword fs:[0]
push eax
sub esp, 0xd4
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x1060f4f9], 0
je 0x1016722f
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0xd8]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 0xc]
push 2
mov dword [ebp - 0xd4], eax
call fcn.1015f5c0
mov ecx, dword [0x1060b274]
push eax
mov edx, dword [ecx]
call dword [edx + 0xc]
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x1016722f
mov edx, dword [eax + 8]
lea ecx, [eax + 8]
call dword [edx + 8]
mov ecx, dword [eax + 0x14]
mov eax, dword [0x1060b30c]
cmp ecx, dword [eax + 0x9c]
jne 0x1016722f
push 3
lea ecx, [ebp - 0xd8]
call fcn.1015f5c0
mov edx, eax
lea ecx, [ebp - 0xd0]
call fcn.10166160
mov dword [ebp - 0xd4], eax
mov dword [ebp - 4], 0
cmp byte [0x104b11f0], 0
jne 0x10166d8e
mov edi, dword [0x104b11f8]
mov ebx, edi
mov esi, dword [0x104b11fc]
xor ebx, 0x1de26cd5
mov eax, ebx
mov byte [0x104b11f0], 1
mov edx, esi
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11f1]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11f1], al
xor ebx, 0x1de26cd4
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11f2]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11f2], al
xor ebx, 0x1de26cd7
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11f3]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11f3], al
xor ebx, 0x1de26cd6
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor ebx, eax
xor edx, ecx
mov eax, ebx
mov ecx, edx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
xor esi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11f4]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11f4], al
xor ebx, 0x1de26cd1
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, edi
mov ecx, esi
shl eax, 0x11
xor edx, 0x1de26cd0
xor al, byte [0x104b11f5]
xor al, bl
mov byte [0x104b11f5], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, ecx
xor edx, eax
mov ecx, esi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor esi, ecx
mov eax, edx
shld esi, eax, 0x11
shl eax, 0x11
xor al, byte [0x104b11f6]
xor al, dl
mov byte [0x104b11f6], al
push ecx
push 0x104b11f6
push 0x104b11f1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 1
lea edi, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
push eax
cmovae edi, dword [ebp - 0x28]
call fcn.100ca9f0
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 2
cmp byte [0x104b1360], 0
jne 0x10166e37
mov byte [0x104b1360], 1
xor esi, esi
nop
xor edx, edx
mov ebx, esi
xor edx, dword [0x104b137c]
xor ebx, dword [0x104b1378]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x104b1361]
xor cl, bl
mov byte [esi + 0x104b1361], cl
inc esi
cmp esi, 0x10
jb 0x10166de0
push ecx
push 0x104b1370
push 0x104b1361
lea ecx, [ebp - 0x40]
call fcn.1001a620
push dword [ebp - 0xdc]
mov byte [ebp - 4], 3
lea edx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0xa0]
cmovae edx, dword [ebp - 0x40]
call fcn.1006cf00
add esp, 4
push edi
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x88]
call fcn.1006d370
add esp, 4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x58]
push dword [ebp - 0xd4]
push eax
push dword [ebp - 0xd4]
call fcn.10030580
lea ecx, [ebp - 0x88]
call fcn.10019dd0
lea ecx, [ebp - 0xa0]
call fcn.10019dd0
lea ecx, [ebp - 0x40]
call fcn.10019dd0
lea ecx, [ebp - 0xb8]
call fcn.10019dd0
lea ecx, [ebp - 0x28]
call fcn.10019dd0
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0xc
call fcn.10019dd0
mov esi, dword [0x1060f4fa]
lea eax, [ebp - 0x58]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.1002c0b0
push esi
call fcn.100557a0
add esp, 0x1c
cmp byte [0x1060f4fe], 0
je 0x10167227
cmp dword [0x1060f500], 0
mov eax, dword [0x1060b288]
mov eax, dword [eax]
je 0x10167147
cmp byte [0x104b11c0], 0
mov ebx, dword [eax + 0x1c8]
mov dword [ebp - 0xd4], ebx
jne 0x101670e1
mov edi, dword [0x104b11c8]
mov ebx, edi
mov esi, dword [0x104b11cc]
xor ebx, 0x1de26cd5
mov eax, ebx
mov byte [0x104b11c0], 1
mov edx, esi
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11c1]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11c1], al
xor ebx, 0x1de26cd4
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11c2]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11c2], al
xor ebx, 0x1de26cd7
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11c3]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11c3], al
xor ebx, 0x1de26cd6
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor ebx, eax
xor edx, ecx
mov eax, ebx
mov ecx, edx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
xor esi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b11c4]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b11c4], al
xor ebx, 0x1de26cd1
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, edi
mov ecx, esi
shl eax, 0x11
xor edx, 0x1de26cd0
xor al, byte [0x104b11c5]
xor al, bl
mov ebx, dword [ebp - 0xd4]
mov byte [0x104b11c5], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, ecx
xor edx, eax
mov ecx, esi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor esi, ecx
mov eax, edx
shld esi, eax, 0x11
shl eax, 0x11
xor al, byte [0x104b11c6]
xor al, dl
mov byte [0x104b11c6], al
push ecx
push 0x104b11c6
push 0x104b11c1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
push eax
cmovae edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x70]
call fcn.1006cf70
mov edx, eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.1006d3e0
add esp, 4
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x14], 0x10
jb 0x1016712c
mov eax, dword [eax]
mov ecx, dword [0x1060b288]
push 0
push eax
call ebx
lea ecx, [ebp - 0x40]
call fcn.10019dd0
lea ecx, [ebp - 0x70]
jmp 0x1016721a
cmp byte [0x104b1280], 0
mov edi, dword [eax + 0x1c8]
jne 0x101671b9
mov byte [0x104b1280], 1
xor eax, eax
nop
xor esi, esi
mov ebx, eax
xor esi, dword [0x104b1294]
xor ebx, dword [0x104b1290]
xor esi, 0xd28f2c5
xor ebx, 0x1de26cd5
mov edx, esi
mov ecx, ebx
shld edx, ecx, 0xd
xor esi, edx
shl ecx, 0xd
xor ebx, ecx
mov edx, esi
mov ecx, ebx
shrd ecx, edx, 7
shr edx, 7
xor ebx, ecx
mov cl, byte [eax + 0x104b1281]
xor esi, edx
mov edx, ebx
shld esi, edx, 0x11
shl edx, 0x11
xor dl, cl
xor dl, bl
mov byte [eax + 0x104b1281], dl
inc eax
cmp eax, 0xb
jb 0x10167160
push ecx
push 0x104b128b
push 0x104b1281
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
push eax
cmovae edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x40]
call fcn.1006cf70
mov edx, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x70]
call fcn.1006d3e0
add esp, 4
mov byte [ebp - 4], 0x12
cmp dword [eax + 0x14], 0x10
jb 0x10167204
mov eax, dword [eax]
mov ecx, dword [0x1060b288]
push 0
push eax
call edi
lea ecx, [ebp - 0x70]
call fcn.10019dd0
lea ecx, [ebp - 0x40]
call fcn.10019dd0
lea ecx, [ebp - 0x28]
call fcn.10019dd0
lea ecx, [ebp - 0x58]
call fcn.10019dd0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
ret 8