Function at 0x180004ec3
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp - 0x68], r9
mov qword [rbp - 0x60], r8
mov dword [rbp - 0x20], edx
mov qword [rbp - 0x48], rcx
mov eax, dword [0x1800189b0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete al
cmp dword [0x1800189ac], 0xa
setl cl
test cl, al
jne 0x180004f18
xor cl, al
je 0x180005007
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov r13, rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov r15, rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov rcx, rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov r14, rsp
mov eax, 0x30
call fcn.1800151d0
sub rsp, rax
mov r12, rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov qword [rbp], rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0x20
call fcn.1800151d0
sub rsp, rax
mov qword [rbp - 0x10], rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov qword [rbp - 0x38], rsp
xor eax, eax
mov qword [r13], rax
mov qword [r15], rax
mov qword [rbp - 0x18], rcx
mov qword [rcx], rax
sub rsp, 0x20
mov rcx, r13
mov rdx, r15
call fcn.18000442d
add rsp, 0x20
mov ecx, dword [0x1800189b0]
mov esi, dword [0x1800189ac]
lea edx, [rcx - 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
and edi, edx
setne r8b
sete dl
cmp esi, 9
setg cl
cmp esi, 0xa
setl bl
xor bl, dl
jne 0x180005041
or cl, r8b
xor cl, 1
jne 0x180005041
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov rcx, rsp
mov eax, 0x10
call fcn.1800151d0
sub rsp, rax
mov rdx, rsp
xor eax, eax
mov qword [rcx], rax
mov qword [rdx], rax
sub rsp, 0x20
call fcn.18000442d
add rsp, 0x20
jmp 0x180004f18
xor r8d, r8d
test al, al
je 0x180005316
mov dword [r14], r8d
sub rsp, 0x20
mov ecx, 0x800
xor edi, edi
call fcn.18000d227
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov ecx, 2
mov rdx, rax
mov r8, r14
call fcn.18000479b
add rsp, 0x20
cmp dword [r14], edi
je 0x1800050c6
mov eax, dword [0x1800189b0]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete cl
cmp dword [0x1800189ac], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
test al, al
je 0x1800050b0
mov eax, dword [rsi + 8]
mov edi, dword [rsi + 0xc]
cmp dword [rsi], 0x31415352
jne 0x1800050d5
add edi, eax
jmp 0x1800050f1
mov r13, qword [r13]
xor edi, edi
mov r14, qword [rbp - 0x18]
jmp 0x1800052d8
mov ecx, dword [rsi + 0x10]
add edi, ecx
add edi, dword [rsi + 0x14]
mov edx, 0xc2173ab0
sub edx, edi
add edx, edx
add eax, ecx
sub eax, edx
add eax, 0x842e7560
mov edi, eax
mov r14, qword [rbp - 0x18]
xor eax, eax
mov byte [r12], al
mov dword [r12 + 4], 0x6c640fa6
mov dword [r12 + 8], 0x6c710fb5
mov dword [r12 + 0xc], 0x6c7b0fa1
mov dword [r12 + 0x10], 0x6c670fb8
mov dword [r12 + 0x14], 0x6c7e0fa6
mov dword [r12 + 0x18], 0x6c760fa2
mov dword [r12 + 0x1c], 0x6c720fa0
mov dword [r12 + 0x20], 0x6c7b0fb6
mov dword [r12 + 0x24], 0x6c750fbb
mov dword [r12 + 0x28], 0x6c370ff4
cmp byte [r12], al
jne 0x18000518e
mov eax, 1
xor ecx, ecx
mov edx, dword [r12 + rax*4]
mov ebx, edx
not ebx
and ebx, 0x78f8789e
and edx, 0x87078761
or edx, ebx
xor edx, 0x14cf776a
mov dword [r12 + rax*4], edx
inc rcx
inc rax
cmp rax, 0xb
jne 0x180005162
add edi, 0x18
add r12, 4
mov r13, qword [r13]
mov eax, dword [0x1800189d8]
mov edx, dword [0x1800189d4]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
jne 0x1800051d4
or cl, al
xor cl, 1
je 0x18000524e
sub rsp, 0x20
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x4b408f42
mov r9d, 0x215
call fcn.18000e5ac
sub rsp, 0x20
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x30], 0
mov rcx, r13
xor edx, edx
mov r8, r12
mov r9, r14
call rax
add rsp, 0x40
mov ecx, dword [0x1800189d8]
mov edx, dword [0x1800189d4]
lea ebx, [rcx - 1]
imul ebx, ecx
mov ecx, ebx
xor ecx, 0xfffffffe
test ecx, ebx
sete bl
setne r8b
cmp edx, 0xa
setl cl
cmp edx, 9
setg dl
cmp cl, bl
jne 0x180005295
or dl, r8b
xor dl, 1
jne 0x180005295
sub rsp, 0x20
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x4b408f42
mov r9d, 0x215
call fcn.18000e5ac
sub rsp, 0x20
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x30], 0
mov rcx, r13
xor edx, edx
mov r8, r12
mov r9, r14
call rax
add rsp, 0x40
jmp 0x1800051d4
test eax, eax
je 0x18000534b
mov ecx, dword [0x1800189b0]
mov eax, dword [0x1800189ac]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
xor edi, edi
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl bl
cmp eax, 9
setg al
cmp bl, dl
jne 0x1800052d8
or al, cl
xor al, 1
jne 0x1800052d8
jmp 0x1800052d6
mov r8, qword [r14]
mov rdx, qword [r15]
sub rsp, 0x20
mov rcx, r13
call fcn.180004658
mov rcx, rsi
call fcn.18000d001
add rsp, 0x20
mov eax, edi
xor al, 0xfe
test al, dil
setne r8b
mov eax, dword [0x1800189b0]
mov esi, dword [0x1800189ac]
lea edi, [rax - 1]
imul edi, eax
and edi, 1
test edi, edi
sete dl
setne al
cmp esi, 0xa
setl bl
cmp esi, 9
setg cl
cmp bl, dl
jne 0x180005337
or cl, al
xor cl, 1
jne 0x180005337
jmp 0x180005335
mov eax, r8d
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp - 0x30], rsi
xor eax, eax
mov ecx, dword [0x1800189a0]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov rcx, qword [rbp]
mov dword [rcx], eax
sete cl
cmp dword [0x18001899c], 0xa
mov r12, qword [rbp - 0x40]
mov dword [r12], eax
setl r8b
mov eax, r8d
and al, cl
xor r8b, cl
or r8b, al
mov r9d, dword [0x180018960]
mov edi, dword [0x18001895c]
cmp r8b, 1
mov rsi, qword [rbp - 0x10]
jne 0x180005402
mov byte [rsi], 0
lea eax, [r9 - 1]
imul eax, r9d
mov ebx, 0xffffffff
xor eax, ebx
or eax, 0xfffffffe
cmp eax, ebx
setne al
sete cl
cmp edi, 9
setg bl
cmp edi, 0xa
setl dl
xor dl, cl
jne 0x1800053da
or bl, al
xor bl, 1
je 0x18000545e
mov dword [rsi + 4], 0x129d5c66
mov dword [rsi + 8], 0x12b45c54
mov dword [rsi + 0xc], 0x12965c48
mov dword [rsi + 0x10], 0x128c5c4a
mov dword [rsi + 0x14], 0x12f85c45
test r8b, r8b
jne 0x180005462
mov byte [rsi], 0
lea eax, [r9 - 1]
imul eax, r9d
mov ecx, 0xffffffff
xor eax, ecx
or eax, 0xfffffffe
cmp eax, ecx
setne al
sete cl
cmp edi, 9
setg bl
cmp edi, 0xa
setl dl
xor dl, cl
jne 0x180005436
or bl, al
xor bl, 1
je 0x180005460
mov dword [rsi + 4], 0x129d5c66
mov dword [rsi + 8], 0x12b45c54
mov dword [rsi + 0xc], 0x12965c48
mov dword [rsi + 0x10], 0x128c5c4a
mov dword [rsi + 0x14], 0x12f85c45
jmp 0x1800053a2
jmp 0x18000545e
jmp 0x180005460
cmp byte [rsi], 0
jne 0x1800054c7
mov eax, dword [0x180018900]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, 0xffffffff
xor ecx, eax
or ecx, 0xfffffffe
cmp ecx, eax
sete cl
cmp dword [0x1800188fc], 0xa
setl al
mov edx, eax
and dl, cl
xor al, cl
or al, dl
mov ecx, 1
xor edx, edx
mov edi, dword [rsi + rcx*4]
test al, al
je 0x180005567
mov ebx, edi
not ebx
and ebx, 0x12f85c2d
and edi, 0xed07a3d2
or edi, ebx
mov dword [rsi + rcx*4], edi
inc rdx
inc rcx
cmp rcx, 6
jne 0x18000549b
add rsi, 4
mov rdi, qword [r14]
sub rsp, 0x20
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x5a9dfacd
mov rbx, rsi
mov r9d, 0x20f
call fcn.18000e5ac
sub rsp, 0x10
mov rcx, qword [rbp]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], 0
mov rcx, rdi
mov rdx, rsi
mov r8, r12
mov r9d, 4
call rax
add rsp, 0x30
test eax, eax
je 0x180005569
mov ecx, dword [0x1800189b0]
mov eax, dword [0x1800189ac]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
xor edi, edi
mov rsi, qword [rbp - 0x30]
test ecx, ecx
setne r8b
sete r9b
cmp eax, 9
setg bl
cmp eax, 0xa
setl dl
xor dl, r9b
jne 0x1800052b8
or bl, r8b
xor bl, 1
jne 0x1800052b8
jmp 0x180005565
jmp 0x180005567
mov ebx, dword [r12]
shr ebx, 3
mov dword [r12], ebx
mov ecx, dword [rbp - 0x20]
mov eax, ecx
xor edx, edx
div ebx
mov dword [rbp - 4], 0
cmp ebx, ecx
ja 0x1800058a7
mov edi, eax
imul eax, ebx
cmp eax, ecx
jne 0x1800058a7
mov al, 1
test al, al
je 0x1800058a7
add ebx, 0xfffffff5
mov ecx, edi
mov dword [rbp - 0x24], ebx
imul ecx, ebx
sub rsp, 0x20
call fcn.18000d227
add rsp, 0x20
mov rdx, rax
mov eax, edi
mov qword [rbp - 0x50], rax
mov r11d, dword [0x1800189b0]
mov esi, dword [0x1800189ac]
xor eax, eax
xor ecx, ecx
mov qword [rbp], rcx
xor ecx, ecx
mov dword [rbp - 4], 0
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x58], rax
lea eax, [r11 - 1]
imul eax, r11d
mov ebx, 0xffffffff
xor eax, ebx
or eax, 0xfffffffe
cmp eax, ebx
sete r8b
cmp esi, 0xa
setl al
mov ecx, ecx
mov rbx, qword [rbp]
mov ebx, ebx
mov qword [rbp], rbx
test al, r8b
mov qword [rbp - 0x10], rcx
jne 0x180005626
xor al, r8b
je 0x1800056fb
mov rsi, qword [rbp - 0x38]
xor eax, eax
mov dword [rsi], eax
lea rbx, [rdx + rcx]
mov rax, qword [rbp - 0x40]
mov r12d, dword [rax]
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp]
lea rdi, [rax + rcx]
mov rax, qword [rbp - 0x18]
mov r14, qword [rax]
sub rsp, 0x20
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x8e46a488
mov r9d, 0x21a
call fcn.18000e5ac
sub rsp, 0x30
mov qword [rsp + 0x40], rsi
mov ecx, dword [rbp - 0x24]
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rbx
mov ecx, 0
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x48], 2
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, rdi
mov r8d, r12d
mov r12, qword [rbp - 0x40]
xor r9d, r9d
call rax
add rsp, 0x50
mov r11d, dword [0x1800189b0]
mov esi, dword [0x1800189ac]
lea ebx, [r11 - 1]
imul ebx, r11d
mov edi, ebx
xor edi, 0xfffffffe
and edi, ebx
sete r9b
setne r8b
cmp esi, 0xa
setl r10b
cmp esi, 9
setg bl
cmp r10b, r9b
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
jne 0x180005788
or bl, r8b
xor bl, 1
jne 0x180005788
mov rsi, qword [rbp - 0x38]
xor eax, eax
mov dword [rsi], eax
lea rbx, [rdx + rcx]
mov r14d, dword [r12]
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp]
lea r12, [rax + rcx]
mov rax, qword [rbp - 0x18]
mov rdi, qword [rax]
sub rsp, 0x20
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x8e46a488
mov r9d, 0x21a
call fcn.18000e5ac
sub rsp, 0x30
mov qword [rsp + 0x40], rsi
mov ecx, dword [rbp - 0x24]
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rbx
mov ecx, 0
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x48], 2
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov rdx, r12
mov r8d, r14d
xor r9d, r9d
call rax
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
add rsp, 0x50
jmp 0x180005626
test eax, eax
jne 0x180005893
mov rax, qword [rbp]
add eax, dword [r12]
mov qword [rbp], rax
mov rax, qword [rbp - 0x38]
add ecx, dword [rax]
test rdx, rdx
mov qword [rbp - 0x10], rcx
je 0x18000584f
mov r14, qword [rbp - 0x60]
mov qword [r14], rdx
mov r10, qword [rbp - 0x68]
mov dword [r10], ecx
mov r11d, dword [0x1800189b0]
mov esi, dword [0x1800189ac]
lea eax, [r11 - 1]
imul eax, r11d
mov ecx, 0xffffffff
xor eax, ecx
or eax, 0xfffffffe
mov edi, eax
xor edi, ecx
cmp eax, ecx
sete r9b
setne r8b
cmp esi, 0xa
setl al
cmp esi, 9
setg bl
mov cl, 1
mov dword [rbp - 4], ecx
cmp al, r9b
jne 0x18000584f
or bl, r8b
xor bl, 1
mov r8, qword [rbp - 0x20]
mov r9, qword [rbp - 0x10]
jne 0x18000584f
mov qword [r14], r8
mov dword [r10], r9d
mov r11d, dword [0x1800189b0]
mov esi, dword [0x1800189ac]
lea eax, [r11 - 1]
imul eax, r11d
mov edi, eax
xor edi, 0xfffffffe
and edi, eax
sete dl
setne al
cmp esi, 0xa
setl cl
cmp esi, 9
setg bl
cmp cl, dl
jne 0x18000584f
or bl, al
xor bl, 1
je 0x180005810
test edi, edi
sete r9b
setne r8b
cmp esi, 0xa
setl al
cmp esi, 9
setg bl
cmp al, r9b
mov r14, qword [rbp - 0x18]
jne 0x180005876
or bl, r8b
xor bl, 1
je 0x180005891
mov rax, qword [rbp - 0x58]
inc rax
cmp rax, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x10]
jb 0x1800055e6
jmp 0x1800058a7
jmp 0x180005891
sub rsp, 0x20
mov rcx, rdx
call fcn.18000d001
add rsp, 0x20
mov r14, qword [rbp - 0x18]
mov ecx, dword [0x1800189b0]
mov eax, dword [0x1800189ac]
lea edx, [rcx - 1]
imul edx, ecx
mov ebx, 0xffffffff
xor edx, ebx
or edx, 0xfffffffe
mov ecx, edx
xor ecx, ebx
cmp edx, ebx
sete r9b
setne r8b
cmp eax, 0xa
setl dl
cmp eax, 9
setg bl
cmp dl, r9b
jne 0x1800058f7
or bl, r8b
xor bl, 1
mov rsi, qword [rbp - 0x30]
mov edi, dword [rbp - 4]
jne 0x18000553a
jmp 0x1800058f5
mov rsi, qword [rbp - 0x30]
mov edi, dword [rbp - 4]
jmp 0x18000553a