Function at 0x14035a340
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x438
mov byte [rsp + 0x36], r9b
mov ebp, r8d
mov r14d, edx
mov rsi, rcx
mov rax, qword [0x14057e8d8]
xor rax, rsp
mov qword [rsp + 0x430], rax
xor r12d, r12d
test dl, r8b
jne 0x14035a387
mov eax, r14d
xor al, bpl
je 0x14035a9ea
mov rbx, qword [0x140591c70]
mov rdi, qword [rbx + 0x368]
test rdi, rdi
je 0x14035a9ea
xor r12d, r12d
lea rcx, [rsp + 0x300]
mov r8d, 0x130
xor edx, edx
call fcn.14042db60
lea rcx, [rsp + 0xc8]
mov r8d, 0x238
xor edx, edx
call fcn.14042db60
mov dword [rsp + 0x300], 0x130
mov dword [rsp + 0xc8], 0x238
mov ecx, 2
xor edx, edx
mov rax, rdi
call qword [case.0x140114b5b.0]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14035aa11
mov rax, qword [rbx + 0x370]
lea rdx, [rsp + 0x300]
mov rcx, rdi
call qword [case.0x140114b5b.0]
cmp eax, 1
jne 0x14035a949
movzx r12d, byte [rsp + 0x36]
mov eax, r12d
xor al, 1
mov byte [rsp + 0x37], al
lea rax, [rsi + 0x520]
mov qword [rsp + 0x40], rax
lea rax, [rsi + 0x4f0]
mov qword [rsp + 0x98], rax
lea rax, [rsi + 0x508]
mov qword [rsp + 0x90], rax
lea rax, [rsi + 0xc8]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0x48]
mov qword [rsp + 0x80], rax
lea rax, [rsi + 0x88]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x550]
mov qword [rsp + 0x78], rax
lea rax, [rsi + 0x580]
mov qword [rsp + 0x68], rax
lea rax, [rsi + 0x5b0]
mov qword [rsp + 0x58], rax
lea rax, [rsi + 8]
mov qword [rsp + 0x70], rax
lea rax, [rsi + 0x568]
mov qword [rsp + 0x60], rax
lea rax, [rsi + 0x598]
mov qword [rsp + 0x50], rax
lea rax, [rsi + 0x610]
mov qword [rsp + 0xa8], rax
lea rax, [rsi + 0x620]
mov qword [rsp + 0xa0], rax
lea rax, [rsi + 0xd8]
mov qword [rsp + 0x88], rax
jmp 0x14035a51d
mov rax, qword [rbx + 0x378]
mov rcx, rdi
lea rdx, [rsp + 0x300]
call qword [case.0x140114b5b.0]
mov ecx, dword [0x14056fa14]
mov edx, 0x6eb270cc
add ecx, edx
cmp eax, ecx
jne 0x14035a949
movzx eax, byte [rsp + 0x37]
test r14b, r14b
je 0x14035a59e
test r12b, r12b
je 0x14035a550
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x40]
call fcn.140359270
test al, al
je 0x14035a647
jmp 0x14035a8e5
mov edx, dword [rsp + 0x308]
mov rax, qword [rsi + 0x610]
mov r8, qword [rax + 8]
cmp byte [r8 + 0x19], 0
mov rcx, rax
jne 0x14035a58a
mov rcx, rax
nop
lea r9, [r8 + 0x10]
cmp dword [r8 + 0x1c], edx
cmovae rcx, r8
cmovae r9, r8
mov r8, qword [r9]
cmp byte [r8 + 0x19], 0
je 0x14035a570
cmp byte [rcx + 0x19], 0
jne 0x14035a595
cmp edx, dword [rcx + 0x1c]
jae 0x14035a598
mov rcx, rax
cmp rcx, rax
setne al
test bpl, bpl
je 0x14035a620
test al, al
je 0x14035a628
mov ecx, dword [rsp + 0x308]
mov rax, qword [rsi + 0x620]
mov r8, qword [rax + 8]
cmp byte [r8 + 0x19], 0
mov rdx, rax
jne 0x14035a601
mov rdx, rax
nop word [rax + rax]
lea r9, [r8 + 0x10]
cmp dword [r8 + 0x1c], ecx
cmovae rdx, r8
cmovae r9, r8
mov r8, qword [r9]
movzx r9d, byte [r8 + 0x19]
movzx r10d, byte [0x140591d20]
mov r11d, r10d
xor r11b, r9b
and r10b, r9b
add r10b, r10b
add r10b, r11b
je 0x14035a5d0
cmp byte [rdx + 0x19], 0
jne 0x14035a628
cmp ecx, dword [rdx + 0x1c]
jb 0x14035a628
cmp rdx, rax
jne 0x14035a8e0
jmp 0x14035a628
test al, al
jne 0x14035a8e0
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x40]
call fcn.140359270
test al, al
jne 0x14035a8e0
test r14b, r14b
je 0x14035a664
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x98]
call fcn.140359560
test al, al
jne 0x14035aa35
test bpl, bpl
je 0x14035a686
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x90]
call fcn.140359560
test al, al
jne 0x14035aa40
mov eax, dword [0x14056fa14]
mov ecx, eax
xor ecx, 0x6eb27303
and eax, 0x6eb27303
lea eax, [rcx + rax*2]
mov dword [rsp + 0xc8], eax
mov rax, qword [rbx + 0x390]
mov r8d, dword [rsp + 0x308]
mov ecx, 0x410
xor edx, edx
call qword [case.0x140114b5b.0]
test rax, rax
je 0x14035a8e0
mov r13, rax
mov rax, qword [rbx + 0x368]
mov edx, dword [rsp + 0x308]
mov ecx, 8
call qword [case.0x140114b5b.0]
cmp rax, 0xffffffffffffffff
je 0x14035a8b9
mov r15, rax
mov rax, qword [rbx + 0x380]
mov rcx, r15
lea rdx, [rsp + 0xc8]
call qword [case.0x140114b5b.0]
mov ecx, dword [0x14056fa14]
mov edx, ecx
xor edx, 0x6eb270cc
and ecx, 0x6eb270cc
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jne 0x14035a8a2
mov r8d, 0x400
mov rcx, qword [rsp + 0x88]
xor edx, edx
call fcn.14042db60
mov qword [rsi + 0xc8], r13
mov rax, qword [rsp + 0xf0]
mov qword [rsi + 0xd0], rax
test r14b, r14b
je 0x14035a824
mov dword [rsp + 0x20], 0xcfe1d46a
mov r12, qword [rsp + 0x38]
mov rcx, r12
mov rdx, qword [rsp + 0x80]
mov r8d, 0xd60e09cd
mov r9d, 0x3d17264
call fcn.14035dfd0
test al, al
jne 0x14035aa53
cmp byte [rsp + 0x36], 0
je 0x14035a7bd
mov dword [rsp + 0x20], 0xcfe1d46a
mov rcx, r12
mov rdx, qword [rsp + 0x48]
mov r8d, 0xd60e09cd
mov r9d, 0x3d17264
call fcn.14035dfd0
test al, al
jne 0x14035aa71
mov rcx, rsi
lea rdx, [rsp + 0x1f8]
mov r8, qword [rsp + 0x78]
call fcn.140359d70
test al, al
jne 0x14035aa5b
mov dword [rsp + 0x20], 0x5e63e266
mov rcx, r12
mov rdx, qword [rsp + 0x68]
mov r8d, 0xe4038e41
mov r9d, 0x8c45624
call fcn.14035e0d0
mov rcx, r12
mov r12d, 1
test al, al
jne 0x14035aa77
mov rdx, qword [rsp + 0x58]
mov r8d, 0x19ebdceb
call fcn.14035de80
test al, al
jne 0x14035aa77
test bpl, bpl
movzx r12d, byte [rsp + 0x36]
je 0x14035a8a2
mov dword [rsp + 0x20], 0xcfe1d46a
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x70]
mov r8d, 0xd60e09cd
mov r9d, 0x3d17264
call fcn.14035dfd0
test al, al
jne 0x14035aa4b
mov rcx, rsi
lea rdx, [rsp + 0x1f8]
mov r8, qword [rsp + 0x60]
call fcn.140359d70
test al, al
jne 0x14035aa66
mov dword [rsp + 0x20], 0x5e63e266
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov r8d, 0xe4038e41
mov r9d, 0x8c45624
call fcn.14035e0d0
test al, al
jne 0x14035aa4b
mov rax, qword [rbx + 0x348]
mov rcx, r13
call qword [case.0x140114b5b.0]
test r15, r15
jne 0x14035a8d0
jmp 0x14035a8e0
mov rax, qword [rbx + 0x348]
mov rcx, r13
call qword [case.0x140114b5b.0]
mov r15, 0xffffffffffffffff
mov rax, qword [rbx + 0x348]
mov rcx, r15
call qword [case.0x140114b5b.0]
test r14b, r14b
je 0x14035a910
mov eax, dword [rsp + 0x308]
mov dword [rsp + 0xb4], eax
mov rcx, qword [rsp + 0xa8]
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0xb4]
call fcn.14035d3a0
test bpl, bpl
je 0x14035a4f0
mov eax, dword [rsp + 0x308]
mov dword [rsp + 0xb4], eax
mov rcx, qword [rsp + 0xa0]
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0xb4]
call fcn.14035d3a0
jmp 0x14035a4f0
xor r12d, r12d
xor r13d, r13d
xor r15d, r15d
test rdi, rdi
jne 0x14035aa17
test r13, r13
je 0x14035a970
mov rax, qword [rbx + 0x348]
mov rcx, r13
call qword [case.0x140114b5b.0]
test r15, r15
je 0x14035a985
mov rax, qword [rbx + 0x348]
mov rcx, r15
call qword [case.0x140114b5b.0]
test r12d, r12d
je 0x14035a9ea
lea rcx, [rsi + 0x610]
mov rdi, qword [rsi + 0x610]
mov r8, qword [rdi + 8]
mov rdx, rcx
call fcn.14011f110
mov qword [rdi + 8], rdi
mov qword [rdi], rdi
mov qword [rdi + 0x10], rdi
mov qword [rsi + 0x618], 0
lea rcx, [rsi + 0x620]
mov rdi, qword [rsi + 0x620]
mov r8, qword [rdi + 8]
mov rdx, rcx
call fcn.14011f110
mov qword [rdi + 8], rdi
mov qword [rdi], rdi
mov qword [rdi + 0x10], rdi
mov qword [rsi + 0x628], 0
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.140405570
mov eax, r12d
add rsp, 0x438
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r15d, r15d
xor r13d, r13d
mov rax, qword [rbx + 0x348]
mov rcx, rdi
call qword [case.0x140114b5b.0]
test r13, r13
jne 0x14035a960
jmp 0x14035a970
mov r12d, 1
jmp 0x14035a94c
mov r12d, 2
jmp 0x14035a94c
mov r12d, 2
jmp 0x14035aa77
mov r12d, 1
jmp 0x14035aa77
mov r12d, 1
jmp 0x14035a952
mov r12d, 2
jmp 0x14035a952
mov r12d, 3
call fcn.1403499a0
lea rcx, [rax + 8]
mov dword [rsp + 0x20], 0x2891fe27
lea rdx, [rsp + 0x32c]
mov r8d, 0x32bb6985
mov r9d, 0x19ebdceb
call fcn.14017c900
jmp 0x14035a952