Function at 0x140311b80
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
test ecx, ecx
je 0x140311d0f
mov eax, dword [0x1405401a0]
mov r8d, dword [0x140540528]
add eax, r8d
add eax, 0x50117d6e
cdqe
add rax, qword [0x140540270]
add r8d, 0x5f2827d9
mov ecx, edx
mov edx, r8d
call qword [0x1404ee420]
test al, 1
je 0x140311d43
mov edi, 0xf94c
mov ebx, 0xd8e831df
lea rsi, [rsp + 0x40]
mov ebp, 0x500f8ad6
nop word cs:[rax + rax]
mov eax, dword [0x140540180]
add eax, edi
cdqe
add rax, qword [0x140540278]
mov edx, dword [0x140540528]
add edx, ebx
mov rcx, rsi
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x40]
mov eax, dword [0x140540178]
add eax, edi
cdqe
add rax, qword [0x140540268]
mov edx, 0xb1e7b5d8
call qword [0x1404ee420]
test al, 1
je 0x140311c87
movzx r14d, byte [0x140540068]
mov ecx, dword [0x140566b9c]
mov eax, dword [0x140540168]
mov edx, dword [0x140540528]
mov r8d, edx
xor r8d, 0x50108422
and edx, 0x50108422
lea edx, [r8 + rdx*2]
add eax, edx
add eax, 0xf94c
cdqe
add rax, qword [0x140540290]
mov edx, 0xb9f3189a
call qword [0x1404ee420]
test al, 1
jne 0x140311e6a
movzx eax, byte [0x140540068]
mov eax, dword [0x140566b98]
mov edx, dword [0x140540528]
mov ecx, eax
sub ecx, edx
add ecx, 0xafef7bdd
imul ecx, eax
mov eax, dword [0x14054016c]
add eax, edx
add eax, 0x50117d6e
cdqe
add rax, qword [0x140540248]
mov rdx, rsi
mov r8d, 0x4a3827c4
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x40]
mov eax, dword [0x140540528]
add eax, ebp
xor edx, edx
sub edx, dword [0x140540184]
mov r8d, eax
xor r8d, edx
and edx, eax
lea eax, [r8 + rdx*2]
neg eax
cdqe
add rax, qword [0x1405402a0]
mov edx, 0x64ceebc5
call qword [0x1404ee420]
test al, 1
je 0x140311bf0
jmp 0x140311c36
test edx, edx
je 0x140311e99
mov eax, 0xf94c
add eax, dword [0x140540160]
cdqe
add rax, qword [0x140540230]
mov ecx, 0x981d5f65
call qword [0x1404ee420]
test al, 1
jne 0x1403122d3
jmp 0x1403122f8
mov eax, dword [0x1405401c0]
mov ecx, dword [0x140540528]
add eax, ecx
add eax, 0x50117d6e
cdqe
add rax, qword [0x140540240]
mov ecx, 0x55246f8a
call qword [0x1404ee420]
test al, 1
jne 0x140312210
mov edi, 0xf94c
mov ebx, 0xdb410850
lea rsi, [rsp + 0x40]
jmp 0x140311d9a
cmp bpl, 0xe5
je 0x140312210
mov eax, dword [0x140540154]
add eax, edi
cdqe
add rax, qword [0x140540258]
mov edx, dword [0x140540528]
add edx, ebx
mov rcx, rsi
call qword [0x1404ee420]
test al, 1
jne 0x140311f26
movzx ebp, byte [rsp + 0x40]
nop dword [rax]
mov ecx, dword [0x140566b98]
mov edx, ecx
sub edx, dword [0x140540528]
add edx, 0xafef7bdd
mov eax, dword [0x140540198]
add eax, edi
cdqe
add rax, qword [0x140540288]
mov r8, rsi
mov r9d, 0xd3d27d73
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x40]
mov eax, dword [0x14054015c]
add eax, edi
cdqe
add rax, qword [0x1405401e0]
mov rdx, rsi
mov r8d, 0x4ad1f462
call qword [0x1404ee420]
mov eax, dword [0x140540528]
mov ecx, eax
xor ecx, 0x50108422
and eax, 0x50108422
lea eax, [rcx + rax*2]
cmp dword [rsp + 0x40], eax
jne 0x140311e59
mov eax, dword [0x140566b98]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140311d90
mov eax, dword [0x140566b9c]
cmp eax, 0x12
jge 0x140311dd0
jmp 0x140311e44
cmp r14b, 0x2b
je 0x1403121fc
mov cl, 0xfe
nop word cs:[rax + rax]
mov al, 0x57
lock cmpxchg byte [0x140540068], cl
je 0x140312146
cmp al, 0x2b
jne 0x140311e80
jmp 0x1403121fc
movzx eax, byte [0x140540000]
cmp al, 0x67
je 0x1403122bb
mov cl, 8
mov edx, 0x50108422
jmp 0x140311ec8
cmp al, 0x67
je 0x1403122bb
mov al, 0x6c
lock cmpxchg byte [0x140540000], cl
je 0x14031225a
nop dword [rax + rax]
mov r8d, dword [0x140566b98]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x140540528]
add r8d, edx
cmp r9d, r8d
jne 0x140311f17
mov r8d, dword [0x140566b98]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x140311ec0
mov r8d, dword [0x140566b9c]
cmp r8d, 0x30
jge 0x140311ee0
jmp 0x140311f02
xor r14d, r14d
mov r15d, 0xf94c
lea r12, [0x14053fe70]
lea r13, [0x140449c30]
lea rsi, [rsp + 0x40]
lea rdi, [rsp + 0x3f]
xor ebx, ebx
jmp 0x140311f5f
mov ebx, dword [rsp + 0x40]
test byte [rsp + 0x3f], 1
jne 0x140312208
mov eax, dword [0x1405401b0]
add eax, r15d
cdqe
add rax, qword [0x140540200]
mov ecx, 0xd821f747
call qword [0x1404ee420]
mov eax, dword [0x1405401b4]
add eax, r15d
cdqe
add rax, qword [0x140540238]
mov ecx, 0xa2098bbb
call qword [0x1404ee420]
movsxd rbx, ebx
test al, 1
je 0x140312037
nop word cs:[rax + rax]
movzx eax, byte [rbx + r13]
mov ebp, eax
xor bpl, al
not bpl
and bpl, byte [rbx + r12]
xor bpl, al
mov ecx, dword [0x140540528]
mov eax, dword [0x140540158]
add eax, r15d
cdqe
add rax, qword [0x140540228]
mov edx, ecx
xor edx, 0x12b089f6
and ecx, 0x12b089f6
lea r8d, [rdx + rcx*2]
mov ecx, ebx
mov rdx, rsi
call qword [0x1404ee420]
mov rdx, qword [rsp + 0x40]
add rdx, r12
mov eax, dword [0x140540150]
add eax, r15d
cdqe
add rax, qword [0x140540250]
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0x564e95ae
mov ecx, ebp
mov r8d, ebx
mov r9, rsi
call qword [0x1404ee420]
test r14b, r14b
je 0x140311f50
lea rcx, [r12 + rbx]
mov eax, dword [0x1405401ac]
sub eax, dword [0x140540528]
add eax, 0xaff0752a
cdqe
add rax, qword [0x1405402b0]
mov dword [rsp + 0x20], 0x9983a6e5
mov edx, ebx
mov r8, rdi
mov r9, rsi
call qword [0x1404ee420]
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
movzx edx, byte [rcx]
sub al, dl
mul dl
movzx r8d, byte [0x140540538]
xor ecx, ecx
sub cl, r8b
mov r8d, ecx
xor r8b, 0xb6
and cl, 0x36
add cl, cl
add cl, r8b
add cl, al
sub al, dl
mul dl
mov edx, eax
neg cl
mov eax, ecx
mul dl
mov r9d, edx
xor r9b, dl
not r9b
and r9b, al
xor r9b, dl
lea ecx, [rbx + rbx]
mov r8d, dword [0x140540528]
mov edx, ebx
sub edx, r8d
add edx, 0xafef7bde
mov eax, edx
shl eax, cl
mov ecx, eax
shl edx, cl
mov byte [rbx + r12], r9b
mov ebp, eax
sub ebp, edx
neg edx
imul edx, eax
mov ecx, ebp
neg ecx
mov eax, dword [0x140540164]
add eax, r15d
cdqe
add rax, qword [0x140540298]
mov r9d, r8d
xor r9d, 0xfa0b4a06
and r8d, 0x7a0b4a06
lea r9d, [r9 + r8*2]
mov r8, rsi
call qword [0x1404ee420]
mov edx, dword [rsp + 0x40]
mov eax, dword [0x1405401a4]
mov ecx, dword [0x140540528]
add eax, ecx
add eax, 0x50117d6e
cdqe
add rax, qword [0x140540260]
mov ecx, ebp
mov r8d, 0x9a244044
call qword [0x1404ee420]
jmp 0x140311fb0
xor edi, edi
mov ebx, 0xf94c
mov ebp, 0xc63964d2
lea rsi, [rsp + 0x40]
lea r14, [0x140540050]
lea r15, [0x140449de0]
mov r12d, 0x5010843a
nop dword [rax + rax]
mov eax, dword [0x140540174]
add eax, ebx
cdqe
add rax, qword [0x140540218]
mov r8d, dword [0x140540528]
add r8d, ebp
mov ecx, edi
mov rdx, rsi
call qword [0x1404ee420]
mov rax, qword [rsp + 0x40]
movzx edx, byte [rax + r14]
movsxd rcx, edi
add dl, byte [rcx + r15]
mov eax, dword [0x14054017c]
add eax, ebx
cdqe
add rax, qword [0x140540208]
mov dword [rsp + 0x20], 0x7d7cc73c
mov r8d, ecx
mov r9, rsi
call qword [0x1404ee420]
mov edi, dword [rsp + 0x40]
mov eax, dword [0x140540528]
add eax, r12d
cmp edi, eax
jl 0x140312170
mov eax, 0xf94c
add eax, dword [0x14054019c]
cdqe
add rax, qword [0x140540210]
mov ecx, 0xb5861be0
call qword [0x1404ee420]
lea rax, [0x140540050]
jmp 0x1403122c2
mov al, 0xe5
xchg byte [0x14053fe72], al
mov eax, 0xf94c
add eax, dword [0x1405401bc]
cdqe
add rax, qword [0x1405401d8]
mov ecx, 0xff447b54
call qword [0x1404ee420]
nop
mov eax, dword [0x140566b9c]
mov ecx, dword [0x140540528]
mov edx, ecx
xor edx, 0x50108446
and ecx, 0x50108446
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x140312230
lea rax, [0x14053fe70]
jmp 0x1403122c2
xor eax, eax
lea rdi, [0x14053fff0]
lea rbx, [0x140449da0]
mov ebp, 0xf94c
lea rsi, [rsp + 0x40]
nop word cs:[rax + rax]
movsxd rcx, eax
movzx eax, byte [rcx + rbx]
add byte [rcx + rdi], al
mov eax, dword [0x14054018c]
add eax, ebp
cdqe
add rax, qword [0x1405401e8]
mov rdx, rsi
mov r8d, 0xee54251f
call qword [0x1404ee420]
mov eax, dword [rsp + 0x40]
cmp eax, 0x10
jl 0x140312280
mov al, 0x67
xchg byte [0x140540000], al
lea rax, [0x14053fff0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [0x14053ffb5]
mov ecx, dword [0x140566b98]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0x50108422
add ecx, dword [0x140540528]
cmp edx, ecx
je 0x140312301
movzx eax, byte [0x14053ffb5]
jmp 0x1403122d3
cmp al, 0x9c
je 0x14031253a
mov bl, 0x40
mov edi, 0xf94c
lea rsi, [rsp + 0x40]
nop word cs:[rax + rax]
mov al, 0x45
lock cmpxchg byte [0x14053ffb5], bl
sete dl
mov ecx, dword [0x140540170]
add ecx, edi
movsxd r10, ecx
add r10, qword [0x1405401f0]
mov ecx, eax
mov r8, rsi
mov r9d, 0x6804ac8f
mov rax, r10
call qword [0x1404ee420]
test al, 1
jne 0x140312363
cmp byte [rsp + 0x40], 0x9c
jne 0x140312320
jmp 0x14031253a
xor esi, esi
mov r15d, 0xf94c
lea rdi, [rsp + 0x40]
lea r12, [0x14053ffa0]
lea r13, [0x140449d50]
lea rbx, [rsp + 0x3f]
jmp 0x1403123a4
mov eax, esi
xor eax, 1
and esi, 1
lea esi, [rax + rsi*2]
cmp esi, 0x15
jge 0x140312532
mov eax, dword [0x140566b9c]
movsxd r14, esi
cmp eax, 0x4b
jg 0x14031241b
nop word cs:[rax + rax]
mov eax, dword [0x140540188]
add eax, r15d
cdqe
add rax, qword [0x1405401f8]
mov ecx, r14d
mov rdx, rdi
mov r8d, 0x76b9c2df
call qword [0x1404ee420]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + r12]
xor al, byte [r14 + r13]
mov byte [r14 + r12], al
mov eax, dword [0x140540194]
add eax, r15d
cdqe
add rax, qword [0x140540280]
mov ecx, 0xa25d4f78
call qword [0x1404ee420]
test al, 1
jne 0x140312390
mov eax, dword [0x1405401a8]
mov ecx, dword [0x140540528]
add eax, ecx
add eax, 0x50117d6e
cdqe
add rax, qword [0x1405402a8]
mov ecx, esi
mov rdx, rbx
mov r8, rdi
mov r9d, 0xcf16a19b
call qword [0x1404ee420]
movzx edx, byte [rsp + 0x3f]
movzx ecx, byte [rsp + 0x40]
movzx eax, byte [0x140540538]
sub al, dl
shl dl, cl
add al, dl
add al, 0x4a
mov r8d, eax
mov ecx, edx
shl r8b, cl
mov ecx, r8d
shl al, cl
sub al, r8b
mul r8b
mov cl, 0x68
sub cl, al
mov edx, ecx
xor dl, 0x98
and cl, 0x18
add cl, cl
add dl, r8b
add dl, cl
not dl
mov ecx, edx
or cl, al
not cl
and dl, al
or dl, cl
mov byte [r14 + r12], dl
mov ebp, 1
sub ebp, esi
mov ecx, esi
sub ecx, ebp
imul ecx, ebp
mov eax, dword [0x1405401b8]
add eax, r15d
cdqe
add rax, qword [0x1405401d0]
mov edx, ebp
mov r8, rdi
mov r9d, 0x86e1f820
call qword [0x1404ee420]
mov eax, dword [rsp + 0x40]
mov edx, eax
mov ecx, ebp
shl edx, cl
sub eax, edx
imul eax, edx
mov ecx, eax
sub ecx, edx
imul ecx, edx
mov edx, dword [0x140540528]
sub edx, eax
add edx, ecx
add edx, 0x50108422
mov ecx, eax
xor ecx, 0x941c99b8
and eax, 0x141c99b8
lea ecx, [rcx + rax*2]
sub ecx, edx
add ecx, 0x6be36648
imul ecx, edx
mov eax, dword [0x140540190]
add eax, r15d
cdqe
add rax, qword [0x140540220]
mov rdx, rdi
mov r8d, 0xc43b5941
call qword [0x1404ee420]
jmp 0x1403123c0
mov al, 0x9c
xchg byte [0x14053ffb5], al
lea rax, [0x14053ffa0]
jmp 0x1403122c2