Function at 0x100fb780
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x10165347
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x40], 0
call fcn.100f7800
mov dl, byte [0x1018cc9e]
mov cl, al
mov al, dl
mov bl, 0x51
imul bl
mov bl, 0x5f
push 0x43
sub bl, al
mov al, byte [0x1018cc9c]
sub bl, al
add cl, bl
push ecx
push edx
push 7
push 0xffffffffffffffc2
push 0x55
push 0xffffffffffffffae
push 0x60
call fcn.100f7250
push eax
mov al, byte [0x1018cc9c]
push 0xffffffffffffffe6
push eax
push 0xffffffffffffffd6
push 0x6e
call fcn.100f7250
push 0x6c
push 0x5c
push 0xffffffffffffff94
mov bl, al
call fcn.100f7e90
mov cl, al
mov al, bl
imul cl
imul byte [0x1018cc9c]
add esp, 0x34
add al, 0x2c
mov ecx, dword [0x1018cc74]
push eax
mov eax, 0x1d5
cdq
idiv dword [0x1018cc78]
mov al, 0xe5
sub al, byte [edx + ecx]
push eax
call fcn.100f7250
mov cl, al
mov eax, 0x165
cdq
idiv dword [0x1018cc78]
mov eax, dword [0x1018cc74]
mov ebp, dword [esp + 0x6c]
add esp, 0x14
mov bl, byte [edx + eax]
sub cl, bl
xor ebx, ebx
mov byte [0x1018cc9c], cl
mov eax, dword [ebp + 8]
cmp eax, ebx
jne 0x100fb86b
mov esi, dword [esp + 0x54]
mov ecx, esi
call fcn.100fa140
mov dword [esp + 0x40], 1
jmp 0x100fbac5
mov al, byte [0x101953c8]
mov word [esp + 0x58], 0xa
test al, 1
jne 0x100fb89e
lea ecx, [esp + 0x58]
or al, 1
push ecx
mov ecx, 0x101953cc
mov byte [0x101953c8], al
call fcn.100153e0
push 0x100fbae0
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101953cc]
push esi
call fcn.1013c2c2
add esp, 4
mov ecx, ebp
push eax
push ebx
push esi
call fcn.10023f20
mov ecx, dword [0x1016a210]
mov dword [esp + 0x10], eax
cmp eax, ecx
je 0x100fb9ad
mov al, byte [0x101953d0]
mov word [esp + 0x14], 0x48
test al, 1
mov word [esp + 0x16], 0x2b
mov word [esp + 0x18], 0x37
mov word [esp + 0x1a], 0x2c
mov word [esp + 0x1c], 0x35
mov word [esp + 0x1e], 0x29
jne 0x100fb95c
or al, 1
push 0xe
mov byte [0x101953d0], al
call fcn.1013c2df
add esp, 4
mov dword [0x101953d4], eax
xor esi, esi
mov di, word [esp + esi + 0x14]
push 8
mov edx, edi
mov ecx, 0x101953d4
and edx, 0xffff
push edx
call fcn.100a8ee0
mov ecx, dword [0x101953d4]
add eax, 8
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 0xc
jb 0x100fb914
mov edx, dword [0x101953d4]
push 0x100fbaf0
mov word [edx + 0xc], bx
call fcn.1013c36b
add esp, 4
mov edi, dword [0x101953d4]
push edi
call fcn.1013c2c2
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 8]
add esp, 4
cmp eax, ebx
jbe 0x100fb99f
mov esi, dword [ebp + 4]
lea ebx, [esi + eax*2]
cmp esi, ebx
jae 0x100fb99d
mov eax, dword [esp + 0x58]
mov cx, word [esi]
push eax
push ecx
push edi
call fcn.10015e40
add esp, 0xc
test eax, eax
je 0x100fb9c7
add esi, 2
cmp esi, ebx
jb 0x100fb980
xor ebx, ebx
mov esi, dword [0x1016a210]
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x100fb9d0
mov esi, dword [esp + 0x54]
push ebx
push ebp
mov ecx, esi
call fcn.100fa1a0
mov dword [esp + 0x40], 1
jmp 0x100fbac5
sub esi, dword [ebp + 4]
sar esi, 1
xor ebx, ebx
jmp 0x100fb9a5
mov ecx, dword [ebp + 8]
inc esi
cmp esi, ecx
jb 0x100fb9f0
mov esi, dword [esp + 0x54]
mov ecx, esi
call fcn.100fa140
mov dword [esp + 0x40], 1
jmp 0x100fbac5
push eax
lea edx, [esp + 0x34]
push ebx
push edx
mov ecx, ebp
call fcn.10015220
mov ecx, dword [0x1016a210]
mov al, byte [0x1018cc9d]
mov edi, 1
push ecx
lea edx, [esp + 0x24]
push esi
mov dword [esp + 0x54], edi
push edx
mov ecx, ebp
mov byte [0x1018cc9e], al
call fcn.10015220
mov byte [esp + 0x4c], 2
call fcn.100f7800
mov byte [0x1018cc9e], al
lea eax, [esp + 0x30]
push eax
call fcn.100fb6c0
mov esi, dword [esp + 0x58]
add esp, 4
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, esi
call fcn.100fa1a0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], edi
cmp eax, ebx
mov byte [esp + 0x4c], 1
je 0x100fba82
mov cl, byte [eax - 1]
test cl, cl
je 0x100fba76
cmp cl, 0xff
je 0x100fba76
dec cl
mov byte [eax - 1], cl
jmp 0x100fba82
add eax, 0xfffffffe
push eax
call fcn.101307a0
add esp, 4
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
cmp ecx, ebx
mov byte [esp + 0x4c], 0
je 0x100fbab9
mov al, byte [ecx - 1]
test al, al
je 0x100fbaad
cmp al, 0xff
je 0x100fbaad
dec al
mov byte [ecx - 1], al
jmp 0x100fbab9
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x44]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x40
ret