Function at 0x100c71c0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x1016225e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
mov al, byte [0x1018cb2a]
mov cl, 0x7d
imul cl
push ebx
push ebp
push esi
push edi
push eax
call fcn.100c7a80
mov esi, dword [0x1018cb14]
mov cl, al
mov eax, 0x30f
mov ebp, dword [0x1018cb10]
cdq
idiv esi
mov al, byte [0x1018cb24]
lea edi, [esp + 0x94]
add esp, 4
mov bl, byte [edx + ebp]
sub bl, al
xor eax, eax
sub bl, cl
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov eax, 0x3b6
sub bl, 0x6c
cdq
idiv esi
mov byte [0x1018cb28], bl
push ebx
push 0x4e
mov dl, byte [edx + ebp]
mov dword [esp + 0x98], 0x44
mov byte [esp + 0x26], dl
call fcn.100c7a40
imul byte [0x1018cb26]
mov bl, 0xe0
push 0x3e
sub bl, al
call fcn.100c7a40
mov ecx, dword [0x1018cb14]
add bl, al
mov eax, 0x29b
mov esi, dword [0x1018cb10]
cdq
idiv ecx
add esp, 8
push ebx
mov al, byte [edx + esi]
mov edx, dword [esp + 0x26]
push eax
mov eax, 0x14f
push edx
cdq
idiv ecx
mov cl, byte [0x1018cb27]
add cl, 0x4e
mov al, byte [edx + esi]
mov dl, byte [0x1018cb2a]
push eax
push ecx
push 0x7d
push edx
push 0x6a
call fcn.100c7a30
add esp, 0x14
push eax
call fcn.100c7a90
mov cl, al
mov eax, 0x3a7
cdq
idiv dword [0x1018cb14]
mov eax, dword [0x1018cb10]
add cl, byte [edx + eax]
push ecx
call fcn.100c7a40
add esp, 0x18
xor ecx, ecx
mov byte [0x1018cb28], 0x6a
mov dword [esp + 0x34], ecx
mov eax, 0x135
mov dword [esp + 0x38], ecx
cdq
idiv dword [0x1018cb14]
mov eax, dword [0x1018cb10]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov cl, 0x48
mov esi, dword [esp + 0xe4]
xor ebx, ebx
mov al, byte [edx + eax]
imul byte [0x1018cb24]
imul cl
mov byte [0x1018cb2a], al
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x100c7321
mov eax, 0x1016a1d8
lea edx, [esp + 0x34]
lea ecx, [esp + 0x90]
push edx
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
call fcn.100c7d30
add esp, 0x28
test eax, eax
je 0x100c73cd
mov al, byte [0x1018cb26]
mov dl, 0x56
imul dl
push eax
call fcn.100c7a40
mov esi, dword [0x1018cb14]
mov cl, al
mov eax, 0x3c9
mov edi, dword [0x1018cb10]
cdq
idiv esi
mov al, byte [edx + edi]
add cl, al
mov eax, 0x267
cdq
idiv esi
mov al, cl
imul byte [edx + edi]
push eax
call fcn.100c7a80
mov edx, dword [esp + 0x40]
push edx
call fcn.100c8010
mov eax, dword [esp + 0x40]
push eax
call fcn.100c8280
mov al, byte [0x1018cb25]
mov cl, al
add cl, 0x7e
dec al
mov byte [0x1018cb25], al
mov eax, 0x103
cdq
idiv dword [0x1018cb14]
mov eax, dword [0x1018cb10]
mov dl, byte [edx + eax]
push edx
push ecx
call fcn.100c7a60
add esp, 0x18
xor eax, eax
jmp 0x100c777b
mov al, byte [esp + 0x1b]
mov dword [esp + 0x28], ebx
mov byte [esp + 0x24], al
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov al, byte [0x1018cb27]
push 0x5a
inc al
mov dword [esp + 0xe0], ebx
push eax
mov byte [0x1018cb27], al
call fcn.100c7a60
push ebx
lea ecx, [esp + 0x30]
push ebx
push ecx
push ebx
push esi
call fcn.1002f530
mov dl, byte [0x1018cb26]
shl dl, 1
push edx
call fcn.100c7a40
mov byte [0x1018cb24], al
mov eax, 0x1d
mov word [esp + 0x34], ax
mov word [esp + 0x36], ax
mov al, byte [0x10196228]
add esp, 0x20
test al, 1
mov word [esp + 0x10], 0x1e
mov word [esp + 0x12], 0x4b
jne 0x100c74ad
or al, 1
push 0xa
mov byte [0x10196228], al
call fcn.1013c2df
add esp, 4
mov dword [0x1019622c], eax
mov edi, 0x30
xor esi, esi
mov bp, word [esp + esi + 0x10]
push edi
mov eax, ebp
mov ecx, 0x1019622c
and eax, 0xffff
push eax
call fcn.1004a650
mov ecx, dword [0x1019622c]
xor eax, edi
xor eax, ebp
xor edi, edi
mov word [esi + ecx], ax
mov eax, dword [0x1019622c]
mov di, word [esi + eax]
add esi, 2
cmp esi, 8
jb 0x100c7463
push 0x100c84f0
mov word [eax + 8], bx
call fcn.1013c36b
add esp, 4
mov edi, dword [0x1019622c]
sub esp, 0x10
lea edx, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.10023d70
lea eax, [esp + 0x90]
mov byte [esp + 0xec], 0
push eax
call fcn.10023160
mov ebp, eax
push edi
mov byte [esp + 0xf4], 2
call fcn.1013c2c2
mov ebx, dword [ebp + 8]
add esp, 0x18
cmp ebx, eax
mov esi, ebx
jb 0x100c74f9
mov esi, eax
mov ecx, dword [ebp + 4]
xor ebp, ebp
cmp esi, ebp
mov edx, edi
jbe 0x100c7527
mov di, word [ecx]
cmp di, word [edx]
jne 0x100c7517
add ecx, 2
add edx, 2
dec esi
jne 0x100c7504
jmp 0x100c7527
mov cx, word [ecx]
cmp cx, word [edx]
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
cmp ecx, ebp
jne 0x100c7539
cmp ebx, eax
jae 0x100c7530
or ecx, 0xffffffff
jmp 0x100c7537
xor ecx, ecx
cmp ebx, eax
setne cl
cmp ecx, ebp
mov ecx, dword [esp + 0x84]
mov byte [esp + 0xdc], 0
setne bl
cmp ecx, ebp
je 0x100c756d
mov al, byte [ecx - 1]
test al, al
je 0x100c7561
cmp al, 0xff
je 0x100c7561
dec al
mov byte [ecx - 1], al
jmp 0x100c756d
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
test bl, bl
je 0x100c75b4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xdc], 0xffffffff
cmp ecx, ebp
je 0x100c75aa
mov al, byte [ecx - 1]
test al, al
je 0x100c759e
cmp al, 0xff
je 0x100c759e
dec al
mov byte [ecx - 1], al
mov eax, 0x80070057
jmp 0x100c777b
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov eax, 0x80070057
jmp 0x100c777b
mov ecx, 0xe
xor eax, eax
lea edi, [esp + 0x48]
mov word [esp + 0x10], 0x27
rep stosd dword es:[edi], eax
mov eax, 0x12d
mov dword [esp + 0x44], 0x3c
cdq
idiv dword [0x1018cb14]
mov eax, dword [0x1018cb10]
mov word [esp + 0x12], 0x2a
mov word [esp + 0x14], 0x23
mov word [esp + 0x16], 0x16
mov word [esp + 0x18], 0x28
mov bl, byte [edx + eax]
mov al, byte [0x1018cb27]
dec al
mov dword [esp + 0x48], 0x400
mov byte [esp + 0x1e], al
mov al, byte [0x10196230]
test al, 1
mov byte [0x1018cb28], 0x75
mov dword [esp + 0x4c], ebp
jne 0x100c76a2
or al, 1
push 0xc
mov byte [0x10196230], al
call fcn.1013c2df
add esp, 4
mov dword [0x10196234], eax
xor edi, edi
mov si, word [esp + edi + 0x10]
mov ecx, esi
and ecx, 0xffff
sub ecx, 0x4b
cmp ecx, 0x4b
jle 0x100c766f
lea edx, [ecx - 1]
mov eax, 0x1b4e81b5
mul edx
shr edx, 3
mov eax, edx
shl eax, 4
sub eax, edx
neg eax
add ecx, eax
lea ecx, [ecx + eax*4]
cmp ecx, ebp
je 0x100c7675
xor ecx, ecx
mov edx, dword [0x10196234]
sub esi, ecx
add esi, 0x4b
mov word [edi + edx], si
add edi, 2
cmp edi, 0xa
jb 0x100c763f
mov eax, dword [0x10196234]
push 0x100c8500
mov word [eax + 0xa], bp
call fcn.1013c36b
add esp, 4
mov ecx, dword [0x10196234]
add bl, 0x7b
push 0xfffffffffffffff1
push ebx
mov dword [esp + 0x58], ecx
call fcn.100c7a60
mov edx, dword [esp + 0xec]
add esp, 8
mov dword [esp + 0x54], 0x1016a1d8
mov eax, dword [edx + 4]
cmp eax, ebp
je 0x100c76d4
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x1e]
mov cl, byte [0x1018cb26]
lea edx, [esp + 0x44]
mov byte [0x1018cb2a], al
push edx
mov dword [esp + 0x5c], ebp
mov byte [0x1018cb24], cl
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], 1
call fcn.100c8510
add esp, 4
test eax, eax
je 0x100c7741
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xdc], 0xffffffff
cmp ecx, ebp
je 0x100c773d
mov al, byte [ecx - 1]
test al, al
je 0x100c7731
cmp al, 0xff
je 0x100c7731
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x100c777b
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
xor eax, eax
jmp 0x100c777b
call fcn.100c87c0
mov ecx, dword [esp + 0x28]
mov esi, eax
cmp ecx, ebp
mov dword [esp + 0xdc], 0xffffffff
je 0x100c7779
mov al, byte [ecx - 1]
test al, al
je 0x100c776d
cmp al, 0xff
je 0x100c776d
dec al
mov byte [ecx - 1], al
jmp 0x100c7779
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xd4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xd0
ret