Function at 0x1800088d7
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r13, rcx
mov ecx, 0x64
call fcn.18000d227
mov r15, rax
mov r8d, 0x64
mov rcx, rax
xor edx, edx
call fcn.18000cd14
add r13, 0x8d4
mov eax, dword [0x180018a08]
lea ecx, [rax - 1]
imul ecx, eax
mov esi, 0xffffffff
xor ecx, esi
or ecx, 0xfffffffe
cmp ecx, esi
sete al
cmp dword [0x180018a04], 0xa
setl cl
test cl, al
jne 0x18000893b
xor cl, al
je 0x180008999
xor ecx, ecx
mov edx, 1
mov r8d, 0x328b7e5
mov r9d, 0x57
call fcn.18000e5ac
mov rcx, r13
mov rdx, r15
mov r8d, 0x64
call rax
mov ecx, dword [0x180018a08]
mov edx, dword [0x180018a04]
lea ebp, [rcx - 1]
imul ebp, ecx
xor ebp, esi
or ebp, 0xfffffffe
cmp ebp, esi
sete bl
setne r8b
cmp edx, 0xa
setl cl
cmp edx, 9
setg dl
cmp cl, bl
jne 0x1800089c4
or dl, r8b
xor dl, 1
jne 0x1800089c4
xor ecx, ecx
mov edx, 1
mov r8d, 0x328b7e5
mov r9d, 0x57
call fcn.18000e5ac
mov rcx, r13
mov rdx, r15
mov r8d, 0x64
call rax
jmp 0x18000893b
test rax, rax
je 0x180008a08
mov edx, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ecx, [rdx - 1]
imul ecx, edx
mov ebp, 0xffffffff
xor ecx, ebp
or ecx, 0xfffffffe
cmp ecx, ebp
sete bl
setne r8b
cmp edi, 0xa
setl al
cmp edi, 9
setg dl
cmp al, bl
jne 0x180008a39
or dl, r8b
xor dl, 1
jne 0x180008a39
jmp 0x180008a06
xor ecx, ecx
mov edx, 1
mov r8d, 0xce1f1c4e
mov r9d, 0xc5
call fcn.18000e5ac
call rax
mov edx, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
jmp 0x180008a70
xor ecx, ebp
cmp byte [r15 + 2], 0
jne 0x180008a70
cmp byte [r15], 0x56
jne 0x180008a70
mov dl, byte [r15 + 1]
lea ebp, [rdx - 0x42]
cmp bpl, 0xf
ja 0x180008a70
movzx eax, bpl
mov ebp, 0x808b
bt rbp, rax
jae 0x180008a70
add dl, 0xbf
movzx r14d, dl
jmp 0x1800094b0
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl bl
cmp edi, 9
setg al
cmp bl, dl
jne 0x180008a92
or al, cl
xor al, 1
je 0x180008b23
mov ecx, 0x130
call fcn.18000d227
mov r12, rax
mov dword [rax], 0x130
mov r14d, 1
xor ecx, ecx
mov edx, 1
mov r8d, 0x29f7579a
mov r9d, 0x61
call fcn.18000e5ac
mov ecx, 2
xor edx, edx
call rax
mov rsi, rax
xor ecx, ecx
mov edx, 1
mov r8d, 0xfd3d1fba
mov r9d, 0x5f
call fcn.18000e5ac
mov qword [rsp + 0x40], rsi
mov rcx, rsi
mov rdx, r12
call rax
mov esi, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ebp, [rsi - 1]
imul ebp, esi
mov ebx, 0xffffffff
xor ebp, ebx
or ebp, 0xfffffffe
cmp ebp, ebx
sete cl
cmp edi, 0xa
setl dl
test dl, cl
jne 0x180008b7f
xor dl, cl
jne 0x180008b7f
mov ecx, 0x130
call fcn.18000d227
mov rsi, rax
mov dword [rax], 0x130
xor ecx, ecx
mov edx, 1
mov r8d, 0x29f7579a
mov r9d, 0x61
call fcn.18000e5ac
mov ecx, 2
xor edx, edx
call rax
mov rbx, rax
xor ecx, ecx
mov edx, 1
mov r8d, 0xfd3d1fba
mov r9d, 0x5f
call fcn.18000e5ac
mov rcx, rbx
mov rdx, rsi
call rax
jmp 0x180008a92
test rax, rax
je 0x1800092a3
mov eax, 4
lea r14, [rsp + 0x20]
or r14, rax
mov rax, r12
add rax, 0x2c
mov qword [rsp + 0x38], rax
lea eax, [rsi - 1]
imul eax, esi
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
test cl, al
jne 0x180008bc3
xor cl, al
je 0x180008cc6
mov eax, dword [0x180018a00]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x1800189fc], 0xa
setl cl
test cl, al
jne 0x180008bef
xor cl, al
je 0x1800092ce
xor eax, eax
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], 0x7a3201bc
mov dword [rsp + 0x28], 0x71365989
mov dword [rsp + 0x2c], 0x9537798
cmp byte [rsp + 0x20], al
jne 0x180008c70
mov eax, dword [0x1800188e0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
cmp dword [0x1800188dc], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
mov ecx, 1
xor edx, edx
mov ebp, dword [rsp + rcx*4 + 0x20]
test al, al
je 0x180009299
mov ebx, ebp
not ebx
and ebx, 0x95377fd
and ebp, 0xf6ac8802
or ebp, ebx
mov dword [rsp + rcx*4 + 0x20], ebp
inc rdx
inc rcx
cmp rcx, 4
jne 0x180008c42
mov r8d, 9
mov rbp, qword [rsp + 0x38]
mov rcx, rbp
mov rdx, r14
call fcn.18000cf6f
mov esi, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ecx, [rsi - 1]
imul ecx, esi
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne r8b
sete cl
cmp edi, 9
setg bl
cmp edi, 0xa
setl dl
xor dl, cl
jne 0x180008d96
or bl, r8b
xor bl, 1
jne 0x180008d96
mov eax, dword [0x180018a00]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete al
cmp dword [0x1800189fc], 0xa
setl cl
test cl, al
jne 0x180008cf7
xor cl, al
je 0x180009301
xor eax, eax
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], 0x7a3201bc
mov dword [rsp + 0x28], 0x71365989
mov dword [rsp + 0x2c], 0x9537798
cmp byte [rsp + 0x20], al
jne 0x180008d7e
mov eax, dword [0x1800188e0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
cmp dword [0x1800188dc], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
mov ecx, 1
xor edx, edx
mov ebp, dword [rsp + rcx*4 + 0x20]
test al, al
je 0x18000929b
mov ebx, ebp
not ebx
and ebx, 0x26a0f6b
and ebp, 0xfd95f094
or ebp, ebx
xor ebp, 0xb397896
mov dword [rsp + rcx*4 + 0x20], ebp
inc rdx
inc rcx
cmp rcx, 4
jne 0x180008d4a
mov r8d, 9
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.18000cf6f
jmp 0x180008bc3
test eax, eax
je 0x18000939a
xor eax, eax
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], 0x30b9e068
mov dword [rsp + 0x28], 0x3299cb68
mov dword [rsp + 0x2c], 0x2392e625
mov dword [rsp + 0x30], 0x46ea830b
cmp byte [rsp + 0x20], al
jne 0x180008df5
xor eax, eax
mov ecx, dword [rsp + rax*4 + 0x24]
mov edx, ecx
not edx
and edx, 0x114696cf
and ecx, 0xeeb96930
or ecx, edx
xor ecx, 0x57ac15c4
mov dword [rsp + rax*4 + 0x24], ecx
inc rax
cmp rax, 4
jne 0x180008dcc
mov r8d, 0xc
mov rcx, rbp
mov rdx, r14
call fcn.18000cf6f
mov esi, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ecx, [rsi - 1]
imul ecx, esi
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne bl
sete r8b
cmp edi, 9
setg cl
cmp edi, 0xa
setl dl
xor dl, r8b
jne 0x180008ea5
or cl, bl
xor cl, 1
jne 0x180008ea5
xor eax, eax
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], 0x30b9e068
mov dword [rsp + 0x28], 0x3299cb68
mov dword [rsp + 0x2c], 0x2392e625
mov dword [rsp + 0x30], 0x46ea830b
cmp byte [rsp + 0x20], al
jne 0x180008e8f
xor eax, eax
mov ecx, dword [rsp + rax*4 + 0x24]
mov edx, ecx
not edx
and edx, 0x46ea830b
and ecx, 0xb9157cf4
or ecx, edx
mov dword [rsp + rax*4 + 0x24], ecx
inc rax
cmp rax, 4
jne 0x180008e6c
mov r8d, 0xc
mov rcx, rbp
mov rdx, r14
call fcn.18000cf6f
jmp 0x180008d9e
test eax, eax
je 0x1800093a2
xor eax, eax
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], 0xf121579
mov dword [rsp + 0x28], 0x2b392200
mov dword [rsp + 0x2c], 0x4e41472e
cmp byte [rsp + 0x20], al
jne 0x180008f39
mov eax, dword [0x1800188d8]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete cl
cmp dword [0x1800188d4], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
mov ecx, 1
xor edx, edx
mov ebp, dword [rsp + rcx*4 + 0x20]
test al, al
je 0x18000929d
mov ebx, ebp
not ebx
and ebx, 0x3af3ae75
and ebp, 0xc50c518a
or ebp, ebx
xor ebp, 0x74b2e95b
mov dword [rsp + rcx*4 + 0x20], ebp
inc rdx
inc rcx
cmp rcx, 4
jne 0x180008f05
mov r8d, 8
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.18000cf6f
mov esi, dword [0x180018a10]
mov edi, dword [0x180018a0c]
test eax, eax
je 0x1800093aa
lea eax, [rsi - 1]
imul eax, esi
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
test cl, al
jne 0x180008f82
xor cl, al
je 0x1800090da
mov eax, dword [0x1800189f0]
mov edx, dword [0x1800189ec]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
mov bl, 1
jne 0x180008fbe
or cl, al
xor cl, 1
je 0x180009334
mov byte [rsp + 0x20], 0
mov dword [rsp + 0x24], 0x6fe56e4e
mov dword [rsp + 0x28], 0x31cf7346
mov dword [rsp + 0x2c], 0x1fcd6566
mov eax, dword [0x1800188d0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne cl
cmp dword [0x1800188cc], 9
setg al
mov edx, eax
xor dl, cl
or al, cl
xor al, bl
or al, dl
cmp al, bl
jne 0x180009168
mov cl, byte [rsp + 0x20]
test al, al
je 0x180009168
test cl, cl
jne 0x180009090
mov eax, dword [0x1800188c8]
mov ecx, dword [0x1800188c4]
lea edx, [rax - 1]
imul edx, eax
mov eax, 0xffffffff
xor edx, eax
or edx, 0xfffffffe
cmp edx, eax
setne dl
sete bl
cmp ecx, 9
setg al
cmp ecx, 0xa
setl cl
xor cl, bl
or al, dl
xor al, 1
or al, cl
mov ecx, 1
xor edx, edx
mov ebp, dword [rsp + rcx*4 + 0x20]
test al, al
je 0x18000929f
mov ebx, ebp
not ebx
and ebx, 0x8fd10d93
and ebp, 0x702ef26c
or ebp, ebx
xor ebp, 0x90791090
mov dword [rsp + rcx*4 + 0x20], ebp
inc rdx
inc rcx
cmp rcx, 4
jne 0x18000905c
mov r8d, 0xb
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.18000cf6f
mov esi, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ecx, [rsi - 1]
imul ecx, esi
mov ebp, 0xffffffff
xor ecx, ebp
or ecx, 0xfffffffe
cmp ecx, ebp
sete cl
cmp edi, 0xa
setl dl
test dl, cl
jne 0x180009171
xor dl, cl
jne 0x180009171
mov eax, dword [0x1800189f0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x1800189ec], 0xa
setl cl
test cl, al
mov r8b, 1
jne 0x180009109
xor cl, al
je 0x180009367
mov byte [rsp + 0x20], 0
mov dword [rsp + 0x24], 0x6fe56e4e
mov dword [rsp + 0x28], 0x31cf7346
mov dword [rsp + 0x2c], 0x1fcd6566
mov eax, dword [0x1800188d0]
mov ecx, dword [0x1800188cc]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
setne dl
sete bl
cmp ecx, 9
setg al
cmp ecx, 0xa
setl cl
xor cl, bl
or al, dl
xor al, r8b
or al, cl
cmp al, r8b
je 0x18000920b
jmp 0x180009290
mov cl, byte [rsp + 0x20]
jmp 0x18000900d
test eax, eax
je 0x1800093b2
mov rsi, qword [rsp + 0x40]
xor ecx, ecx
mov edx, 1
mov r8d, 0x86fb7f30
mov r9d, 0x60
call fcn.18000e5ac
mov rcx, rsi
mov rdx, r12
call rax
mov esi, dword [0x180018a10]
mov edi, dword [0x180018a0c]
lea ecx, [rsi - 1]
imul ecx, esi
xor ecx, ebp
or ecx, 0xfffffffe
cmp ecx, ebp
setne bl
sete r8b
cmp edi, 9
setg cl
cmp edi, 0xa
setl dl
xor dl, r8b
jne 0x1800091fd
or cl, bl
xor cl, 1
jne 0x1800091fd
xor ecx, ecx
mov edx, 1
mov r8d, 0x86fb7f30
mov r9d, 0x60
call fcn.18000e5ac
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, r12
call rax
jmp 0x18000917e
test rax, rax
jne 0x180008ba1
jmp 0x1800093ba
mov cl, byte [rsp + 0x20]
test al, al
je 0x180009290
test cl, cl
jne 0x180009278
mov eax, dword [0x1800188c8]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne cl
cmp dword [0x1800188c4], 9
setg al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov ecx, 1
xor edx, edx
mov ebp, dword [rsp + rcx*4 + 0x20]
test al, al
je 0x1800092a1
mov ebx, ebp
not ebx
and ebx, 0x48bc129f
and ebp, 0xb743ed60
or ebp, ebx
xor ebp, 0x57140f9c
mov dword [rsp + rcx*4 + 0x20], ebp
inc rdx
inc rcx
cmp rcx, 4
jne 0x180009248
mov r8d, 0xb
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.18000cf6f
jmp 0x180008f82
mov cl, byte [rsp + 0x20]
jmp 0x18000920b
jmp 0x180009299
jmp 0x18000929b
jmp 0x18000929d
jmp 0x18000929f
jmp 0x1800092a1
xor ebp, ebx
test ebp, ebp
sete al
cmp edi, 0xa
setl cl
test cl, al
mov rsi, qword [rsp + 0x40]
jne 0x180009420
xor cl, al
jne 0x180009420
lea ebp, [r14 + 0x41]
jmp 0x1800093ce
xor eax, eax
mov ecx, 0x7a3201bc
mov edx, 0x71365989
mov ebp, 0x9537798
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
jmp 0x1800092df
xor eax, eax
mov ecx, 0x7a3201bc
mov edx, 0x71365989
mov ebp, 0x9537798
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
jmp 0x180009312
xor eax, eax
mov ecx, 0x6fe56e4e
mov edx, 0x31cf7346
mov ebp, 0x1fcd6566
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
jmp 0x180009345
xor eax, eax
mov ecx, 0x6fe56e4e
mov edx, 0x31cf7346
mov ebp, 0x1fcd6566
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
mov byte [rsp + 0x20], al
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], ebp
jmp 0x180009378
mov r14d, 2
jmp 0x1800093c0
mov r14d, 4
jmp 0x1800093c0
mov r14d, 8
jmp 0x1800093c0
mov r14d, 0x10
jmp 0x1800093c0
mov r14d, 1
lea ebp, [rsi - 1]
imul ebp, esi
and ebp, 1
jmp 0x1800092a5
xor ecx, ecx
mov edx, 1
mov r8d, 0x2db58ff7
mov r9d, 0x11
call fcn.18000e5ac
mov rcx, rsi
call rax
mov rcx, r12
call fcn.18000d001
mov byte [r15], 0x56
mov byte [r15 + 1], bpl
mov byte [r15 + 2], 0
xor ecx, ecx
mov edx, 1
mov r8d, 0x7328b7e5
mov r9d, 0x59
call fcn.18000e5ac
mov rcx, r13
mov rdx, r15
call rax
xor ecx, ecx
mov edx, 1
mov r8d, 0x2db58ff7
mov r9d, 0x11
call fcn.18000e5ac
mov rcx, rsi
call rax
mov rcx, r12
call fcn.18000d001
mov byte [r15], 0x56
lea ebp, [r14 + 0x41]
mov byte [r15 + 1], bpl
mov byte [r15 + 2], 0
xor ecx, ecx
mov edx, 1
mov r8d, 0x7328b7e5
mov r9d, 0x59
call fcn.18000e5ac
mov rcx, r13
mov rdx, r15
call rax
mov eax, dword [0x180018a10]
mov ecx, dword [0x180018a0c]
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 0x1800094b0
or cl, al
xor cl, 1
je 0x1800093ce
mov eax, r14d
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret