Function at 0x1403431e0
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 [0x14054b938]
xor rax, rsp
mov qword [rsp + 0x430], rax
xor r12d, r12d
test dl, dl
jne 0x140343223
test bpl, bpl
je 0x1403438af
mov rbx, qword [0x14055e9f8]
mov rdi, qword [rbx + 0x368]
test rdi, rdi
je 0x1403438af
xor r12d, r12d
lea rcx, [rsp + 0x300]
mov r8d, 0x130
xor edx, edx
call fcn.14040d340
lea rcx, [rsp + 0xc8]
mov r8d, 0x238
xor edx, edx
call fcn.14040d340
mov dword [rsp + 0x300], 0x130
mov dword [rsp + 0xc8], 0x238
mov ecx, 2
xor edx, edx
mov rax, rdi
call qword [case.0x140303ece.0]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1403438d6
mov rax, qword [rbx + 0x370]
lea rdx, [rsp + 0x300]
mov rcx, rdi
call qword [case.0x140303ece.0]
mov edx, 0xccaf7862
mov ecx, dword [0x14053d6c0]
add ecx, edx
cmp eax, ecx
jne 0x14034380e
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 0x1403433cd
mov rax, qword [rbx + 0x378]
mov rcx, rdi
lea rdx, [rsp + 0x300]
call qword [case.0x140303ece.0]
mov ecx, dword [0x14053d6c0]
mov edx, 0xccaf7862
add ecx, edx
cmp eax, ecx
jne 0x14034380e
movzx eax, byte [rsp + 0x37]
test r14b, r14b
je 0x140343464
test r12b, r12b
je 0x140343400
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x40]
call fcn.1403420b0
test al, al
je 0x140343507
jmp 0x1403437aa
mov edx, dword [rsp + 0x308]
mov rax, qword [rsi + 0x610]
mov r8, qword [rax + 8]
cmp byte [r8 + 0x19], 0
mov rcx, rax
jne 0x140343444
mov rcx, rax
nop
mov r9d, dword [0x14055eab0]
add r9d, dword [r8 + 0x1c]
lea r10, [r8 + 0x10]
cmp r9d, edx
cmovae rcx, r8
cmovae r10, r8
mov r8, qword [r10]
cmp byte [r8 + 0x19], 0
je 0x140343420
movzx r8d, byte [0x14053d6b0]
add r8b, 0x7d
cmp byte [rcx + 0x19], r8b
jne 0x14034345b
cmp edx, dword [rcx + 0x1c]
jae 0x14034345e
mov rcx, rax
cmp rcx, rax
setne al
test bpl, bpl
je 0x1403434e0
test al, al
je 0x1403434e8
mov ecx, dword [rsp + 0x308]
mov rax, qword [rsi + 0x620]
mov r8, qword [rax + 8]
cmp byte [r8 + 0x19], 0
mov rdx, rax
jne 0x1403434c2
mov rdx, rax
nop dword [rax]
cmp dword [r8 + 0x1c], ecx
cmovae rdx, r8
lea r9, [r8 + 0x10]
cmovae r9, r8
mov r8, qword [r9]
movzx r9d, byte [0x14053d6b0]
mov r10d, r9d
xor r10b, 0x7d
and r9b, 0x7d
add r9b, r9b
add r9b, r10b
cmp byte [r8 + 0x19], r9b
je 0x140343490
cmp byte [rdx + 0x19], 0
jne 0x1403434e8
cmp ecx, dword [rdx + 0x1c]
jb 0x1403434e8
cmp rdx, rax
jne 0x1403437a5
jmp 0x1403434e8
test al, al
jne 0x1403437a5
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x40]
call fcn.1403420b0
test al, al
jne 0x1403437a5
test r14b, r14b
je 0x140343524
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x98]
call fcn.140342380
test al, al
jne 0x1403438fa
test bpl, bpl
je 0x140343546
lea rcx, [rsp + 0x32c]
mov rdx, qword [rsp + 0x90]
call fcn.140342380
test al, al
jne 0x140343905
mov eax, dword [0x14053d6c0]
mov ecx, 0xccaf7a99
add eax, ecx
mov dword [rsp + 0xc8], eax
mov rax, qword [rbx + 0x390]
mov r8d, dword [rsp + 0x308]
mov ecx, 0x410
xor edx, edx
call qword [case.0x140303ece.0]
test rax, rax
je 0x1403437a5
mov r13, rax
mov rax, qword [rbx + 0x368]
mov edx, dword [rsp + 0x308]
mov ecx, dword [0x14053d6c0]
mov r8d, 0xccaf7869
add ecx, r8d
call qword [case.0x140303ece.0]
cmp rax, 0xffffffffffffffff
je 0x14034377e
mov r15, rax
mov rax, qword [rbx + 0x380]
mov rcx, r15
lea rdx, [rsp + 0xc8]
call qword [case.0x140303ece.0]
mov ecx, dword [0x14053d6c0]
mov edx, 0xccaf7862
add ecx, edx
cmp eax, ecx
jne 0x140343767
mov r8d, 0x400
mov rcx, qword [rsp + 0x88]
xor edx, edx
call fcn.14040d340
mov qword [rsi + 0xc8], r13
mov rax, qword [rsp + 0xf0]
mov qword [rsi + 0xd0], rax
test r14b, r14b
je 0x1403436e9
mov dword [rsp + 0x20], 0x15bdf901
mov r12, qword [rsp + 0x38]
mov rcx, r12
mov rdx, qword [rsp + 0x80]
mov r8d, 0x15ec0b44
mov r9d, 0x67cbe3e5
call fcn.140347020
test al, al
jne 0x140343918
cmp byte [rsp + 0x36], 0
je 0x140343674
mov dword [rsp + 0x20], 0x15bdf901
mov rcx, r12
mov rdx, qword [rsp + 0x48]
mov r8d, 0x15ec0b44
mov r9d, 0x67cbe3e5
call fcn.140347020
test al, al
jne 0x140343936
mov rcx, rsi
lea rdx, [rsp + 0x1f8]
mov r8, qword [rsp + 0x78]
call fcn.1403429a0
test al, al
jne 0x140343920
mov dword [rsp + 0x20], 0x5900ee12
mov rcx, r12
mov rdx, qword [rsp + 0x68]
mov r8d, 0x824bd5
mov r9d, 0x2cee90d
call fcn.140346f70
mov rcx, r12
mov r12d, 1
test al, al
jne 0x14034393c
mov dword [rsp + 0x20], 0xeed34606
mov rdx, qword [rsp + 0x58]
mov r8d, 0x867b4d8f
mov r9d, 0xc972cb46
call fcn.140346fd0
test al, al
jne 0x14034393c
test bpl, bpl
movzx r12d, byte [rsp + 0x36]
je 0x140343767
mov dword [rsp + 0x20], 0x15bdf901
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x70]
mov r8d, 0x15ec0b44
mov r9d, 0x67cbe3e5
call fcn.140347020
test al, al
jne 0x140343910
mov rcx, rsi
lea rdx, [rsp + 0x1f8]
mov r8, qword [rsp + 0x60]
call fcn.1403429a0
test al, al
jne 0x14034392b
mov dword [rsp + 0x20], 0x5900ee12
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov r8d, 0x824bd5
mov r9d, 0x2cee90d
call fcn.140346f70
test al, al
jne 0x140343910
mov rax, qword [rbx + 0x348]
mov rcx, r13
call qword [case.0x140303ece.0]
test r15, r15
jne 0x140343795
jmp 0x1403437a5
mov rax, qword [rbx + 0x348]
mov rcx, r13
call qword [case.0x140303ece.0]
mov r15, 0xffffffffffffffff
mov rax, qword [rbx + 0x348]
mov rcx, r15
call qword [case.0x140303ece.0]
test r14b, r14b
je 0x1403437d5
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.140346410
test bpl, bpl
je 0x1403433a0
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.140346410
jmp 0x1403433a0
xor r12d, r12d
xor r13d, r13d
xor r15d, r15d
test rdi, rdi
jne 0x1403438dc
test r13, r13
je 0x140343835
mov rax, qword [rbx + 0x348]
mov rcx, r13
call qword [case.0x140303ece.0]
test r15, r15
je 0x14034384a
mov rax, qword [rbx + 0x348]
mov rcx, r15
call qword [case.0x140303ece.0]
test r12d, r12d
je 0x1403438af
lea rcx, [rsi + 0x610]
mov rdi, qword [rsi + 0x610]
mov r8, qword [rdi + 8]
mov rdx, rcx
call fcn.14013e500
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.14013e500
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.1403e4d80
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.0x140303ece.0]
test r13, r13
jne 0x140343825
jmp 0x140343835
mov r12d, 1
jmp 0x140343811
mov r12d, 2
jmp 0x140343811
mov r12d, 2
jmp 0x14034393c
mov r12d, 1
jmp 0x14034393c
mov r12d, 1
jmp 0x140343817
mov r12d, 2
jmp 0x140343817
mov r12d, 3
call fcn.140333790
lea rcx, [rax + 8]
mov dword [rsp + 0x20], 0x21f3a5e5
lea rdx, [rsp + 0x32c]
mov r8d, 0xa0fce89f
mov r9d, 0x2e880e15
call fcn.14019b320
jmp 0x140343817