Function at 0x140051d50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r9, rdx
mov dword [rsp + 0x5c], 0
mov eax, dword [0x141dc7c98]
add eax, dword [0x141dc7c9c]
imul eax, eax, 0x8f32ffba
add eax, 0x75575c4c
and eax, 0x53afbcae
cmp eax, 0x5ef1c13c
ja 0x140051dc4
mov eax, dword [str._yR_]
xor eax, dword [0x141dc7ca4]
imul eax, eax, 0xd17b9da1
imul rax, rax, 0x5dff48d5
shr rax, 0x3e
or eax, 0x1e42b44
mov dword [rsp + 0x58], 0x20
mov byte [rsp + 0x60], 3
cmp eax, 0x3ddfc89c
jbe 0x140051dd3
mov dword [rsp + 0x58], 0x20
mov byte [rsp + 0x60], 3
jmp 0x140051d8e
mov eax, dword [0x141dc7ca8]
or eax, dword [0x141dc7cac]
imul rax, rax, 0x21258151
shr rax, 0x3d
or eax, 0x13e0b0ce
imul rdx, rax, 0x40e2cdf5
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
cmp eax, 0xfe191b68
jbe 0x140051e30
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], r9
nop word cs:[rax + rax]
mov eax, dword [str._O]
xor edx, edx
div dword [0x141dc7cb4]
or eax, 0x7e3b773b
imul eax, eax, 0xe454bab2
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], r9
cmp eax, 0xf8351cb7
ja 0x140051e30
mov rdi, qword [r8 + 0x20]
test rdi, rdi
mov qword [rsp + 0x68], r8
je 0x140052285
nop
mov eax, dword [0x141dc7cd8]
or eax, dword [0x141dc7cdc]
or eax, 0x80204022
and eax, 0x826b5022
cmp eax, 0x1348927e
jb 0x140051e80
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x1400523e0
imul rax, rax, 0x38
add rax, rdi
mov qword [rsp + 0x70], rax
mov r14, qword [r8]
mov eax, dword [0x141dc7ce0]
xor edx, edx
div dword [0x141dc7ce4]
nop word [rax + rax]
mov eax, dword [0x141dc7ce8]
xor edx, edx
div dword [0x141dc7cec]
add eax, 0xe17d06d5
and eax, 0xd3620a99
imul eax, eax, 0xab8c4c34
cmp eax, 0x1ebf10f8
je 0x140051ed0
mov eax, dword [0x141dc7cf0]
xor edx, edx
div dword [0x141dc7cf4]
nop word cs:[rax + rax]
mov eax, dword [0x141dc7cf8]
xor eax, dword [0x141dc7cfc]
and eax, 0x98fa9c71
imul eax, eax, 0x9e08c966
add eax, 0xc2838dca
cmp eax, 0xa9190be5
ja 0x140051f10
mov rsi, qword [r8 + 0x10]
xor r13d, r13d
nop word [rax + rax]
mov rax, r13
shl rax, 4
mov rbx, qword [r14 + rax + 8]
test rbx, rbx
je 0x140051fce
mov r12, rsi
mov rsi, r14
add rax, r14
mov r14, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov r15, qword [rax]
mov rbp, qword [rcx + 0x18]
mov eax, dword [0x141dc7d30]
mov ecx, dword [0x141dc7d34]
add eax, ecx
add eax, 0x6ba579d4
shr eax, 4
imul rax, rax, 0x1161ab1b
shr rax, 0x38
or eax, 0xa005318e
cmp eax, 0xeecb2202
ja 0x140051fb1
nop dword [rax + rax]
mov rcx, r14
mov rdx, r15
mov r8, rbx
call rbp
xor ecx, ecx
test cl, cl
je 0x140051fc0
mov rcx, r14
mov rdx, r15
mov r8, rbx
call rbp
jmp 0x140051fa0
test al, al
mov r14, rsi
mov rsi, r12
jne 0x140052448
movzx eax, byte [rdi + 0x30]
mov byte [rsp + 0x60], al
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x58], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
test rcx, rcx
je 0x140052040
cmp ecx, 1
jne 0x140052070
xor ecx, ecx
nop word cs:[rax + rax]
test cl, cl
jne 0x140052000
shl rax, 4
add rax, rsi
mov ecx, dword [0x141dc7d48]
xor ecx, dword [0x141dc7d4c]
and ecx, 0xa830b558
imul rcx, rcx, 0x411bd375
shr rcx, 0x3c
cmp ecx, 0x8983ee24
ja 0x14005200b
cmp qword [rax + 8], 0
jne 0x140052079
mov rax, qword [rax]
jmp 0x140052063
mov ecx, dword [0x141dc7d40]
imul ecx, dword [0x141dc7d44]
shr ecx, 2
imul rcx, rcx, 0x4066472f
shr rcx, 0x3c
cmp ecx, 0xd79c9bd9
je 0x140052040
mov ecx, 1
jmp 0x14005207b
cmp ecx, 2
jne 0x140052260
xor ecx, ecx
lea rbx, [rdi + 0x38]
inc r13
mov edx, dword [0x141dc7d50]
and edx, dword [0x141dc7d54]
add edx, 0x31d0f1f1
imul rdx, rdx, 0x2a825363
shr rdx, 0x3d
or edx, 0x22eeffd4
cmp edx, 0xf0f739ff
ja 0x140052190
nop word cs:[rax + rax]
mov edx, dword [0x141dc7d58]
xor edx, dword [0x141dc7d5c]
and edx, 0xc20aa1b9
xor edx, 0x14b17d36
imul r8, rdx, 0x5a01045
shr r8, 0x20
sub edx, r8d
shr edx, 1
add edx, r8d
shr edx, 0x1e
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rax
cmp edx, 0x8c86435d
je 0x140052190
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
test rax, rax
je 0x1400521f0
cmp eax, 1
jne 0x140052186
mov eax, dword [0x141dc7d60]
xor edx, edx
div dword [0x141dc7d64]
mov eax, dword [0x141dc7d68]
imul eax, dword [0x141dc7d6c]
add eax, 0x76594a87
xor eax, 0xd9b078b3
imul eax, eax, 0xd7ac79
cmp eax, 0xdd84b00f
ja 0x140052127
shl rcx, 4
add rcx, rsi
nop word cs:[rax + rax]
mov eax, dword [0x141dc7d70]
xor edx, edx
div dword [0x141dc7d74]
add eax, 0x60bf0161
or eax, 0xecfbdfca
cmp eax, 0xb454c110
jb 0x140052160
cmp qword [rcx + 8], 0
je 0x1400521a0
xor eax, eax
jmp 0x1400521f5
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rax
jmp 0x1400520c0
mov eax, dword [0x141dc7d78]
xor eax, dword [0x141dc7d7c]
imul eax, eax, 0x91183eb6
add eax, 0x5e4ec8c9
imul rax, rax, 0x5b46f911
shr rax, 0x3e
cmp eax, 0x542ef653
ja 0x1400521a0
mov rcx, qword [rcx]
nop dword [rax]
mov eax, dword [0x141dc7d80]
xor eax, dword [0x141dc7d84]
xor eax, 0x42
or eax, 0x7bdf9291
and eax, 0x7fdf9af7
cmp eax, 0xf8ef3651
ja 0x1400521d0
mov eax, 1
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rcx
mov rax, qword [rdi + 0x20]
shl rax, 4
mov rcx, qword [rsi + rax]
lea rdx, [rsp + 0x28]
call qword [rsi + rax + 8]
test al, al
jne 0x140052448
nop dword [rax]
mov eax, dword [0x141dc7d88]
and eax, dword [0x141dc7d8c]
imul eax, eax, 0xbef19acb
add eax, 0xd9f9e779
cmp eax, 0xde13d95d
ja 0x140052220
mov rdi, rbx
cmp rbx, qword [rsp + 0x70]
jne 0x140051f40
jmp 0x1400523e3
mov eax, dword [0x141dc7d38]
xor eax, dword [0x141dc7d3c]
xor eax, 0xd4731afa
imul eax, eax, 0x4c9692e0
add eax, 0x8b8ffdd8
cmp eax, 0x8bb9880b
ja 0x140052260
ud2
mov rsi, qword [r8 + 0x10]
mov rax, qword [r8 + 0x18]
mov rbx, rax
shl rbx, 4
add rbx, rsi
nop word [rax + rax]
mov ecx, dword [0x141dc7cb8]
sub ecx, dword [0x141dc7cbc]
and ecx, 0xe873df83
add ecx, 0x53f77530
shr ecx, 1
imul rcx, rcx, 0x63bfd1c3
shr rcx, 0x3c
cmp ecx, 0xe3c8778a
je 0x1400522a0
xor ecx, ecx
nop
test cl, cl
jne 0x1400522d0
test rax, rax
je 0x14005244c
mov r14, qword [r8]
mov eax, dword [0x141dc7cc0]
xor edx, edx
div dword [0x141dc7cc4]
nop
mov eax, dword [0x141dc7cc8]
xor edx, edx
div dword [0x141dc7ccc]
add eax, 0xc6f6aeeb
and eax, 0xd95337c
add eax, 0xd9378c3a
cmp eax, 0x3bc2cd00
jb 0x1400522f0
nop word cs:[rax + rax]
mov eax, dword [0x141dc7cd0]
mov ecx, dword [0x141dc7cd4]
add eax, ecx
add eax, 0x31c8ea5f
or eax, 0x59a7a6c7
cmp eax, 0xc7c92250
je 0x140052320
xor r15d, r15d
lea rdi, [rsp + 0x28]
xor r13d, r13d
nop word [rax + rax]
mov rax, r13
shl rax, 4
mov r8, qword [r14 + rax + 8]
test r8, r8
je 0x1400523ac
add rax, r14
mov rcx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov rdx, qword [rax]
call qword [r9 + 0x18]
mov ecx, eax
nop word [rax + rax]
mov eax, dword [0x141dc7d00]
xor edx, edx
div dword [0x141dc7d04]
and eax, 0x28161000
or eax, 0xc3e9e739
xor eax, 0xea791f72
cmp eax, 0x8d4981a0
ja 0x140052380
test cl, cl
jne 0x140052448
mov rcx, qword [rsi]
mov rdx, rdi
call qword [rsi + 8]
test al, al
jne 0x140052448
add rsi, 0x10
inc r13
nop word cs:[rax + rax]
test r15b, r15b
jne 0x1400523d0
cmp rsi, rbx
jne 0x140052350
jmp 0x1400523e3
xor r13d, r13d
mov rax, qword [rsp + 0x68]
cmp r13, qword [rax + 8]
jae 0x140052460
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
shl r13, 4
mov rcx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
mov r9, qword [rax + r13]
mov r8, qword [rax + r13 + 8]
mov eax, dword [0x141dc7d08]
xor edx, edx
div dword [0x141dc7d0c]
nop dword [rax + rax]
mov eax, dword [0x141dc7d10]
and eax, dword [0x141dc7d14]
add eax, 0xb33e4b30
and eax, 0xb0bcac96
cmp eax, 0xdfb91244
je 0x140052420
mov rdx, r9
call qword [r10 + 0x18]
test al, al
je 0x140052460
mov al, 1
jmp 0x1400524b0
xor r13d, r13d
mov rax, qword [rsp + 0x68]
cmp r13, qword [rax + 8]
jb 0x1400523ee
nop word [rax + rax]
mov eax, dword [0x141dc7d18]
or eax, dword [0x141dc7d1c]
imul eax, eax, 0xfdbd2a44
add eax, 0xcbf38029
and eax, 0xe2229b3c
cmp eax, 0xcdc30e0f
ja 0x140052460
nop word cs:[rax + rax]
mov eax, dword [0x141dc7d20]
or eax, dword [0x141dc7d24]
and eax, 0x46044200
add eax, 0x2dc63933
cmp eax, 0x9fb30c04
ja 0x140052490
xor eax, eax
nop
mov ecx, dword [0x141dc7d28]
or ecx, dword [0x141dc7d2c]
xor ecx, 0x8dae154f
add ecx, 0xcf535142
cmp ecx, 0x66c32711
ja 0x1400524b0
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret