Function at 0x411d00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
xor r12d, r12d
cmp byte [rcx + 0x10], 2
jne 0x411e6c
mov rbp, rdx
mov rsi, rcx
mov r15, qword [rcx + 8]
cmp byte [rcx + 0x11], 0
je 0x411d37
add dword [rsi + 0x14], 1
cmp byte [rsi + 0x12], 0
je 0x411dab
cmp byte [r15 + 0x21], 0
je 0x411d6e
mov r14, qword [rsi + 8]
mov rdi, qword [r14]
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x411d67
nop
movzx ecx, byte [rax + 1]
mov edx, ecx
xor dl, 4
and dl, cl
mov byte [rax + 1], dl
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x411d50
cmp byte [r14 + 0x22], 0
je 0x411dbc
cmp byte [r15 + 0x23], 0
je 0x411d81
mov rcx, qword [r15]
mov eax, dword [r15 + 0x40]
mov dword [rcx + 0x20], eax
jmp 0x411d84
mov rcx, qword [r15]
mov rdx, rbp
xor r8d, r8d
call fcn.004112f0
mov r12d, eax
cmp byte [rsi + 0x11], 0
je 0x411e6c
add dword [rsi + 0x14], 0xffffffff
jne 0x411e6c
jmp 0x411e64
mov rcx, rsi
call fcn.0043e9d0
cmp byte [r15 + 0x21], 0
jne 0x411d3e
jmp 0x411d6e
mov r13d, dword [r14 + 0x40]
xor eax, eax
cmp r13d, 2
jb 0x411e04
lea ecx, [r13 - 2]
mov eax, dword [r14 + 0x38]
mov ebx, 0xcccccccd
imul rbx, rax
shr rbx, 0x22
add ebx, 1
mov eax, ecx
xor edx, edx
div ebx
sub ecx, edx
mov eax, dword [0x005f6c40]
xor edx, edx
div dword [r14 + 0x34]
lea edx, [rcx + 1]
xor ebx, ebx
cmp edx, eax
sete bl
lea eax, [rcx + rbx]
add eax, 2
cmp eax, r13d
je 0x411e20
mov eax, dword [0x005f6c40]
mov r9d, dword [r14 + 0x34]
xor edx, edx
div r9d
add eax, 1
cmp r13d, eax
jne 0x411e80
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r12d, 0xb
mov ecx, 0xb
mov r9d, 0x114c6
call fcn.00408970
cmp byte [rsi + 0x11], 0
je 0x411e6c
mov eax, dword [rsi + 0x14]
lea ecx, [rax - 1]
mov dword [rsi + 0x14], ecx
cmp eax, 1
jne 0x411e6c
mov rcx, rsi
call fcn.0043ea70
mov eax, r12d
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r14 + 0x18]
mov rax, qword [rax + 0x50]
movzx ecx, byte [rax + 0x24]
shl ecx, 0x18
movzx edx, byte [rax + 0x25]
shl edx, 0x10
or edx, ecx
movzx r12d, byte [rax + 0x26]
shl r12d, 8
mov ecx, edx
not ecx
mov ebx, r12d
not ebx
and ecx, 0xd8b7364b
and edx, 0x27480000
or edx, ecx
and ebx, 0xd8b7364b
and r12d, 0xc900
or r12d, ebx
xor r12d, edx
movzx eax, byte [rax + 0x27]
mov ecx, r12d
and ecx, eax
xor r12d, eax
or r12d, ecx
mov rcx, qword [rsi]
mov r10, qword [rcx + 0x158]
mov r8d, r12d
test r10, r10
mov qword [rsp + 0x38], rdi
je 0x411f4c
mov edx, dword [rcx + 0x28]
mov r8, qword [rcx + 0x20]
test edx, edx
jle 0x411f18
lea rax, [r8 + 8]
xor ebx, ebx
cmp qword [rax], rsi
je 0x411f1a
add rbx, 1
add rax, 0x20
cmp rdx, rbx
jne 0x411f02
mov ebx, edx
jmp 0x411f1a
xor ebx, ebx
mov rcx, qword [rcx + 0x148]
mov eax, ebx
shl rax, 5
mov rdx, qword [r8 + rax]
mov dword [rsp + 0x20], r9d
mov r8d, r13d
mov r9d, r12d
call r10
mov r8d, eax
cmp eax, r12d
cmova r8d, r12d
test r8d, r8d
je 0x411d6e
mov eax, dword [r14 + 0x38]
mov ecx, 0xcccccccd
imul rcx, rax
shr rcx, 0x22
mov edi, r8d
sub edi, r13d
mov r11, rbp
cmp r13d, 1
ja 0x411f83
mov eax, dword [0x005f6c40]
xor ebx, ebx
xor edx, edx
div dword [r14 + 0x34]
mov r9d, eax
lea r10d, [rcx + 1]
jmp 0x411fbe
mov ebp, r8d
lea r8d, [r13 - 2]
lea r10d, [rcx + 1]
mov eax, r8d
xor edx, edx
div r10d
sub r8d, edx
mov eax, dword [0x005f6c40]
xor edx, edx
div dword [r14 + 0x34]
mov r9d, eax
lea eax, [r8 + 1]
xor edx, edx
cmp eax, r9d
sete dl
lea ebx, [rdx + r8]
add ebx, 2
mov r8d, ebp
add edi, ecx
add edi, ebx
mov eax, edi
xor edx, edx
div ecx
mov ecx, r13d
sub ecx, r8d
sub ecx, eax
lea ebp, [r9 + 1]
cmp ebp, r13d
setb al
cmp ecx, ebp
setb dl
xor dl, al
not dl
and dl, al
movzx eax, dl
sub ecx, eax
nop word [rax + rax]
mov edi, ecx
mov eax, 0
cmp ecx, 2
jb 0x412019
lea ecx, [rdi - 2]
mov eax, ecx
xor edx, edx
div r10d
sub ecx, edx
lea eax, [rcx + 1]
xor edx, edx
cmp eax, r9d
sete dl
lea eax, [rdx + rcx]
add eax, 2
cmp edi, eax
sete dl
xor eax, edi
cmp edi, ebp
sete bl
mov ecx, edi
xor ecx, ebp
or ecx, eax
sete al
lea ecx, [rdi - 1]
cmp bl, dl
jne 0x411ff0
test al, al
jne 0x411ff0
cmp edi, r13d
jbe 0x41207d
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r12d, 0xb
mov ecx, 0xb
mov r9d, 0x114e1
call fcn.00408970
cmp byte [rsi + 0x11], 0
jne 0x411e56
jmp 0x411e6c
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x34], r12d
cmp edi, r13d
jae 0x4120ad
mov rcx, qword [r14 + 0x10]
test rcx, rcx
mov rbp, r11
je 0x4120b7
xor ebx, ebx
xor edx, edx
xor r8d, r8d
call fcn.00440f10
test eax, eax
je 0x4120b7
mov r12d, eax
jmp 0x4120f5
mov bl, 1
xor r12d, r12d
mov rbp, r11
jmp 0x4120f5
xor ecx, ecx
mov eax, dword [rsp + 0x30]
cmp eax, dword [rsp + 0x34]
sete cl
mov dword [rsp + 0x44], ecx
mov rcx, r14
mov edx, edi
mov r8d, r13d
mov r9d, dword [rsp + 0x44]
call fcn.00440950
add r13d, 0xffffffff
cmp r13d, edi
setbe cl
mov r12d, eax
test eax, eax
sete bl
cmp bl, cl
je 0x4120f5
test r12d, r12d
je 0x4120c8
cmp r12d, 0x65
sete al
mov ecx, eax
and cl, bl
xor al, bl
or al, cl
mov edx, dword [rsp + 0x34]
test edx, edx
setne cl
xor al, 1
cmp cl, al
je 0x412167
test edx, edx
mov r8, qword [rsp + 0x38]
je 0x4121d0
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + 0x70]
mov rax, qword [rcx + 0x28]
mov edx, dword [rcx + 0x34]
not edx
or edx, 0xfffb
cmp dx, 0xffff
mov ebx, dword [rsp + 0x30]
je 0x412149
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x41216e
mov r12d, dword [rax + 0x30]
test r12d, r12d
jne 0x412194
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x41217e
call fcn.0043fc70
jmp 0x412183
mov r8, qword [rsp + 0x38]
jmp 0x4121d0
cmp dword [rax + 0x80], 0
je 0x412191
call fcn.00432ba0
jmp 0x412183
call fcn.00440110
mov ebx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov r12d, eax
jmp 0x412194
xor r12d, r12d
cmp ebx, dword [rsp + 0x34]
jne 0x4121b8
mov rax, qword [r14 + 0x18]
mov rax, qword [rax + 0x50]
mov dword [rax + 0x20], 0
mov rax, qword [r14 + 0x18]
mov rax, qword [rax + 0x50]
mov dword [rax + 0x24], 0
mov rax, qword [r14 + 0x18]
mov rax, qword [rax + 0x50]
mov ecx, edi
bswap ecx
mov dword [rax + 0x1c], ecx
mov byte [r14 + 0x23], 1
mov dword [r14 + 0x40], edi
test r12d, r12d
je 0x411d6e
mov rcx, r8
call fcn.004382b0
cmp byte [rsi + 0x11], 0
jne 0x411e56
jmp 0x411e6c