Function at 0x18000b1c4
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r12d, r9d
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rdx
mov r15, rcx
mov rax, qword [rsp + 0xc0]
mov dword [rax], 0
mov ecx, 0x64
call fcn.18000d227
mov rbp, rax
test r12b, r12b
je 0x18000b236
mov eax, dword [0x180018960]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne cl
cmp dword [0x18001895c], 9
setg al
mov edx, eax
xor dl, cl
or al, cl
mov cl, 1
xor al, cl
or al, dl
cmp al, cl
je 0x18000b270
jmp 0x18000b291
mov eax, dword [0x180018968]
lea ecx, [rax - 1]
imul ecx, eax
mov edi, 0xffffffff
xor ecx, edi
or ecx, 0xfffffffe
cmp ecx, edi
sete al
cmp dword [0x180018964], 0xa
setl cl
test cl, al
jne 0x18000b342
xor cl, al
je 0x18000b403
jmp 0x18000b342
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x2c], 0x68a6dbd
mov dword [rsp + 0x30], 0x68b6db4
mov dword [rsp + 0x34], 0x6cf6df5
test al, al
jne 0x18000b2b0
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x2c], 0x68a6dbd
mov dword [rsp + 0x30], 0x68b6db4
mov dword [rsp + 0x34], 0x6cf6df5
jmp 0x18000b270
mov eax, dword [0x1800188a0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
setne cl
cmp dword [0x18001889c], 9
setg al
mov edx, eax
xor dl, cl
or al, cl
mov cl, 1
xor al, cl
or al, dl
cmp al, cl
jne 0x18000b2ed
mov cl, byte [rsp + 0x28]
test al, al
jne 0x18000b2f3
mov cl, byte [rsp + 0x28]
jmp 0x18000b2e5
lea rdx, [rsp + 0x2c]
test cl, cl
jne 0x18000b32f
mov eax, 1
xor ecx, ecx
mov ebx, dword [rsp + rax*4 + 0x28]
mov edi, ebx
not edi
and edi, 0xfb402dd6
and ebx, 0x4bfd229
or ebx, edi
xor ebx, 0xfd8f4023
mov dword [rsp + rax*4 + 0x28], ebx
inc rcx
inc rax
cmp rax, 4
jne 0x18000b303
mov rcx, rbp
mov r8d, 0xa
call fcn.18000ce55
jmp 0x18000b45b
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x2c], 0x1c7eef94
mov dword [rsp + 0x30], 0x1c3bef87
mov eax, dword [0x180018898]
lea ecx, [rax - 1]
imul ecx, eax
xor ecx, edi
or ecx, 0xfffffffe
cmp ecx, edi
sete cl
cmp dword [0x180018894], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
cmp al, 1
jne 0x18000b452
mov cl, byte [rsp + 0x28]
test al, al
je 0x18000b452
lea rdx, [rsp + 0x2c]
test cl, cl
jne 0x18000b3c8
xor eax, eax
mov ecx, dword [rsp + rax*4 + 0x2c]
mov ebx, ecx
not ebx
and ebx, 0xaf7f3f62
and ecx, 0x5080c09d
or ecx, ebx
xor ecx, 0xb344d0b1
mov dword [rsp + rax*4 + 0x2c], ecx
test rax, rax
mov eax, 1
je 0x18000b39e
mov rcx, rbp
mov r8d, 8
call fcn.18000ce55
mov eax, dword [0x180018968]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete al
cmp dword [0x180018964], 0xa
setl cl
test cl, al
jne 0x18000b45b
xor cl, al
jne 0x18000b45b
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x2c], 0x1c7eef94
mov dword [rsp + 0x30], 0x1c3bef87
mov eax, dword [0x180018898]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete cl
cmp dword [0x180018894], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
cmp al, 1
je 0x18000b98a
jmp 0x18000b9d4
mov cl, byte [rsp + 0x28]
jmp 0x18000b387
mov ecx, 0x1e
call fcn.18000d227
mov rdi, rax
xor eax, eax
lea rdx, [rsp + 0x2c]
mov byte [rdx - 4], al
mov dword [rdx], 0x22d305fe
mov dword [rdx + 4], 0x229f05f2
mov dword [rdx + 8], 0x22fe05c1
cmp byte [rdx - 4], al
jne 0x18000b4b8
mov eax, 1
xor ecx, ecx
mov ebx, dword [rsp + rax*4 + 0x28]
mov esi, ebx
not esi
and esi, 0x22fe05a6
and ebx, 0xdd01fa59
or ebx, esi
mov dword [rsp + rax*4 + 0x28], ebx
inc rcx
inc rax
cmp rax, 4
jne 0x18000b492
mov rcx, rdi
mov r8d, 0xc
call fcn.18000ce55
mov rcx, qword [r15]
mov rdx, rbp
call fcn.180006578
mov r14, rax
mov qword [rsp + 0x28], rax
mov ecx, 0x64
call fcn.18000d227
mov rsi, rax
mov ecx, 0x1f40
call fcn.18000d227
mov rbp, rax
mov dword [r14 + 0x808], 2
mov qword [r14 + 0x810], rsi
mov qword [r14 + 0x818], rax
mov rcx, r15
mov rdx, rsi
mov r8, rax
call fcn.180005e42
mov r13d, eax
lea rdx, [r15 + 0x3c8]
lea rcx, [r14 + 0x30]
call fcn.1800065bc
test r12b, r12b
je 0x18000b5e2
mov eax, dword [0x180018968]
mov edx, dword [0x180018964]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne r8b
sete al
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, al
jne 0x18000b56e
or cl, r8b
xor cl, 1
je 0x18000b5c2
movsxd rax, dword [r14 + 0x860]
lea ecx, [rax + 1]
mov dword [r14 + 0x860], ecx
mov qword [r14 + rax*8 + 0x868], rdi
mov eax, dword [0x180018968]
mov ecx, dword [0x180018964]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, dl
jne 0x18000b5e2
or cl, al
xor cl, 1
jne 0x18000b5e2
mov r14, qword [rsp + 0x28]
movsxd rax, dword [r14 + 0x860]
lea ecx, [rax + 1]
mov dword [r14 + 0x860], ecx
mov qword [r14 + rax*8 + 0x868], rdi
mov r14, qword [rsp + 0x28]
jmp 0x18000b56e
test r13b, r13b
je 0x18000b5f6
mov rcx, qword [rsp + 0x28]
call fcn.180006dce
mov r13d, eax
jmp 0x18000b5f9
xor r13d, r13d
mov rcx, rsi
call fcn.18000d001
mov rcx, rbp
call fcn.18000d001
mov rcx, rdi
call fcn.18000d001
test r13b, r13b
je 0x18000b6bd
mov eax, dword [0x180018968]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
cmp dword [0x180018964], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
test al, al
je 0x18000b642
mov rax, qword [rsp + 0x28]
mov ecx, 0xffffff38
add ecx, dword [rax + 0x930]
cmp ecx, 0x63
ja 0x18000b6cd
mov byte [r15 + 0x260], 1
test r12b, r12b
je 0x18000b723
mov ecx, dword [rax + 0x860]
dec ecx
movsxd rcx, ecx
mov esi, dword [rax + rcx*4 + 0x908]
lea ecx, [rsi + 2]
call fcn.18000d227
mov rdi, rax
mov rax, qword [rsp + 0x28]
mov ecx, dword [rax + 0x860]
dec ecx
movsxd rcx, ecx
mov rdx, qword [rax + rcx*8 + 0x8b8]
mov rcx, rdi
mov r8d, esi
call fcn.18000ce55
mov rax, qword [rsp + 0x48]
mov qword [rax], rdi
mov rax, qword [rsp + 0x50]
mov dword [rax], esi
jmp 0x18000b6db
mov rax, qword [rsp + 0xc0]
mov dword [rax], 1
jmp 0x18000b6db
mov rax, qword [rsp + 0xc0]
mov dword [rax], 3
mov eax, dword [0x180018968]
mov edx, dword [0x180018964]
lea ecx, [rax - 1]
imul ecx, eax
mov esi, 0xffffffff
xor ecx, esi
or ecx, 0xfffffffe
cmp ecx, esi
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
jne 0x18000b92a
or cl, al
xor cl, 1
je 0x18000b96a
jmp 0x18000b92a
lea rsi, [rsp + 0x40]
lea rdi, [rsp + 0x3c]
mov ebx, 0xffffffff
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x3c], 0
mov edx, dword [rax + 0x934]
mov rcx, qword [rax + 0x938]
mov r8, rsi
mov r9, rdi
call fcn.180004ec3
mov ecx, dword [0x180018968]
lea edx, [rcx - 1]
imul edx, ecx
xor edx, ebx
or edx, 0xfffffffe
cmp edx, ebx
sete cl
cmp dword [0x180018964], 0xa
setl dl
test dl, cl
jne 0x18000b7bb
xor dl, cl
jne 0x18000b7bb
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x3c], 0
mov rax, qword [rsp + 0x28]
mov edx, dword [rax + 0x934]
mov rcx, qword [rax + 0x938]
mov r8, rsi
mov r9, rdi
call fcn.180004ec3
mov rax, qword [rsp + 0x28]
jmp 0x18000b732
test al, al
je 0x18000b846
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov qword [rdi], r10
mov edx, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x50]
mov dword [rsi], edx
mov ecx, dword [0x180018968]
mov eax, dword [0x180018964]
lea ebx, [rcx - 1]
imul ebx, ecx
mov ebp, ebx
xor ebp, 0xfffffffe
and ebp, ebx
setne r8b
sete r9b
cmp eax, 9
setg bl
cmp eax, 0xa
setl cl
xor cl, r9b
jne 0x18000b869
or bl, r8b
xor bl, 1
jne 0x18000b869
mov qword [rdi], r10
mov dword [rsi], edx
mov ecx, dword [0x180018968]
mov eax, dword [0x180018964]
lea ebx, [rcx - 1]
imul ebx, ecx
mov ebp, ebx
xor ebp, 0xfffffffe
and ebp, ebx
sete bl
cmp eax, 0xa
setl cl
test cl, bl
jne 0x18000b869
xor cl, bl
je 0x18000b815
jmp 0x18000b869
mov rax, qword [rsp + 0xc0]
mov dword [rax], 3
mov ecx, dword [0x180018968]
mov eax, dword [0x180018964]
lea ebp, [rcx - 1]
imul ebp, ecx
and ebp, 1
test ebp, ebp
sete cl
cmp eax, 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
test al, al
je 0x18000b87c
mov rsi, qword [rsp + 0x28]
cmp dword [rsi + 0x934], 0
je 0x18000b6db
mov rcx, qword [rsi + 0x938]
call fcn.18000d436
mov eax, dword [0x180018968]
mov ecx, dword [0x180018964]
lea edx, [rax - 1]
imul edx, eax
mov eax, 0xffffffff
xor edx, eax
or edx, 0xfffffffe
cmp edx, eax
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, dl
jne 0x18000b6db
or cl, al
xor cl, 1
jne 0x18000b6db
mov rcx, qword [rsi + 0x938]
call fcn.18000d436
mov rcx, qword [rsi + 0x938]
call fcn.18000d436
mov eax, dword [0x180018968]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x180018964], 0xa
setl cl
test cl, al
jne 0x18000b6db
xor cl, al
je 0x18000b8e1
jmp 0x18000b6db
lea rcx, [rsp + 0x28]
call fcn.1800066c7
mov eax, dword [0x180018968]
mov ecx, dword [0x180018964]
lea edx, [rax - 1]
imul edx, eax
xor edx, esi
or edx, 0xfffffffe
cmp edx, esi
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, dl
jne 0x18000b976
or cl, al
xor cl, 1
jne 0x18000b976
lea rcx, [rsp + 0x28]
call fcn.1800066c7
jmp 0x18000b92a
mov eax, r13d
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov cl, byte [rsp + 0x28]
test al, al
je 0x18000b9d4
lea rdx, [rsp + 0x2c]
test cl, cl
jne 0x18000b9c1
xor eax, eax
mov ecx, dword [rsp + rax*4 + 0x2c]
mov ebx, ecx
not ebx
and ebx, 0x1c3befd3
and ecx, 0xe3c4102c
or ecx, ebx
mov dword [rsp + rax*4 + 0x2c], ecx
test rax, rax
mov eax, 1
je 0x18000b99d
mov rcx, rbp
mov r8d, 8
call fcn.18000ce55
jmp 0x18000b342
mov cl, byte [rsp + 0x28]
jmp 0x18000b98a