Function at 0x1009c8c0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x1015fc98
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48
mov ecx, dword [0x1018ca10]
mov eax, 0x16
cdq
idiv ecx
push ebx
push ebp
push esi
mov esi, dword [0x1018ca0c]
push edi
mov al, byte [edx + esi]
xor edx, edx
mov dword [esp + 0x1a], edx
add al, 0x16
mov dword [esp + 0x1e], edx
mov byte [0x1018ca35], al
mov dword [esp + 0x22], edx
mov eax, 0x12d
mov word [esp + 0x26], dx
mov word [esp + 0x18], 0
cdq
idiv ecx
lea eax, [esp + 0x18]
push eax
mov bl, byte [edx + esi]
add bl, 0x42
call fcn.1009ce80
mov cl, byte [0x1018ca37]
add esp, 4
push ecx
call fcn.10098410
mov cl, al
mov eax, 0x367
cdq
idiv dword [0x1018ca10]
mov eax, dword [0x1018ca0c]
add cl, byte [edx + eax]
mov dl, byte [0x1018ca34]
mov al, cl
mov cl, 0xe5
imul cl
push eax
push edx
push 9
call fcn.100980c0
mov ecx, dword [0x1018ca10]
add esp, 8
mov esi, dword [0x1018ca0c]
push eax
mov eax, 0x1e3
cdq
idiv ecx
mov al, byte [edx + esi]
mov dl, byte [0x1018ca3b]
push eax
mov al, byte [0x1018ca38]
push 0xffffffffffffffd8
push edx
push eax
mov eax, 0x269
cdq
idiv ecx
mov eax, 0x1eb
mov dl, byte [edx + esi]
push edx
cdq
idiv ecx
mov al, byte [edx + esi]
push eax
call fcn.100980d0
add esp, 0x14
shl bl, 4
push eax
push ebx
call fcn.100980e0
add esp, 0x10
push eax
push 0x1c
push 0xfffffffffffffffe
push 0xffffffffffffffe6
push 0xffffffffffffffd1
push 0xffffffffffffffeb
call fcn.100980d0
mov ebx, 0x67
add esp, 0x14
mov cl, bl
imul cl
add al, 0x28
push eax
call fcn.100980e0
mov dl, 0xde
add esp, 0x10
imul dl
mov cl, al
mov eax, 0x276
cdq
idiv dword [0x1018ca10]
mov eax, dword [0x1018ca0c]
mov esi, 0x76
mov edi, 0x59
mov word [esp + 0x38], si
mov word [esp + 0x3a], 0x69
mov word [esp + 0x3c], si
mov word [esp + 0x3e], 0x73
mov word [esp + 0x40], si
mov word [esp + 0x42], di
mov word [esp + 0x44], 0x6a
mov word [esp + 0x46], bx
mov word [esp + 0x48], 0x75
mov word [esp + 0x4a], 0x72
mov word [esp + 0x4c], di
mov word [esp + 0x4e], 0x62
mov word [esp + 0x50], bx
mov word [esp + 0x52], 0x7f
sub cl, byte [edx + eax]
mov al, byte [0x1019702c]
sub cl, 0x43
test al, 1
mov byte [0x1018ca35], cl
jne 0x1009ca94
lea ecx, [esp + 0x38]
push 6
or al, 1
push ecx
mov ecx, 0x10197030
mov byte [0x1019702c], al
call fcn.10018600
push 0x100a8200
call fcn.1013c36b
add esp, 4
mov ebp, dword [0x10197030]
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x2c], dl
call fcn.1000bc70
push ebp
call fcn.1013c2c2
add esp, 4
mov ebp, eax
lea ecx, [esp + 0x28]
push 1
push ebp
call fcn.1000c010
test al, al
je 0x1009cae9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
push ebp
push eax
push ecx
call fcn.100017d0
add esp, 0xc
lea ecx, [esp + 0x28]
push ebp
call fcn.1000bff0
mov ecx, dword [0x10191a54]
lea edx, [esp + 0x28]
push 0
push edx
mov dword [esp + 0x68], 0
call fcn.10058e60
mov ecx, eax
call fcn.10067e70
push 1
lea ecx, [esp + 0x2c]
mov ebp, eax
mov dword [esp + 0x64], 0xffffffff
call fcn.1000bc70
mov eax, dword [esp + 0x1e]
and eax, 0xffff
cmp ebp, eax
je 0x1009ce6a
mov al, byte [0x1019702c]
mov word [esp + 0x38], si
test al, 1
mov word [esp + 0x3a], 0x69
mov word [esp + 0x3c], si
mov word [esp + 0x3e], 0x73
mov word [esp + 0x40], si
mov word [esp + 0x42], di
mov word [esp + 0x44], 0x6a
mov word [esp + 0x46], bx
mov word [esp + 0x48], 0x75
mov word [esp + 0x4a], 0x72
mov word [esp + 0x4c], di
mov word [esp + 0x4e], 0x62
mov word [esp + 0x50], bx
mov word [esp + 0x52], 0x7f
jne 0x1009cbf4
mov bl, al
push 0x1e
or bl, 1
mov byte [0x1019702c], bl
call fcn.1013c2df
add esp, 4
xor ebp, ebp
mov dword [0x10197030], eax
xor esi, esi
mov di, word [esp + esi + 0x38]
push 6
mov ecx, edi
and ecx, 0xffff
push ecx
mov ecx, 0x10197030
call fcn.100a8ee0
mov edx, dword [0x10197030]
add eax, 6
xor eax, edi
mov word [esi + edx], ax
add esi, 2
cmp esi, 0x1c
jb 0x1009cbab
mov eax, dword [0x10197030]
push 0x100a8200
mov word [eax + 0x1c], bp
call fcn.1013c36b
add esp, 4
jmp 0x1009cbf6
xor ebp, ebp
mov cl, byte [esp + 0x13]
mov edi, dword [0x10197030]
mov byte [esp + 0x28], cl
push ebp
lea ecx, [esp + 0x2c]
call fcn.1000bc70
push edi
call fcn.1013c2c2
add esp, 4
mov esi, eax
lea ecx, [esp + 0x28]
push 1
push esi
call fcn.1000c010
test al, al
je 0x1009cc44
mov edx, dword [esp + 0x2c]
push esi
push edi
push edx
call fcn.100017d0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
add esp, 0xc
mov word [eax + esi*2], bp
mov ecx, dword [esp + 0x1e]
lea edx, [esp + 0x28]
and ecx, 0xffff
mov dword [esp + 0x60], 1
push ecx
mov ecx, dword [0x10191a54]
push edx
call fcn.10058e60
mov ecx, eax
call fcn.10067f30
mov ecx, dword [esp + 0x2c]
or ebx, 0xffffffff
cmp ecx, ebp
mov dword [esp + 0x60], ebx
je 0x1009cc9b
mov al, byte [ecx - 1]
test al, al
je 0x1009cc8f
cmp al, 0xff
je 0x1009cc8f
dec al
mov byte [ecx - 1], al
jmp 0x1009cc9b
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov eax, 0x257
cdq
idiv dword [0x1018ca10]
mov eax, dword [0x1018ca0c]
mov cl, byte [edx + eax]
push ecx
call fcn.10098410
push eax
mov eax, 0x234
cdq
idiv dword [0x1018ca10]
mov eax, dword [0x1018ca0c]
mov cl, byte [edx + eax]
push ecx
push 0xffffffffffffffd3
call fcn.100980e0
mov byte [0x1018ca34], al
mov eax, 0xffbd
mov ecx, 0xffb8
mov word [esp + 0x4e], ax
mov word [esp + 0x58], ax
mov word [esp + 0x62], ax
mov al, byte [0x1019707c]
mov word [esp + 0x48], cx
mov word [esp + 0x4c], cx
mov word [esp + 0x50], cx
add esp, 0x10
mov edx, 0xffa7
mov ecx, 0xffba
mov word [esp + 0x3a], 0xffb7
test al, 1
mov word [esp + 0x42], 0xffbb
mov word [esp + 0x44], dx
mov word [esp + 0x46], 0xffab
mov word [esp + 0x4a], cx
mov word [esp + 0x4c], cx
mov word [esp + 0x4e], dx
mov word [esp + 0x50], 0xffb6
mov word [esp + 0x54], 0xffb5
jne 0x1009cdb1
or al, 1
push 0x20
mov byte [0x1019707c], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197080], eax
xor edi, edi
mov si, word [esp + edi + 0x38]
push 0xb8
mov edx, esi
mov ecx, 0x10197080
and edx, 0xffff
push edx
call fcn.1002ea10
sub esi, eax
mov eax, dword [0x10197080]
add esi, 0xb8
mov word [edi + eax], si
add edi, 2
cmp edi, 0x1e
jb 0x1009cd64
mov ecx, dword [0x10197080]
push 0x100a8210
mov word [ecx + 0x1e], bp
call fcn.1013c36b
add esp, 4
mov esi, dword [0x10197080]
mov dl, byte [esp + 0x13]
push esi
mov byte [esp + 0x2c], dl
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x28]
push eax
push esi
call fcn.1000bf40
mov ecx, dword [0x10191a54]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x64], 2
call fcn.10058e60
mov ecx, eax
call fcn.100686b0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ebx
cmp ecx, ebp
je 0x1009ce28
mov al, byte [ecx - 1]
test al, al
je 0x1009ce1c
cmp al, 0xff
je 0x1009ce1c
dec al
mov byte [ecx - 1], al
jmp 0x1009ce28
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov ecx, dword [0x10191a54]
call fcn.10058ed0
mov edi, eax
call fcn.10098410
mov ecx, edi
xor esi, esi
call fcn.10098420
test eax, eax
jbe 0x1009ce6a
mov bl, 0xea
push esi
mov ecx, edi
call fcn.10098450
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x10]
mov ecx, edi
mov byte [0x1018ca3d], bl
inc esi
call fcn.10098420
cmp esi, eax
jb 0x1009ce49
mov ecx, dword [esp + 0x58]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x54
ret