Function at 0x100c14e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5dc
mov eax, dword [0x10160380]
xor eax, esp
mov dword [esp + 0x5d8], eax
push ebx
mov ebx, ecx
mov ecx, 0x101a157a
push esi
push edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call fcn.10137ff6
mov eax, dword fs:[0x2c]
mov edx, dword [0x1018ff40]
mov edx, dword [eax + edx*4]
mov eax, dword [0x1019a564]
cmp eax, dword [edx + 4]
jle 0x100c235a
push 0x1019a564
call fcn.100dfc27
add esp, 4
cmp dword [0x1019a564], 0xffffffff
jne 0x100c235a
lea eax, [esp + 0x5b4]
mov ecx, 0x1018cb98
push eax
call fcn.1005d210
cmp dword [esp + 0x5c8], 0xf
lea eax, [esp + 0x59c]
lea esi, [esp + 0x5b4]
mov ecx, 0x1018c1b8
cmova esi, dword [esp + 0x5b4]
push eax
call fcn.1004c700
cmp dword [esp + 0x5b0], 0xf
lea eax, [esp + 0x59c]
mov ecx, 0x1018c7b0
mov dword [esp + 0x38], 0x2a
cmova eax, dword [esp + 0x59c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x584]
push eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], 2
call fcn.1005c960
cmp dword [esp + 0x598], 0xf
lea eax, [esp + 0x56c]
lea esi, [esp + 0x584]
mov ecx, 0x1018c1a0
cmova esi, dword [esp + 0x584]
push eax
call fcn.1004b300
cmp dword [esp + 0x580], 0xf
lea eax, [esp + 0x56c]
mov ecx, 0x1018cf00
mov dword [esp + 0x48], 0x3b
cmova eax, dword [esp + 0x56c]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x554]
push eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], 0xc
call fcn.1005db30
cmp dword [esp + 0x568], 0xf
lea eax, [esp + 0x5cc]
lea esi, [esp + 0x554]
mov ecx, 0x1018cc70
cmova esi, dword [esp + 0x554]
push eax
call fcn.1004b300
cmp dword [esp + 0x5e0], 0xf
lea eax, [esp + 0x5cc]
mov ecx, 0x1018c538
mov dword [esp + 0x58], 0x1f4
cmova eax, dword [esp + 0x5cc]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x524]
push eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x68], 0
call fcn.1004afd0
cmp dword [esp + 0x538], 0xf
lea eax, [esp + 0x50c]
lea esi, [esp + 0x524]
mov ecx, 0x1018c458
cmova esi, dword [esp + 0x524]
push eax
call fcn.1004c390
cmp dword [esp + 0x520], 0xf
lea eax, [esp + 0x50c]
mov ecx, 0x1018cd08
mov dword [esp + 0x68], 0x1f9
cmova eax, dword [esp + 0x50c]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x4f4]
push eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x78], 4
call fcn.1005d630
cmp dword [esp + 0x508], 0xf
lea esi, [esp + 0x4f4]
lea eax, [esp + 0x4dc]
cmova esi, dword [esp + 0x4f4]
push eax
mov ecx, 0x1018c780
call fcn.1004b650
cmp dword [esp + 0x4f0], 0xf
lea eax, [esp + 0x4dc]
mov ecx, 0x1018c328
mov dword [esp + 0x78], 0x1fa
cmova eax, dword [esp + 0x4dc]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x4c4]
push eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], 5
call fcn.1005c5e0
cmp dword [esp + 0x4d8], 0xf
lea eax, [esp + 0x53c]
lea esi, [esp + 0x4c4]
mov ecx, 0x1018cc50
cmova esi, dword [esp + 0x4c4]
push eax
call fcn.1004c470
cmp dword [esp + 0x550], 0xf
lea eax, [esp + 0x53c]
mov ecx, 0x1018cf90
mov dword [esp + 0x88], 0x1fb
cmova eax, dword [esp + 0x53c]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x494]
push eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x98], 7
call fcn.1005c7a0
cmp dword [esp + 0x4a8], 0xf
lea eax, [esp + 0x47c]
lea esi, [esp + 0x494]
mov ecx, 0x1018cd38
cmova esi, dword [esp + 0x494]
push eax
call fcn.1004c700
cmp dword [esp + 0x490], 0xf
lea eax, [esp + 0x47c]
mov ecx, 0x1018c9d0
mov dword [esp + 0x98], 0x1fc
cmova eax, dword [esp + 0x47c]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x464]
push eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa8], 8
call fcn.1004c470
cmp dword [esp + 0x478], 0xf
lea eax, [esp + 0x44c]
lea esi, [esp + 0x464]
mov ecx, 0x1018cf30
cmova esi, dword [esp + 0x464]
push eax
call fcn.1005be20
cmp dword [esp + 0x460], 0xf
lea eax, [esp + 0x44c]
mov ecx, 0x1018c1d8
mov dword [esp + 0xa8], 0x1fd
cmova eax, dword [esp + 0x44c]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x434]
push eax
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], 0xffffffff
call fcn.1005cf80
cmp dword [esp + 0x448], 0xf
lea eax, [esp + 0x41c]
lea esi, [esp + 0x434]
mov ecx, 0x1018d028
cmova esi, dword [esp + 0x434]
push eax
call fcn.1004c470
cmp dword [esp + 0x430], 0xf
lea eax, [esp + 0x41c]
mov dword [esp + 0xb8], 0x200
cmova eax, dword [esp + 0x41c]
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 3
lea eax, [esp + 0x404]
mov ecx, 0x1018ca68
push eax
call fcn.1005d980
cmp dword [esp + 0x418], 0xf
lea eax, [esp + 0x3ec]
lea esi, [esp + 0x404]
mov ecx, 0x1018c308
cmova esi, dword [esp + 0x404]
push eax
call fcn.1004c120
cmp dword [esp + 0x400], 0xf
lea eax, [esp + 0x3ec]
mov ecx, 0x1018c428
mov dword [esp + 0xc8], 0x202
cmova eax, dword [esp + 0x3ec]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0x3d4]
push eax
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd8], 0xb
call fcn.1005c960
cmp dword [esp + 0x3e8], 0xf
lea eax, [esp + 0x3bc]
lea esi, [esp + 0x3d4]
mov ecx, 0x1018c8b0
cmova esi, dword [esp + 0x3d4]
push eax
call fcn.1004c2c0
cmp dword [esp + 0x3d0], 0xf
lea eax, [esp + 0x3bc]
mov ecx, 0x1018d048
mov dword [esp + 0xd8], 0x203
cmova eax, dword [esp + 0x3bc]
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x3a4]
push eax
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe8], 1
call fcn.1004afd0
cmp dword [esp + 0x3b8], 0xf
lea eax, [esp + 0x38c]
lea esi, [esp + 0x3a4]
mov ecx, 0x1018cf60
cmova esi, dword [esp + 0x3a4]
push eax
call fcn.1004c390
cmp dword [esp + 0x3a0], 0xf
lea eax, [esp + 0x38c]
mov ecx, 0x1018cad0
mov dword [esp + 0xe8], 0x204
cmova eax, dword [esp + 0x38c]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x374]
push eax
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf8], 9
call fcn.1005d3b0
cmp dword [esp + 0x388], 0xf
lea eax, [esp + 0x374]
mov dword [esp + 0xf8], 0x13a3
cmova eax, dword [esp + 0x374]
cmp byte [0x1018cc88], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0xffffffff
je 0x100c1b55
cmp byte [0x1018cc89], 0
jne 0x100c1ba3
mov byte [0x1018cc89], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1018ccd4]
xor ebx, dword [0x1018ccd0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov dword [esp + 0x14], edx
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1018cc8a], al
inc esi
cmp esi, 0x45
jb 0x100c1b10
jmp 0x100c1ba3
xor eax, eax
nop word [eax + eax]
xor esi, esi
mov ebx, eax
xor esi, dword [0x1018ccd4]
xor ebx, dword [0x1018ccd0]
xor esi, 0xd28f2c5
xor ebx, 0x1de26cd5
mov edx, esi
mov ecx, ebx
shld edx, ecx, 0xd
shl ecx, 0xd
xor esi, edx
xor ebx, ecx
mov dword [esp + 0x14], esi
mov ecx, ebx
shrd ecx, esi, 7
xor cl, bl
xor byte [eax + 0x1018cc8a], cl
inc eax
cmp eax, 0x45
jb 0x100c1b60
push ecx
push 0x1018ccce
push 0x1018cc8a
lea ecx, [esp + 0x368]
call fcn.1004c7e0
cmp dword [esp + 0x370], 0xf
lea eax, [esp + 0x35c]
mov ecx, 0x1018c8d0
mov dword [esp + 0x108], 0x13a4
cmova eax, dword [esp + 0x35c]
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x344]
push eax
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0xffffffff
call fcn.1005da60
cmp dword [esp + 0x358], 0xf
lea eax, [esp + 0x344]
mov ecx, 0x1018c358
mov dword [esp + 0x118], 0x13a5
cmova eax, dword [esp + 0x344]
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x32c]
push eax
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0xffffffff
call fcn.1005cce0
cmp dword [esp + 0x340], 0xf
lea eax, [esp + 0x32c]
mov ecx, 0x1018c5a0
mov dword [esp + 0x128], 0x13a6
cmova eax, dword [esp + 0x32c]
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x314]
push eax
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0xffffffff
call fcn.1005cdc0
cmp dword [esp + 0x328], 0xf
lea eax, [esp + 0x314]
mov ecx, 0x1018ca20
mov dword [esp + 0x138], 0x13a7
cmova eax, dword [esp + 0x314]
mov dword [esp + 0x13c], eax
lea eax, [esp + 0x2fc]
push eax
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0xffffffff
call fcn.1005ca40
cmp dword [esp + 0x310], 0xf
lea eax, [esp + 0x2fc]
mov ecx, 0x1018cc10
mov dword [esp + 0x148], 0x13a8
cmova eax, dword [esp + 0x2fc]
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x2e4]
push eax
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0xffffffff
call fcn.1005d3b0
cmp dword [esp + 0x2f8], 0xf
lea eax, [esp + 0x2e4]
mov ecx, 0x1018c3c8
mov dword [esp + 0x158], 0x13a9
cmova eax, dword [esp + 0x2e4]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x2cc]
push eax
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0xffffffff
call fcn.1005d3b0
cmp dword [esp + 0x2e0], 0xf
lea eax, [esp + 0x2cc]
mov dword [esp + 0x168], 0x13aa
mov ecx, 0x1018cbc8
cmova eax, dword [esp + 0x2cc]
mov dword [esp + 0x16c], eax
lea eax, [esp + 0x2b4]
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0xffffffff
push eax
call fcn.1005bf00
cmp dword [esp + 0x2c8], 0xf
lea eax, [esp + 0x2b4]
mov ecx, 0x1018cff8
mov dword [esp + 0x178], 0x13ab
cmova eax, dword [esp + 0x2b4]
mov dword [esp + 0x17c], eax
lea eax, [esp + 0x29c]
push eax
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0xffffffff
call fcn.1005db30
cmp dword [esp + 0x2b0], 0xf
lea eax, [esp + 0x284]
lea esi, [esp + 0x29c]
mov ecx, 0x1018cf78
cmova esi, dword [esp + 0x29c]
push eax
call fcn.1004c1f0
cmp dword [esp + 0x298], 0xf
lea eax, [esp + 0x284]
mov ecx, 0x1018ce90
mov dword [esp + 0x188], 0x209
cmova eax, dword [esp + 0x284]
mov dword [esp + 0x190], eax
lea eax, [esp + 0x26c]
push eax
mov dword [esp + 0x190], esi
mov dword [esp + 0x198], 0xe
call fcn.1005c5e0
cmp dword [esp + 0x280], 0xf
lea eax, [esp + 0x254]
lea esi, [esp + 0x26c]
mov ecx, 0x1018c408
cmova esi, dword [esp + 0x26c]
push eax
call fcn.1004bd00
cmp dword [esp + 0x268], 0xf
lea eax, [esp + 0x254]
mov ecx, 0x1018c9f0
mov dword [esp + 0x198], 0x206
cmova eax, dword [esp + 0x254]
mov dword [esp + 0x1a0], eax
lea eax, [esp + 0x23c]
push eax
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1a8], 0xe
call fcn.1004afd0
cmp dword [esp + 0x250], 0xf
lea eax, [esp + 0x224]
lea esi, [esp + 0x23c]
mov ecx, 0x1018c6f8
cmova esi, dword [esp + 0x23c]
push eax
call fcn.1004c390
cmp dword [esp + 0x238], 0xf
lea eax, [esp + 0x224]
mov ecx, 0x1018c928
mov dword [esp + 0x1a8], 0x205
cmova eax, dword [esp + 0x224]
mov dword [esp + 0x1b0], eax
lea eax, [esp + 0x20c]
push eax
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1b8], 0xe
call fcn.1005be20
cmp dword [esp + 0x220], 0xf
lea eax, [esp + 0x1f4]
lea esi, [esp + 0x20c]
mov ecx, 0x1018c958
cmova esi, dword [esp + 0x20c]
push eax
call fcn.1004c470
cmp dword [esp + 0x208], 0xf
lea eax, [esp + 0x1f4]
mov dword [esp + 0x1b8], 0x20d
cmova eax, dword [esp + 0x1f4]
mov dword [esp + 0x1c0], eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1c4], 0xe
push eax
mov ecx, 0x1018c9a0
call fcn.1005d630
cmp dword [esp + 0x1f0], 0xf
lea eax, [esp + 0x4ac]
lea esi, [esp + 0x1dc]
mov ecx, 0x1018c798
cmova esi, dword [esp + 0x1dc]
push eax
call fcn.1004b650
cmp dword [esp + 0x4c0], 0xf
lea eax, [esp + 0x4ac]
mov dword [esp + 0x1cc], esi
lea edi, [esp + 0x38]
cmova eax, dword [esp + 0x4ac]
lea esi, [esp + 0x1d8]
push 0x20
mov dword [esp + 0x1cc], 0x1f7
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], 0xe
mov dword [0x1019a54c], 0
mov dword [0x1019a550], 0
call fcn.100dfc8b
mov ebx, eax
add esp, 4
mov dword [ebx], ebx
mov dword [ebx + 4], ebx
mov dword [ebx + 8], ebx
mov word [ebx + 0xc], 0x101
mov dword [0x1019a54c], ebx
cmp edi, esi
je 0x100c2138
push edi
push ebx
lea eax, [esp + 0x34]
push eax
call fcn.100c3d00
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x10], xmm0
mov dword [esp + 0x18], eax
test al, al
jne 0x100c2131
cmp dword [0x1019a550], 0x7ffffff
je 0x100c23b3
mov esi, dword [0x1019a54c]
push 0x20
call fcn.100dfc8b
movups xmm0, xmmword [edi]
add esp, 4
mov ecx, 0x1019a54c
movups xmmword [eax + 0x10], xmm0
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
push eax
push dword [esp + 0x18]
mov word [eax + 0xc], 0
push dword [esp + 0x18]
call fcn.100c34b0
lea esi, [esp + 0x1d8]
add edi, 0x10
cmp edi, esi
jne 0x100c20c1
lea ecx, [esp + 0x4ac]
call fcn.1001b4d0
lea ecx, [esp + 0x1dc]
call fcn.1001b4d0
lea ecx, [esp + 0x1f4]
call fcn.1001b4d0
lea ecx, [esp + 0x20c]
call fcn.1001b4d0
lea ecx, [esp + 0x224]
call fcn.1001b4d0
lea ecx, [esp + 0x23c]
call fcn.1001b4d0
lea ecx, [esp + 0x254]
call fcn.1001b4d0
lea ecx, [esp + 0x26c]
call fcn.1001b4d0
lea ecx, [esp + 0x284]
call fcn.1001b4d0
lea ecx, [esp + 0x29c]
call fcn.1001b4d0
lea ecx, [esp + 0x2b4]
call fcn.1001b4d0
lea ecx, [esp + 0x2cc]
call fcn.1001b4d0
lea ecx, [esp + 0x2e4]
call fcn.1001b4d0
lea ecx, [esp + 0x2fc]
call fcn.1001b4d0
lea ecx, [esp + 0x314]
call fcn.1001b4d0
lea ecx, [esp + 0x32c]
call fcn.1001b4d0
lea ecx, [esp + 0x344]
call fcn.1001b4d0
lea ecx, [esp + 0x35c]
call fcn.1001b4d0
lea ecx, [esp + 0x374]
call fcn.1001b4d0
lea ecx, [esp + 0x38c]
call fcn.1001b4d0
lea ecx, [esp + 0x3a4]
call fcn.1001b4d0
lea ecx, [esp + 0x3bc]
call fcn.1001b4d0
lea ecx, [esp + 0x3d4]
call fcn.1001b4d0
lea ecx, [esp + 0x3ec]
call fcn.1001b4d0
lea ecx, [esp + 0x404]
call fcn.1001b4d0
lea ecx, [esp + 0x41c]
call fcn.1001b4d0
lea ecx, [esp + 0x434]
call fcn.1001b4d0
lea ecx, [esp + 0x44c]
call fcn.1001b4d0
lea ecx, [esp + 0x464]
call fcn.1001b4d0
lea ecx, [esp + 0x47c]
call fcn.1001b4d0
lea ecx, [esp + 0x494]
call fcn.1001b4d0
lea ecx, [esp + 0x53c]
call fcn.1001b4d0
lea ecx, [esp + 0x4c4]
call fcn.1001b4d0
lea ecx, [esp + 0x4dc]
call fcn.1001b4d0
lea ecx, [esp + 0x4f4]
call fcn.1001b4d0
lea ecx, [esp + 0x50c]
call fcn.1001b4d0
lea ecx, [esp + 0x524]
call fcn.1001b4d0
lea ecx, [esp + 0x5cc]
call fcn.1001b4d0
lea ecx, [esp + 0x554]
call fcn.1001b4d0
lea ecx, [esp + 0x56c]
call fcn.1001b4d0
lea ecx, [esp + 0x584]
call fcn.1001b4d0
lea ecx, [esp + 0x59c]
call fcn.1001b4d0
lea ecx, [esp + 0x5b4]
call fcn.1001b4d0
push 0x1013acc0
call fcn.100dffc0
add esp, 4
push 0x1019a564
call fcn.100dfbd6
mov ebx, dword [esp + 0x28]
add esp, 4
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.100c3400
mov eax, dword [esp + 0x18]
mov ecx, dword [0x1019a54c]
cmp byte [eax + 0xd], 0
jne 0x100c237e
cmp ebx, dword [eax + 0x10]
jge 0x100c2380
mov eax, ecx
cmp eax, ecx
jne 0x100c239b
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5d8]
xor ecx, esp
call fcn.100dfbc8
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x5e4]
add eax, 0x14
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100dfbc8
mov esp, ebp
pop ebp
ret
call fcn.1000a3a0
int3