Function at 0x1404252d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
mov ebx, r9d
mov ebp, r8d
mov rsi, rcx
mov rax, qword [0x140682ee8]
xor rax, rsp
mov qword [rsp + 0x440], rax
xor r15d, r15d
mov byte [rsp + 0x35], dl
test dl, dl
jne 0x140425312
test bpl, bpl
je 0x140425ee9
mov r14, qword [0x140696b78]
mov rdi, qword [r14 + 0x368]
test rdi, rdi
je 0x140425ee9
xor r15d, r15d
lea rcx, [rsp + 0x310]
mov r8d, 0x130
xor edx, edx
call fcn.140512320
lea rcx, [rsp + 0xd8]
mov r8d, 0x238
xor edx, edx
call fcn.140512320
mov dword [rsp + 0x310], 0x130
mov dword [rsp + 0xd8], 0x238
mov eax, dword [0x14066e1c0]
lea ecx, [rax + 0x2e704410]
mov edx, eax
xor edx, 0x2e70440e
and eax, 0x2e70440e
lea edx, [rdx + rax*2]
mov rax, rdi
call qword [0x1405fc400]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140425d44
mov rax, qword [r14 + 0x370]
lea rdx, [rsp + 0x310]
mov rcx, rdi
call qword [0x1405fc400]
cmp eax, 1
jne 0x140425cff
mov byte [rsp + 0x36], bl
xor bl, 1
mov byte [rsp + 0x37], bl
lea r12, [rsi + 0x520]
lea r15, [rsp + 0x33c]
lea r13, [rsi + 0x4f0]
lea rbx, [rsi + 0x508]
lea rax, [rsi + 0xc8]
mov qword [rsp + 0x40], rax
lea rax, [rsi + 0x48]
mov qword [rsp + 0xa8], rax
lea rax, [rsi + 0x88]
mov qword [rsp + 0x70], rax
lea rax, [rsi + 0x550]
mov qword [rsp + 0xa0], rax
lea rax, [rsi + 0x580]
mov qword [rsp + 0x90], rax
lea rax, [rsi + 0x5b0]
mov qword [rsp + 0x80], rax
lea rax, [rsi + 8]
mov qword [rsp + 0x98], rax
lea rax, [rsi + 0x568]
mov qword [rsp + 0x88], rax
lea rax, [rsi + 0x598]
mov qword [rsp + 0x78], rax
lea rax, [rsi + 0x610]
mov qword [rsp + 0xb8], rax
lea rax, [rsi + 0x620]
mov qword [rsp + 0xb0], rax
lea rax, [rsi + 0xd8]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x34], bpl
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rdi
jmp 0x1404254c6
mov rax, qword [r14 + 0x378]
mov rcx, rdi
lea rdx, [rsp + 0x310]
call qword [0x1405fc400]
cmp eax, 1
mov r12, qword [rsp + 0x68]
jne 0x140425cff
mov eax, dword [0x140696c5c]
nop dword [rax]
mov eax, dword [0x140696c5c]
cmp eax, 0x46
jg 0x1404254d0
movzx eax, byte [rsp + 0x37]
cmp byte [rsp + 0x35], 0
je 0x140425544
movzx eax, byte [rsp + 0x36]
test al, al
je 0x140425500
xor eax, eax
test al, al
je 0x140425960
jmp 0x14042597c
mov r12d, dword [rsp + 0x318]
mov rdi, qword [rsi + 0x610]
mov rsi, qword [rdi + 8]
cmp byte [rsi + 0x19], 0
mov rax, rdi
je 0x140425603
cmp byte [rax + 0x19], 0
jne 0x14042552c
cmp r12d, dword [rax + 0x1c]
jae 0x14042552f
mov rax, rdi
cmp rax, rdi
setne al
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
movzx ebp, byte [rsp + 0x34]
test bpl, bpl
je 0x1404255c0
test al, al
mov r12, qword [rsp + 0x60]
je 0x1404255cd
mov eax, dword [rsp + 0x318]
mov rcx, qword [rsi + 0x620]
mov r8, qword [rcx + 8]
cmp byte [r8 + 0x19], 0
mov rdx, rcx
jne 0x1404255a1
mov rdx, rcx
nop word cs:[rax + rax]
lea r9, [r8 + 0x10]
cmp dword [r8 + 0x1c], eax
cmovae rdx, r8
cmovae r9, r8
mov r8, qword [r9]
movzx r9d, byte [r8 + 0x19]
add r9b, byte [0x140696c60]
je 0x140425580
cmp byte [rdx + 0x19], 0
jne 0x1404255cd
mov r8d, dword [0x140696c5c]
cmp r8d, 0x10
mov r11b, 1
jg 0x1404256a0
jmp 0x140425668
test al, al
mov r12, qword [rsp + 0x60]
jne 0x140425c6b
mov rcx, r15
mov rdx, qword [rsp + 0x68]
call fcn.140423370
test al, al
jne 0x140425c6b
mov eax, dword [0x140696c58]
mov ecx, dword [0x14066e1c0]
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
jne 0x1404256d0
jmp 0x1404256b0
mov rbp, rdi
jmp 0x140425620
mov rsi, qword [rcx]
cmp byte [rsi + 0x19], 0
mov rbp, rax
jne 0x140425520
xor eax, eax
test al, al
jne 0x140425649
nop word cs:[rax + rax]
cmp dword [rsi + 0x1c], r12d
mov rax, rbp
cmovae rax, rsi
lea rcx, [rsi + 0x10]
cmovae rcx, rsi
xor edx, edx
test dl, dl
je 0x140425610
mov ecx, 0x51
call fcn.1404ca39c
mov qword [0x140696c48], rax
lea rcx, [0x140428760]
call fcn.1404ea090
jmp 0x140425630
cmp eax, dword [rdx + 0x1c]
setb r8b
cmp rdx, rcx
sete r9b
mov r10d, dword [0x140696c5c]
cmp r10d, 0x5f
jge 0x1404256a0
or r8b, r9b
jne 0x1404255cd
jmp 0x140425c6b
test r11b, r11b
je 0x1404256a0
jmp 0x140425668
mov eax, dword [0x140696c58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140425710
nop word cs:[rax + rax]
mov ecx, dword [0x140696c58]
mov r8d, dword [0x14066e1c0]
mov eax, r8d
xor eax, 0x2e70440f
mov edx, r8d
and edx, 0x2e70440f
lea edx, [rax + rdx*2]
mov eax, ecx
sub eax, edx
imul eax, ecx
add r8d, 0x2e704410
xor edx, edx
div r8d
test edx, edx
jne 0x1404256d0
jmp 0x1404256b0
cmp byte [rsp + 0x35], 0
movzx ebp, byte [rsp + 0x34]
jne 0x1404259b6
test bpl, bpl
je 0x140425795
mov ebp, 0x2e70440e
nop word [rax + rax]
mov eax, dword [0x140696c5c]
cmp eax, 0x51
jg 0x140425761
mov rcx, r15
mov rdx, rbx
call fcn.1404238c0
mov ecx, dword [0x140696c58]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x14066e1c0]
add ecx, ebp
cmp edx, ecx
je 0x14042578d
mov rcx, r15
mov rdx, rbx
call fcn.1404238c0
mov eax, dword [0x14066e1c0]
mov ecx, eax
xor ecx, 0x2e70440e
not eax
and eax, 0x518fbbf1
or eax, ecx
not eax
add eax, eax
add eax, ecx
jne 0x140425730
jmp 0x14042573b
test al, al
jne 0x140425d67
mov dword [rsp + 0xd8], 0x238
mov rax, qword [r14 + 0x390]
mov r8d, dword [rsp + 0x318]
mov ecx, 0x410
xor edx, edx
call qword [0x1405fc400]
test rax, rax
je 0x140425c6b
mov rbp, rax
mov rax, qword [r14 + 0x368]
mov edx, dword [rsp + 0x318]
mov ecx, 8
call qword [0x1405fc400]
cmp rax, 0xffffffffffffffff
je 0x1404258ec
mov rcx, rax
mov rax, qword [r14 + 0x380]
mov qword [rsp + 0x48], rcx
lea rdx, [rsp + 0xd8]
call qword [0x1405fc400]
cmp eax, 1
jne 0x140425bdf
nop word cs:[rax + rax]
mov eax, dword [0x140696c58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14042587f
mov r8d, 0x400
mov rcx, r12
xor edx, edx
call fcn.140512320
mov qword [rsi + 0xc8], rbp
mov rax, qword [rsp + 0x100]
mov qword [rsi + 0xd0], rax
mov eax, dword [0x140696c58]
mov ecx, 0x29e6bf51
sub ecx, eax
imul ecx, eax
and ecx, 1
mov eax, dword [0x14066e1c0]
mov edx, 0x2e70440e
add eax, edx
cmp ecx, eax
je 0x140425919
mov r8d, 0x400
mov rcx, r12
xor edx, edx
call fcn.140512320
mov qword [rsi + 0xc8], rbp
mov rax, qword [rsp + 0x100]
mov qword [rsi + 0xd0], rax
mov eax, dword [0x14066e1c0]
mov ecx, 0x2e70440f
add eax, ecx
lea rcx, [fcn.1404252d0]
add ecx, ecx
add ecx, 0x10c0
test ecx, eax
jne 0x140425820
jmp 0x140425831
mov rax, qword [r14 + 0x348]
mov rcx, rbp
call qword [0x1405fc400]
cmp dword [0x14066e1c0], 0xd18fbbf2
je 0x1404258f7
mov eax, dword [0x140696c5c]
cmp eax, 0x23
jg 0x1404258d0
mov rax, qword [r14 + 0x348]
mov rcx, rbp
call qword [0x1405fc400]
mov al, 1
test al, al
je 0x1404258d0
mov rcx, 0xffffffffffffffff
jmp 0x140425c5e
cmp byte [rsp + 0x35], 0
je 0x140425b54
mov eax, dword [0x140696c5c]
mov ecx, dword [0x14066e1c0]
mov edx, 0x2e70442d
add ecx, edx
cmp eax, ecx
mov rdi, qword [rsp + 0xa8]
mov r12b, 1
mov rsi, qword [rsp + 0x40]
jge 0x140425af0
jmp 0x1404259f3
mov rcx, r15
mov rdx, r12
call fcn.140423370
mov ecx, dword [0x140696c58]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140425990
mov rcx, r15
mov rdx, r12
call fcn.140423370
jmp 0x140425960
test al, al
mov r12, qword [rsp + 0x60]
je 0x1404259b6
jmp 0x140425c77
mov rcx, r15
mov rdx, r13
call fcn.1404238c0
mov eax, dword [0x140696c5c]
cmp eax, 0x3f
jl 0x1404259c1
mov eax, dword [0x140696c5c]
cmp eax, 0x27
jg 0x1404259a0
mov rcx, r15
mov rdx, r13
call fcn.1404238c0
mov ecx, dword [0x140696c58]
mov edx, dword [0x14066e1c0]
neg edx
add edx, ecx
inc edx
imul edx, ecx
test dl, 1
jne 0x1404259a0
test al, al
je 0x140425720
jmp 0x140425d5f
mov dword [rsp + 0x20], 0xe4038e41
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x38f8cf40
mov r9d, 0x2a7df205
call fcn.1404289e0
mov ecx, dword [0x140696c5c]
cmp ecx, 0x44
jge 0x140425af0
test al, al
jne 0x140425d6f
cmp byte [rsp + 0x36], 0
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
je 0x140425a7c
mov dword [rsp + 0x20], 0xe4038e41
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x70]
mov r8d, 0x38f8cf40
mov r9d, 0x2a7df205
call fcn.1404289e0
mov ecx, 3
mov qword [rsp + 0x38], rcx
cmp byte [0x140693da8], 0
jne 0x140425dc1
test al, al
jne 0x140425dc1
mov rcx, rsi
lea rdx, [rsp + 0x208]
mov r8, qword [rsp + 0xa0]
call fcn.140424a30
test al, al
jne 0x140425d85
mov dword [rsp + 0x20], 0xe354b358
mov r12, qword [rsp + 0x40]
mov rcx, r12
mov rdx, qword [rsp + 0x90]
mov r8d, 0x51534cbd
mov r9d, 0x6b86b457
call fcn.1404289f0
mov ecx, 1
mov qword [rsp + 0x38], rcx
test al, al
jne 0x140425dc1
mov eax, dword [0x140696c5c]
cmp eax, 0x2e
mov rdi, qword [rsp + 0x80]
jle 0x140425b19
jmp 0x140425cdb
mov dword [rsp + 0x20], 0xe4038e41
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x38f8cf40
mov r9d, 0x2a7df205
call fcn.1404289e0
test r12b, r12b
je 0x140425af0
jmp 0x1404259f3
mov dword [rsp + 0x20], 0xe63e4a3c
mov rcx, r12
mov rdx, rdi
mov r8d, 0x427472c9
mov r9d, 0x624991be
call fcn.140429600
mov ecx, dword [0x140696c5c]
cmp ecx, 0x2f
jg 0x140425cdb
test al, al
mov rdi, qword [rsp + 0x50]
jne 0x140425dc1
cmp byte [rsp + 0x34], 0
je 0x140425bdf
mov r12, rsi
mov dword [rsp + 0x20], 0xe4038e41
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, qword [rsp + 0x98]
mov r8d, 0x38f8cf40
mov r9d, 0x2a7df205
call fcn.1404289e0
test al, al
jne 0x140425d95
mov rcx, r12
lea rdx, [rsp + 0x208]
mov r8, qword [rsp + 0x88]
call fcn.140424a30
test al, al
jne 0x140425da4
mov dword [rsp + 0x20], 0xe354b358
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov r8d, 0x51534cbd
mov r9d, 0x6b86b457
call fcn.1404289f0
test al, al
mov rsi, r12
jne 0x140425db7
lea r12, [0x140428780]
nop word cs:[rax + rax]
xor eax, eax
test al, al
jne 0x140425c0c
mov rax, qword [r14 + 0x348]
mov rcx, rbp
call qword [0x1405fc400]
xor eax, eax
test al, al
je 0x140425c54
mov ecx, 0x25
call fcn.1404ca39c
mov qword [0x140696c50], rax
mov rcx, r12
call fcn.1404ea090
mov rax, qword [r14 + 0x348]
mov rcx, rbp
call qword [0x1405fc400]
mov eax, dword [0x14066e1c0]
mov ecx, eax
xor ecx, 0x247fef78
and eax, 0x247fef78
lea eax, [rcx + rax*2]
cmp eax, 0xf60fab6a
jne 0x140425bf0
jmp 0x140425bf6
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140425c6b
mov rax, qword [r14 + 0x348]
call qword [0x1405fc400]
cmp byte [rsp + 0x35], 0
movzx ebp, byte [rsp + 0x34]
je 0x140425ca2
mov eax, dword [rsp + 0x318]
mov dword [rsp + 0xc4], eax
mov rcx, qword [rsp + 0xb8]
lea rdx, [rsp + 0xc8]
lea r8, [rsp + 0xc4]
call fcn.1404281a0
test bpl, bpl
je 0x1404254a0
mov eax, dword [rsp + 0x318]
mov dword [rsp + 0xc4], eax
mov rcx, qword [rsp + 0xb0]
lea rdx, [rsp + 0xc8]
lea r8, [rsp + 0xc4]
call fcn.1404281a0
jmp 0x1404254a0
mov dword [rsp + 0x20], 0xe63e4a3c
mov rcx, r12
mov rdx, rdi
mov r8d, 0x427472c9
mov r9d, 0x624991be
call fcn.140429600
jmp 0x140425b19
xor r15d, r15d
xor ebp, ebp
xor ebx, ebx
test rdi, rdi
jne 0x140425d48
test rbp, rbp
je 0x140425d20
mov rax, qword [r14 + 0x348]
mov rcx, rbp
call qword [0x1405fc400]
test rbx, rbx
je 0x140425d35
mov rax, qword [r14 + 0x348]
mov rcx, rbx
call qword [0x1405fc400]
xor eax, eax
test al, al
jne 0x140425e20
jmp 0x140425df5
xor ebx, ebx
xor ebp, ebp
mov rax, qword [r14 + 0x348]
mov rcx, rdi
call qword [0x1405fc400]
test rbp, rbp
jne 0x140425d10
jmp 0x140425d20
mov r15d, 1
jmp 0x140425d02
mov r15d, 2
jmp 0x140425d02
mov eax, 1
mov qword [rsp + 0x38], rax
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
jmp 0x140425dc1
mov r15d, 1
mov rbx, qword [rsp + 0x48]
jmp 0x140425d06
mov eax, 2
mov qword [rsp + 0x38], rax
mov rsi, r12
jmp 0x140425dc1
mov r15d, 2
mov rsi, r12
mov rbx, qword [rsp + 0x48]
jmp 0x140425d06
mov eax, 2
mov qword [rsp + 0x38], rax
call fcn.140412c70
lea rcx, [rax + 8]
mov dword [rsp + 0x20], 0x1d2913f8
mov rdx, r15
mov r8d, 0xe354b358
mov r9d, 0x647ad6f6
call fcn.1401fe4b0
mov rbx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x38]
jmp 0x140425d06
mov eax, 0x2e70440e
add eax, dword [0x14066e1c0]
mov ecx, dword [0x140696c58]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140425e5a
nop word cs:[rax + rax]
mov ecx, dword [0x140696c58]
mov r8d, dword [0x14066e1c0]
mov eax, r8d
xor eax, 0x2e70440f
mov edx, r8d
and edx, 0x2e70440f
lea edx, [rax + rdx*2]
mov eax, ecx
sub eax, edx
imul eax, ecx
add r8d, 0x2e704410
xor edx, edx
div r8d
test edx, edx
jne 0x140425e20
jmp 0x140425df5
cmp r15d, eax
je 0x140425ee9
lea rcx, [rsi + 0x610]
mov rbx, rsi
mov rsi, qword [rsi + 0x610]
mov r8, qword [rsi + 8]
mov rdx, rcx
call fcn.140190480
mov qword [rsi + 8], rsi
mov qword [rsi], rsi
mov qword [rsi + 0x10], rsi
mov rax, qword [0x14066e1b8]
movabs rcx, 0x1bc3e570b59bf3e6
sub rax, rcx
movabs rsi, 0x2ed51be6eb270cb
add rcx, rsi
add rcx, rax
mov qword [rbx + 0x618], rcx
lea rcx, [rbx + 0x620]
mov rdi, qword [rbx + 0x620]
mov r8, qword [rdi + 8]
mov rdx, rcx
call fcn.140190480
mov qword [rdi + 8], rdi
mov qword [rdi], rdi
mov qword [rdi + 0x10], rdi
add rsi, qword [0x14066e1b8]
mov qword [rbx + 0x628], rsi
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1404e9d20
mov eax, r15d
add rsp, 0x448
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret