Function at 0x18000a87d
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x64], r8d
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rcx
xorps xmm0, xmm0
movups xmmword [rbp + 0x4c], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
mov eax, dword [0x1800e4d94]
cmp dword [0x1800e4d90], 0xa
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
mov edx, ecx
and dl, al
mov byte [rbp + 0x96], dl
xor cl, al
mov byte [rbp + 0x97], cl
mov al, byte [rbp + 0x97]
xor eax, eax
lea rcx, [0x180052cb0]
movsxd rdx, dword [rax + rcx]
xor dword [rbp + rdx*4 - 0x10], 0x1e27
add rax, 4
cmp rax, 0x68
jne 0x18000a900
mov eax, 0x8c0
xor ecx, ecx
mov qword [rbp - 0x48], rcx
lea r9, [0x180052de0]
lea r14, [0x180052e30]
lea r11, [0x180052e94]
lea r12, [0x180052e9c]
lea rsi, [0x180052c40]
lea r8, [0x180052d80]
lea r10, [0x180052e8c]
lea rdi, [0x180052e7c]
lea rbx, [0x180052e84]
lea r15, [0x180052ea8]
lea r13, [0x180052d20]
mov ecx, 0
mov qword [rbp - 0x30], rcx
xor ecx, ecx
mov qword [rbp - 0x28], rcx
xor ecx, ecx
mov qword [rbp - 0x20], rcx
xor ecx, ecx
mov qword [rbp - 0x40], rcx
xor ecx, ecx
mov qword [rbp - 0x80], rcx
xor ecx, ecx
mov qword [rbp - 0x78], rcx
xor ecx, ecx
mov qword [rbp - 0x70], rcx
xor ecx, ecx
mov qword [rbp - 0x68], rcx
xor ecx, ecx
mov qword [rbp - 0x60], rcx
xor ecx, ecx
mov qword [rbp - 0x38], rcx
xor ecx, ecx
mov qword [rbp - 0x18], rcx
cmp eax, 0x420a
jg 0x18000aa60
cmp eax, 0x1d99
jle 0x18000aacb
cmp eax, 0x2ff6
jle 0x18000ac16
cmp eax, 0x3148
jg 0x18000af0f
cmp eax, 0x2ff7
je 0x18000af98
cmp eax, 0x30a8
jne 0x18000a9b3
mov rax, qword [rbp + 0x78]
mov rax, qword [rax]
mov al, byte [rax]
mov rcx, qword [rbp + 0x70]
mov rcx, qword [rcx]
mov byte [rcx], al
mov rax, qword [rbp + 0x70]
mov rax, qword [rax]
inc rax
mov rcx, qword [rbp + 0x70]
mov qword [rcx], rax
mov rax, qword [rbp + 0x78]
mov rax, qword [rax]
inc rax
mov rcx, qword [rbp + 0x78]
mov qword [rcx], rax
mov rax, qword [rbp + 0x80]
mov dword [rax], 0x8a19a584
mov eax, dword [0x1800e4d74]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x42e0
mov ecx, 0x2440
cmove eax, ecx
cmp dword [0x1800e4d70], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x1c]
jmp 0x18000a9b3
cmp eax, 0x6e3e
jg 0x18000ab9b
cmp eax, 0x5067
jg 0x18000acf0
cmp eax, 0x45de
jg 0x18000af34
cmp eax, 0x420b
je 0x18000afae
cmp eax, 0x42aa
jne 0x18000a9b3
mov rax, qword [rbp + 0x88]
mov eax, dword [rax]
mov rcx, qword [rbp + 0x68]
cmp eax, dword [rcx]
mov eax, 0x3bfbfe23
mov ecx, 0xc2fc5f6a
cmovl eax, ecx
mov rcx, qword [rbp + 0x80]
mov dword [rcx], eax
mov eax, dword [rbp + 0x48]
mov ecx, 0x3d19
xor eax, ecx
jmp 0x18000a9b3
cmp eax, 0x8bf
jg 0x18000ad64
cmp eax, 0x24e
je 0x18000afdc
cmp eax, 0x348
je 0x18000b041
cmp eax, 0x363
jne 0x18000a9b3
mov r15, rdi
mov rdi, r9
mov eax, dword [0x1800e4d9c]
mov ecx, dword [0x1800e4d98]
cmp ecx, 9
setg dl
cmp ecx, 0xa
setl r13b
lea r9d, [rax + 1]
imul r9d, eax
test r9b, 1
sete al
mov r9d, r13d
and r9b, al
mov ebx, eax
and bl, dl
mov ecx, r13d
xor cl, al
xor cl, bl
or r13b, al
or al, dl
xor al, r13b
xor al, cl
xor al, 1
or al, r9b
cmp byte [rbp - 0x68], 0
jne 0x18000ab63
xor ecx, ecx
movsxd rdx, dword [rcx + r11]
xor dword [rbp + rdx*4 - 0x10], 0x476
add rcx, 4
cmp rcx, 8
jne 0x18000ab4d
test al, 1
mov eax, 0x3b2c
mov ecx, 0x3aad
cmovne eax, ecx
xor eax, dword [rbp + 0x20]
mov cl, 1
mov qword [rbp - 0x68], rcx
mov r9, rdi
mov rdi, r15
lea rbx, [0x180052e84]
lea r15, [0x180052ea8]
lea r13, [0x180052d20]
jmp 0x18000a9b3
cmp eax, 0x7986
jg 0x18000ade5
cmp eax, 0x6e3f
je 0x18000b0e2
cmp eax, 0x72dc
je 0x18000b138
cmp eax, 0x735d
jne 0x18000a9b3
mov rax, qword [rbp + 0x88]
mov eax, dword [rax]
inc eax
mov rcx, qword [rbp + 0x88]
mov dword [rcx], eax
mov rax, qword [rbp + 0x80]
mov dword [rax], 0x252911f
mov eax, dword [0x1800e4dbc]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x3f5a
mov ecx, 0x36eb
cmove eax, ecx
cmp dword [0x1800e4db8], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x24]
jmp 0x18000a9b3
cmp eax, 0x1d9a
je 0x18000b168
cmp eax, 0x1dcd
je 0x18000b177
cmp eax, 0x2fb4
jne 0x18000a9b3
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x88], rax
mov rax, qword [rbp + 0x68]
mov ecx, dword [rbp + 0x64]
mov dword [rax], ecx
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x58]
mov qword [rax], rcx
mov rax, qword [rbp + 0x70]
mov rcx, qword [rbp - 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x88]
mov rax, qword [rbp + 0x88]
mov dword [rax], 0
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x80]
mov dword [rax], 0x252911f
mov eax, dword [rbp + 0x3c]
mov ecx, 0x6017
xor eax, ecx
jmp 0x18000a9b3
cmp eax, 0x5068
je 0x18000b1c7
cmp eax, 0x52f5
je 0x18000b2be
cmp eax, 0x5c3b
jne 0x18000a9b3
mov rax, qword [rbp + 0x88]
mov eax, dword [rax]
mov rcx, qword [rbp + 0x68]
cmp eax, dword [rcx]
mov eax, 0x3bfbfe23
mov ecx, 0xc2fc5f6a
cmovl eax, ecx
mov rcx, qword [rbp + 0x80]
mov dword [rcx], eax
mov eax, dword [0x1800e4d7c]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x2388
mov ecx, 0x1a4f
cmove eax, ecx
cmp dword [0x1800e4d78], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x14]
jmp 0x18000a9b3
cmp eax, 0x8c0
je 0x18000b1f5
cmp eax, 0x98e
je 0x18000b239
cmp eax, 0x1ade
jne 0x18000a9b3
mov eax, dword [0x1800e4d58]
cmp dword [0x1800e4d5c], 0xa
setl cl
mov edx, eax
not edx
add edx, 0xf18569a
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x60], 0
jne 0x18000adc8
xor ecx, ecx
movsxd rdx, dword [rcx + r12]
xor dword [rbp + rdx*4 - 0x10], 0x5039
add rcx, 4
cmp rcx, 0xc
jne 0x18000adb2
test al, al
mov eax, 0x6607
mov ecx, 0x27cf
cmovne eax, ecx
xor eax, dword [rbp + 0x28]
mov cl, 1
mov qword [rbp - 0x60], rcx
jmp 0x18000a9b3
cmp eax, 0x7987
je 0x18000b28c
cmp eax, 0x7b6d
je 0x18000b324
cmp eax, 0x7e16
jne 0x18000a9b3
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x88], rax
mov rax, qword [rbp + 0x68]
mov ecx, dword [rbp + 0x64]
mov dword [rax], ecx
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x58]
mov qword [rax], rcx
mov rax, qword [rbp + 0x70]
mov rcx, qword [rbp - 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x88]
mov rax, qword [rbp + 0x88]
mov dword [rax], 0
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x80]
mov dword [rax], 0x252911f
mov ecx, dword [0x1800e4dac]
cmp dword [0x1800e4da8], 0xa
setl al
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
sete cl
mov edx, eax
or dl, cl
xor al, cl
or al, dl
cmp byte [rbp - 0x30], 0
jne 0x18000aef2
xor ecx, ecx
movsxd rdx, dword [rcx + r13]
xor dword [rbp + rdx*4 - 0x10], 0x52f6
add rcx, 4
cmp rcx, 0x5c
jne 0x18000aedc
test al, al
mov eax, 0x31b5
mov ecx, 0x178f
cmovne eax, ecx
xor eax, dword [rbp - 8]
mov cl, 1
mov qword [rbp - 0x30], rcx
jmp 0x18000a9b3
cmp eax, 0x3149
je 0x18000b089
cmp eax, 0x34c1
jne 0x18000a9b3
mov eax, dword [rbp + 0x58]
mov ecx, 0x7f35
xor eax, ecx
jmp 0x18000a9b3
cmp eax, 0x489b
jne 0x18000b317
cmp dword [0x1800e4d8c], 0xa
mov eax, dword [0x1800e4d88]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x80], 0
jne 0x18000af7b
xor ecx, ecx
movsxd rdx, dword [rcx + rdi]
xor dword [rbp + rdx*4 - 0x10], 0x20ad
add rcx, 4
cmp rcx, 8
jne 0x18000af65
test al, al
mov eax, 0x546a
mov ecx, 0xbfb
cmovne eax, ecx
xor eax, dword [rbp + 8]
mov cl, 1
mov qword [rbp - 0x80], rcx
jmp 0x18000a9b3
mov rax, qword [rbp + 0x88]
mov eax, dword [rbp + 0x54]
mov ecx, 0x77f6
xor eax, ecx
jmp 0x18000a9b3
mov eax, dword [0x1800e4d64]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x74c7
mov ecx, 0x1230
cmove eax, ecx
cmp dword [0x1800e4d60], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0xc]
jmp 0x18000a9b3
mov rax, qword [rbp + 0x80]
mov eax, dword [rax]
mov dword [rbp + 0x60], eax
cmp dword [0x1800e4d80], 0xa
mov eax, dword [0x1800e4d84]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x20], 0
jne 0x18000b024
xor ecx, ecx
movsxd rdx, dword [rcx + r9]
xor dword [rbp + rdx*4 - 0x10], 0x2297
add rcx, 4
cmp rcx, 0x50
jne 0x18000b00e
test al, al
mov eax, 0x3cf5
mov ecx, 0x463a
cmovne eax, ecx
xor eax, dword [rbp]
mov cl, 1
mov qword [rbp - 0x20], rcx
jmp 0x18000a9b3
mov eax, dword [rbp + 0x60]
cmp byte [rbp - 0x40], 0
jne 0x18000b062
xor ecx, ecx
movsxd rdx, dword [rcx + r14]
xor dword [rbp + rdx*4 - 0x10], 0x2e15
add rcx, 4
cmp rcx, 0x4c
jne 0x18000b04c
mov cl, 1
mov qword [rbp - 0x40], rcx
cmp eax, 0x252911e
jg 0x18000b2a7
cmp eax, 0x8a19a584
je 0x18000aaf7
cmp eax, 0xc2fc5f6a
jne 0x18000af3f
cmp dword [0x1800e4da4], 0xa
mov eax, dword [0x1800e4da0]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x70], 0
jne 0x18000b0c5
xor ecx, ecx
movsxd rdx, dword [rcx + r10]
xor dword [rbp + rdx*4 - 0x10], 0x16dd
add rcx, 4
cmp rcx, 8
jne 0x18000b0af
test al, al
mov eax, 0x543d
mov ecx, 0x7958
cmovne eax, ecx
xor eax, dword [rbp + 0x18]
mov cl, 1
mov qword [rbp - 0x70], rcx
jmp 0x18000a9b3
mov rax, qword [rbp + 0x88]
mov eax, dword [0x1800e5268]
cmp dword [0x1800e526c], 0xa
setl cl
mov edx, eax
not edx
add edx, 0x674edc80
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x38], 0
jne 0x18000b11b
xor dword [rbp + 0x30], 0x3e31
test al, al
mov eax, 0x363e
mov ecx, 0x5c16
cmovne eax, ecx
xor eax, dword [rbp + 0x2c]
mov cl, 1
mov qword [rbp - 0x38], rcx
jmp 0x18000a9b3
mov rax, qword [rbp + 0x88]
mov eax, dword [rax]
inc eax
mov rcx, qword [rbp + 0x88]
mov dword [rcx], eax
mov rax, qword [rbp + 0x80]
mov dword [rax], 0x252911f
mov eax, dword [rbp + 0x50]
mov ecx, 0x3edb
xor eax, ecx
jmp 0x18000a9b3
mov eax, dword [rbp + 0x44]
mov ecx, 0x2b56
xor eax, ecx
jmp 0x18000a9b3
mov rax, qword [rbp + 0x78]
mov rax, qword [rax]
mov al, byte [rax]
mov rcx, qword [rbp + 0x70]
mov rcx, qword [rcx]
mov byte [rcx], al
mov rax, qword [rbp + 0x70]
mov rax, qword [rax]
inc rax
mov rcx, qword [rbp + 0x70]
mov qword [rcx], rax
mov rax, qword [rbp + 0x78]
mov rax, qword [rax]
inc rax
mov rcx, qword [rbp + 0x78]
mov qword [rcx], rax
mov rax, qword [rbp + 0x80]
mov dword [rax], 0x8a19a584
mov eax, dword [rbp + 0x4c]
mov ecx, 0x6f85
xor eax, ecx
jmp 0x18000a9b3
mov eax, dword [0x1800e5270]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x1b9c
mov ecx, 0x26d3
cmove eax, ecx
cmp dword [0x1800e5274], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x38]
jmp 0x18000a9b3
mov al, byte [rbp + 0x96]
or al, byte [rbp + 0x97]
cmp byte [rbp - 0x48], 0
jne 0x18000b21c
xor ecx, ecx
movsxd rdx, dword [rcx + rsi]
xor byte [rbp + rdx*4 - 0x10], 0x26
add rcx, 4
cmp rcx, 0x64
jne 0x18000b209
test al, 1
mov eax, 0x3193
mov ecx, 0x6031
cmovne eax, ecx
xor eax, dword [rbp - 0x10]
mov cl, 1
mov qword [rbp - 0x48], rcx
jmp 0x18000a9b3
mov ecx, dword [0x1800e4db4]
cmp dword [0x1800e4db0], 9
setg dl
lea eax, [rcx + 1]
imul eax, ecx
and al, dl
cmp byte [rbp - 0x28], 0
jne 0x18000b26f
xor ecx, ecx
movsxd rdx, dword [rcx + r8]
xor dword [rbp + rdx*4 - 0x10], 0x985
add rcx, 4
cmp rcx, 0x58
jne 0x18000b259
test al, al
mov eax, 0x4eb9
mov ecx, 0x3570
cmovne eax, ecx
xor eax, dword [rbp - 4]
mov cl, 1
mov qword [rbp - 0x28], rcx
jmp 0x18000a9b3
mov rax, qword [rbp + 0x80]
mov eax, dword [rax]
mov dword [rbp + 0x60], eax
mov eax, dword [rbp + 0x40]
mov ecx, 0x473c
xor eax, ecx
jmp 0x18000a9b3
cmp eax, 0x252911f
je 0x18000b2be
cmp eax, 0x3bfbfe23
je 0x18000ad85
jmp 0x18000af3f
cmp dword [0x1800e4d6c], 0xa
mov eax, dword [0x1800e4d68]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x78], 0
jne 0x18000b2fa
xor ecx, ecx
movsxd rdx, dword [rcx + rbx]
xor dword [rbp + rdx*4 - 0x10], 0x28d2
add rcx, 4
cmp rcx, 8
jne 0x18000b2e4
test al, al
mov eax, 0xb5a
mov ecx, 0x15cb
cmovne eax, ecx
xor eax, dword [rbp + 0x10]
mov cl, 1
mov qword [rbp - 0x78], rcx
jmp 0x18000a9b3
cmp eax, 0x45df
jne 0x18000a9b3
jmp 0x18000b379
cmp dword [0x1800e5288], 0xa
mov eax, dword [0x1800e528c]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x18], 0
jne 0x18000b360
xor ecx, ecx
movsxd rdx, dword [rcx + r15]
xor dword [rbp + rdx*4 - 0x10], 0x66ad
add rcx, 4
cmp rcx, 8
jne 0x18000b34a
test al, al
mov eax, 0x7d31
mov ecx, 0x1998
cmovne eax, ecx
xor eax, dword [rbp + 0x34]
mov cl, 1
jmp 0x18000a9af
lea rsp, [rbp + 0x98]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret