Function at 0x140055bc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r9, rdx
mov qword [rsp + 0x50], 0x20
mov byte [rsp + 0x58], 3
mov qword [rsp + 0x20], 0
mov eax, dword [0x141f34ec0]
xor edx, edx
div dword [0x141f34ec4]
or eax, 0x57a7e00f
xor eax, 0xc6d2e70f
add eax, 0xc4afdf1e
cmp eax, 0xf1e1377d
ja 0x140055c41
mov eax, dword [0x141f34ec8]
xor eax, dword [0x141f34ecc]
add eax, 0xd89e05ec
or eax, 0x5a93c4de
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], r9
cmp eax, 0x26e6bf74
jne 0x140055c56
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], r9
jmp 0x140055c11
mov rdi, qword [r8 + 0x20]
test rdi, rdi
mov qword [rsp + 0x60], r8
je 0x1400560ae
mov rcx, qword [r8 + 0x28]
imul rax, rcx, 0x38
add rax, rdi
mov qword [rsp + 0x78], rax
nop dword [rax + rax]
mov eax, dword [0x141f34ed8]
xor edx, edx
div dword [0x141f34edc]
or eax, 0xf7bfbfd9
imul eax, eax, 0x4f74e4eb
cmp eax, 0x67ce14ae
ja 0x140055c80
test rcx, rcx
je 0x1400561fb
mov rsi, qword [r8]
nop dword [rax]
mov eax, dword [0x141f34ee0]
xor eax, dword [0x141f34ee4]
or eax, 0x1ecbcac5
xor eax, 0xd9ff0950
imul eax, eax, 0xf5c9a320
cmp eax, 0xf042cbb5
ja 0x140055cb0
mov r14, qword [r8 + 0x10]
xor r13d, r13d
mov ebp, 0x87ca88eb
xor r12d, r12d
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], r14
nop dword [rax]
mov eax, dword [0x141f34f10]
xor edx, edx
div dword [0x141f34f14]
mov eax, dword [0x141f34f18]
xor edx, edx
div dword [0x141f34f1c]
imul eax, eax, 0x192447fe
add eax, 0x80b88cd6
cmp eax, 0x6705e20e
jb 0x140055cfe
mov rcx, r12
shl rcx, 4
mov rbx, qword [rsi + rcx + 8]
test rbx, rbx
je 0x140055e2a
add rcx, rsi
mov r14, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov eax, dword [0x141f34f38]
xor edx, edx
div dword [0x141f34f3c]
mov eax, dword [0x141f34f40]
xor eax, dword [0x141f34f44]
xor eax, 0x68b64cdc
imul rdx, rax, 0x20f1c93
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
xor eax, 0xcaa6f9b9
cmp eax, 0x8df3eb98
jb 0x140055d4e
mov qword [rsp + 0x80], r12
mov r15, qword [rcx]
mov rsi, qword [r8 + 0x18]
mov eax, dword [0x141f34f48]
sub eax, dword [0x141f34f4c]
imul rax, rax, 0x6c7f00f1
shr rax, 0x37
or eax, 0x77939335
imul eax, eax, 0xf3767bc9
cmp eax, 0x114488b4
jne 0x140055dd0
mov rcx, r14
mov rdx, r15
mov r8, rbx
call rsi
nop word cs:[rax + rax]
mov eax, dword [0x141f34f50]
sub eax, dword [0x141f34f54]
or eax, 0x9b7ec05a
mov rcx, rax
imul rcx, rbp
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
imul r12d, eax, 0x34d2d11b
mov rcx, r14
mov rdx, r15
mov r8, rbx
call rsi
cmp r12d, 0x5a03e09c
jb 0x140055dd0
test al, al
mov r12, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
jne 0x14005628a
lea rbx, [rdi + 0x38]
inc r12
movzx eax, byte [rdi + 0x30]
mov byte [rsp + 0x58], al
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x50], rax
mov eax, dword [0x141f34f58]
xor edx, edx
div dword [0x141f34f5c]
mov eax, dword [0x141f34f60]
or eax, dword [0x141f34f64]
imul rax, rax, 0x27f9b4fb
shr rax, 0x3d
imul eax, eax, 0xf628b9d
cmp eax, 0xb3a5ff0e
je 0x140055e50
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
test rax, rax
je 0x140055ee0
cmp eax, 1
jne 0x140055eda
nop word cs:[rax + rax]
mov eax, dword [0x141f34f70]
xor edx, edx
div dword [0x141f34f74]
or eax, 0x35020960
and eax, 0x75a27976
imul eax, eax, 0xbe05712a
cmp eax, 0xab5d7f7d
ja 0x140055e90
shl rcx, 4
add rcx, r14
mov rax, qword [rcx + 8]
mov edx, 0xcceb898d
nop word cs:[rax + rax]
test r13b, r13b
jne 0x140055ed0
test rax, rax
je 0x140055f0a
xor eax, eax
jmp 0x140055f3a
mov eax, dword [0x141f34f68]
and eax, dword [0x141f34f6c]
or eax, 0x642732de
xor eax, 0xedc5ed95
imul rax, rax, 0x15c305e5
shr rax, 0x39
cmp eax, 0x52ab87a4
je 0x140055ee0
jmp 0x140055f35
mov rcx, qword [rcx]
nop dword [rax]
mov eax, dword [0x141f34f78]
sub eax, dword [0x141f34f7c]
imul rax, rdx
shr rax, 0x3d
or eax, 0x74ea06c9
and eax, 0x74ea06cd
cmp eax, 0xf01dbfa9
ja 0x140055f10
mov eax, 1
mov edx, dword [0x141f34f80]
and edx, dword [0x141f34f84]
xor edx, 0xca92f854
cmp edx, 0xc1b7106a
jbe 0x140055f60
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
nop
mov edx, dword [0x141f34f88]
or edx, dword [0x141f34f8c]
add edx, 0xe2c8eda9
xor edx, 0x20c0c42
and edx, 0x43cd1c76
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
cmp edx, 0xd9212d79
ja 0x140055f60
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
test rax, rax
je 0x14005603d
cmp eax, 1
jne 0x140056018
mov eax, dword [0x141f34f90]
xor edx, edx
div dword [0x141f34f94]
nop word cs:[rax + rax]
test r13b, r13b
jne 0x140055fc0
mov eax, dword [0x141f34f98]
imul eax, dword [0x141f34f9c]
shr eax, 2
imul rax, rax, 0x2d501aeb
shr rax, 0x37
and eax, 0xfffffff0
imul eax, eax, 0x7b59df85
cmp eax, 0x52ace8b3
ja 0x140055fc5
shl rcx, 4
add rcx, r14
mov eax, dword [0x141f34fa0]
mov edx, dword [0x141f34fa4]
add eax, edx
add eax, 0xe361855e
cmp eax, 0xd8f4b9f1
ja 0x140055ff7
cmp qword [rcx + 8], 0
je 0x14005601c
xor eax, eax
jmp 0x140056042
mov rcx, qword [rcx]
nop
mov eax, dword [0x141f34fa8]
xor eax, dword [0x141f34fac]
or eax, 0xc2c84411
and eax, 0xd6c844d1
cmp eax, 0x9ed60c19
je 0x140056020
mov eax, 1
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rcx
mov rax, qword [rdi + 0x20]
shl rax, 4
mov rcx, qword [r14 + rax]
lea rdx, [rsp + 0x20]
call qword [r14 + rax + 8]
test al, al
jne 0x14005628a
mov eax, dword [0x141f34fb0]
xor edx, edx
div dword [0x141f34fb4]
mov eax, dword [0x141f34fb8]
imul eax, dword [0x141f34fbc]
add eax, 0x8f8b604
xor eax, 0x40245202
and eax, 0xd974d246
cmp eax, 0x5a16b406
jb 0x140056078
mov rdi, rbx
cmp rbx, qword [rsp + 0x78]
jne 0x140055cf0
jmp 0x1400561fe
xor eax, eax
test al, al
jne 0x1400560b0
mov rsi, qword [r8 + 0x18]
test rsi, rsi
je 0x1400561fb
mov r14, qword [r8 + 0x10]
shl rsi, 4
add rsi, r14
xor r12d, r12d
nop
mov eax, dword [0x141f34ed0]
add eax, dword [0x141f34ed4]
imul eax, eax, 0xc5c2432e
cmp eax, 0x54517abd
je 0x1400560d0
mov rbx, qword [r8]
xor ebp, ebp
lea rdi, [rsp + 0x20]
nop word cs:[rax + rax]
mov rax, r12
shl rax, 4
mov r8, qword [rbx + rax + 8]
test r8, r8
je 0x140056173
add rax, rbx
nop word cs:[rax + rax]
mov ecx, dword [0x141f34ef0]
or ecx, dword [0x141f34ef4]
imul ecx, ecx, 0x877a0648
cmp ecx, 0xb4ba7e03
ja 0x140056120
mov rcx, qword [rsp + 0x40]
mov edx, dword [0x141f34ef8]
or edx, dword [0x141f34efc]
or edx, 0xb6da7575
add edx, 0x36bcc011
cmp edx, 0x6c1fd70e
jb 0x14005613f
mov r9, qword [rsp + 0x48]
mov rdx, qword [rax]
call qword [r9 + 0x18]
test al, al
jne 0x14005628a
lea r15, [r14 + 0x10]
inc r12
mov rcx, qword [r14]
nop dword [rax]
test bpl, bpl
jne 0x140056180
mov rdx, rdi
call qword [r14 + 8]
test al, al
jne 0x14005628a
mov eax, dword [0x141f34f00]
xor eax, dword [0x141f34f04]
add eax, 0xe14f91ee
xor eax, 0xd407feca
imul rcx, rax, 0x55656f55
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
cmp eax, 0x94f522af
ja 0x140056194
nop word cs:[rax + rax]
mov eax, dword [0x141f34f08]
and eax, dword [0x141f34f0c]
add eax, 0xfe0a21d0
and eax, 0xe596938e
cmp eax, 0xb3c5f3ae
ja 0x1400561d0
mov r14, r15
cmp r15, rsi
jne 0x140056100
jmp 0x1400561fe
xor r12d, r12d
mov rcx, qword [rsp + 0x60]
nop word cs:[rax + rax]
mov eax, dword [0x141f34ee8]
and eax, dword [0x141f34eec]
imul eax, eax, 0x68f5593c
add eax, 0x30aacbb9
or eax, 0x5106b379
cmp eax, 0xd6127c17
je 0x140056210
cmp r12, qword [rcx + 8]
jae 0x140056290
shl r12, 4
mov rcx, qword [rsp + 0x60]
nop word cs:[rax + rax]
mov eax, dword [0x141f34f20]
xor eax, dword [0x141f34f24]
add eax, 0x7a4e9628
xor eax, 0xa4fc9b52
cmp eax, 0x36c30f2a
ja 0x140056250
add r12, qword [rcx]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
call qword [rax + 0x18]
test al, al
je 0x140056290
mov cl, 1
jmp 0x1400562b1
mov eax, dword [0x141f34f28]
imul eax, dword [0x141f34f2c]
and eax, 0x1a09983a
imul eax, eax, 0xa1bc468b
cmp eax, 0x1bb29953
je 0x140056290
xor ecx, ecx
mov r8d, 0xdc829a65
nop word [rax + rax]
mov eax, dword [0x141f34f30]
xor edx, edx
div dword [0x141f34f34]
xor eax, 0xf0c8c284
and eax, 0xfdcdef84
imul rax, r8
shr rax, 0x3e
cmp eax, 0xb789ae87
ja 0x1400562c0
mov eax, ecx
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret