Function at 0x140249b40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov eax, dword [0x1415d3954]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x60]
mov rsi, qword [rax + 0x68]
mov eax, dword [0x1415c57d0]
xor eax, dword [0x1415c57d4]
imul eax, eax, 0x79c476e8
add eax, 0xf5352e68
or eax, 0xeeee360b
cmp eax, 0xbf83d62
jb 0x140249bd2
mov eax, dword [0x1415c57d8]
mov edx, dword [0x1415c57dc]
mov r8d, eax
and r8d, edx
or eax, edx
add eax, r8d
imul rax, rax, 0x10410907
shr rax, 0x3c
mov edx, dword [0x1415d3954]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov qword [rdx + 0x60], 1
cmp eax, 0xb6c00ae5
jne 0x140249bf2
mov eax, dword [0x1415d3954]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov qword [rax + 0x60], 1
jmp 0x140249b8b
mov eax, dword [0x1415c57e0]
or eax, dword [0x1415c57e4]
add eax, 0x3d2ebbfe
imul rax, rax, 0x3c39725d
shr rax, 0x3d
imul eax, eax, 0xb900c7dd
cmp eax, 0xdfafd3d3
jbe 0x140249c40
mov eax, dword [0x1415d3954]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov qword [rax + 0x68], 0
nop dword [rax]
mov eax, dword [0x1415d3954]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov edx, dword [0x1415c57ec]
not edx
add edx, dword [0x1415c57e8]
imul edx, edx, 0xfaa32076
add edx, 0x4b8b6637
mov qword [rax + 0x68], 0
cmp edx, 0x88cdfd2b
ja 0x140249c40
test rcx, rcx
je 0x140249e90
nop dword [rax]
mov eax, dword [0x1415c5858]
xor edx, edx
div dword [0x1415c585c]
add eax, 0x5f0afcec
mov edx, eax
and edx, 0x659f7594
add edx, edx
sub eax, edx
add eax, 0x659f7594
or eax, 0x6967ba92
cmp eax, 0xf9688853
ja 0x140249c90
test rsi, rsi
sete dl
cmp ecx, 1
setne al
or al, dl
nop
mov ecx, dword [0x1415c5860]
mov edx, dword [0x1415c5864]
mov r8d, ecx
xor r8d, edx
not r8d
or ecx, edx
and ecx, r8d
xor ecx, 0x5643040f
cmp ecx, 0x6b0d3d94
je 0x140249cd0
test al, al
jne 0x14024a4d0
mov eax, dword [0x1415c5868]
mov ecx, dword [0x1415c586c]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0xb6c938c1
or ecx, 0x4936c73e
and ecx, eax
cmp ecx, 0xffcf1df7
jne 0x140249d40
lock dec qword [rsi]
nop word cs:[rax + rax]
mov eax, dword [0x1415c5870]
or eax, dword [0x1415c5874]
add eax, 0xbe9d3794
mov ecx, eax
xor ecx, 0x5971fb4
and eax, 0x1a68e04b
add eax, eax
sub eax, ecx
or eax, 0xd5ac8091
mov rcx, 0xffffffffffffffff
lock xadd qword [rsi], rcx
cmp eax, 0xbef28675
jb 0x140249d40
mov eax, dword [0x1415c5878]
xor edx, edx
div dword [0x1415c587c]
nop dword [rax + rax]
mov eax, dword [0x1415c5880]
and eax, dword [0x1415c5884]
imul rdx, rax, 0x10242f3d
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
lea edx, [rax - 0x3c7ee76e]
imul edx, edx, 0x162508
or eax, 0xffb7bdda
imul eax, eax, 0x3c208040
add eax, edx
cmp eax, 0xef031720
je 0x140249d90
mov eax, dword [0x1415c588c]
add eax, dword [0x1415c5888]
mov edx, eax
not edx
and edx, 0x539e4e85
mov r8d, eax
and r8d, 0xac61b17a
imul r8d, edx
mov edx, eax
and edx, 0x539e4e85
or eax, 0x539e4e85
imul eax, edx
add eax, r8d
mov edx, eax
xor edx, 0x5d58bc12
and eax, 0x22a743ed
add eax, eax
sub eax, edx
and eax, 0x4ee6d14d
cmp eax, 0x5e4911f5
ja 0x140249dd0
cmp rcx, 1
jne 0x14024a4d0
mov ecx, dword [0x1415c5890]
mov eax, dword [0x1415c5894]
not ecx
not eax
or eax, ecx
not eax
add eax, 0xc042ff80
mov ecx, eax
not ecx
and ecx, 0xcb70697b
mov edx, eax
and edx, 0x348f9684
imul edx, ecx
mov ecx, eax
and ecx, 0xcb70697b
or eax, 0xcb70697b
imul eax, ecx
add eax, edx
mov ecx, eax
and ecx, 0x25d15f5
add ecx, ecx
sub eax, ecx
add eax, 0x825d15f5
cmp eax, 0xd0ccd61e
jae 0x14024a40b
jmp 0x14024a455
mov eax, dword [0x1415c57f0]
or eax, dword [0x1415c57f4]
mov ecx, eax
xor ecx, 0x341387b6
and eax, 0x4bec7849
add eax, eax
sub eax, ecx
imul rax, rax, 0x103f7273
shr rax, 0x3c
imul eax, eax, 0xb8fb339e
cmp eax, 0xc84ebe1
ja 0x140249e90
mov eax, dword [0x1415d3954]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x40]
mov ecx, 0xe826427d
nop word cs:[rax + rax]
mov edx, dword [0x1415c57f8]
mov r8d, edx
not r8d
or r8d, dword [0x1415c57fc]
add edx, r8d
inc edx
xor edx, 0x8a985083
or edx, 0x70472648
imul rdx, rcx
shr rdx, 0x39
cmp edx, 0xa66a2801
ja 0x140249ef0
test rax, rax
jne 0x140249f89
mov eax, dword [0x1415c5800]
mov ecx, dword [0x1415c5804]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
mov ecx, eax
xor ecx, 0x746f5831
and eax, 0xb90a7ce
add eax, eax
sub eax, ecx
shr eax, 1
imul rax, rax, 0x43532e11
shr rax, 0x3b
mov ecx, eax
not ecx
or ecx, 0x171c814a
add eax, ecx
inc eax
cmp eax, 0x462b2ae4
jbe 0x140249fb4
jmp 0x140249ff3
mov eax, dword [0x1415c5818]
sub eax, dword [0x1415c581c]
xor eax, 0xbe9d3657
add eax, 0x4d72e2ba
and eax, 0x873dbcb6
cmp eax, 0x11b58176
jne 0x14024a18c
jmp 0x14024a1cb
mov eax, dword [0x1415d3954]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov ecx, dword [0x1415c5808]
and ecx, dword [0x1415c580c]
and ecx, 0xfda48e21
mov qword [rax + 0x40], 0xffffffffffffffff
mov rax, qword [0x140258638]
cmp ecx, 0x8cd583b8
jne 0x14024a020
mov eax, dword [0x1415d3954]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x40], 0xffffffffffffffff
mov rax, qword [0x140258638]
jmp 0x140249fb4
mov eax, dword [0x1415c5810]
mov ecx, dword [0x1415c5814]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
mov ecx, eax
and ecx, 0xb9a5ddd8
and eax, 0x10a44908
xor ecx, 0x10a66b0b
lea eax, [rcx + rax*2]
mov ecx, eax
not ecx
or eax, 0x5a8fc4b0
or ecx, 0xa5703b4e
and ecx, eax
cmp ecx, 0xe42b331
je 0x14024a020
mov eax, dword [0x1415d3954]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rsi, qword [rax + 0x58]
cmp rsi, qword [rax + 0x48]
jne 0x14024a161
call fcn.140147fa0
mov eax, dword [0x1415d3954]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x40]
mov rax, rcx
or rax, 1
nop dword [rax + rax]
mov edx, dword [0x1415c5838]
sub edx, dword [0x1415c583c]
or edx, 0xfbfefbcf
mov r8d, edx
and r8d, 0x6c47fdcf
add r8d, r8d
neg r8d
add edx, r8d
add edx, 0x6c47fdcf
cmp edx, 0x439b921
jb 0x14024a0d0
and ecx, 1
add rcx, rax
nop dword [rax]
mov eax, dword [0x1415c5840]
xor edx, edx
div dword [0x1415c5844]
xor eax, 0x8840000a
mov edx, eax
and edx, 0xd84c5c1b
mov r8d, edx
not r8d
and r8d, 0x66d91bd7
mov r9d, eax
and r9d, 0x98044408
imul r9d, r8d
and eax, 0x40481813
or edx, 0x66d91bd7
imul edx, eax
add edx, r9d
cmp edx, 0x89dcd6d9
je 0x14024a110
jmp 0x14024a163
xor ecx, ecx
mov eax, dword [0x1415c5848]
mov edx, dword [0x1415c584c]
not eax
not edx
or edx, eax
and edx, 0x547085e1
cmp edx, 0x4485ea0d
jne 0x14024a2e2
jmp 0x14024a3b0
mov eax, dword [0x1415c5820]
mov ecx, dword [0x1415c5824]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
cmp eax, 0x82506893
jne 0x14024a1da
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
jmp 0x14024a18c
lea rax, [0x14159f0c0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x28]
mov qword [rsp + 0x40], rax
mov eax, dword [0x1415c5828]
add eax, dword [str.s1B]
xor eax, 0xff9bb28e
cmp eax, 0x7d2a66d5
jne 0x14024a241
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x20]
lea rdx, [rsp + 0x30]
call fcn.14021b6a0
mov rcx, rax
call fcn.14021acc0
mov ecx, 7
int 0x29
lea rsi, [rsp + 0x20]
lea rdi, [rsp + 0x30]
nop dword [rax + rax]
mov eax, dword [0x1415c5830]
and eax, dword [0x1415c5834]
mov ebx, eax
xor ebx, 0xa10581d4
xor eax, 0x4c5a6208
and eax, 0xec5e6258
mov ecx, ebx
and ecx, 0x13a19da7
imul ecx, eax
mov eax, ebx
and eax, 0xec5e6258
or ebx, 0xec5e6258
imul ebx, eax
add ebx, ecx
mov eax, ebx
not eax
and eax, 0x3aac7e1d
mov ecx, ebx
and ecx, 0xc55381e0
imul ecx, eax
mov eax, ebx
and eax, 0x3aac7e18
or ebx, 0x3aac7e1d
imul ebx, eax
add ebx, ecx
mov qword [rsp + 0x48], 0
mov rcx, rsi
mov rdx, rdi
call fcn.140142c60
mov rcx, rax
call fcn.14021acc0
mov ecx, 7
int 0x29
cmp ebx, 0x66c0edbb
ja 0x14024a250
ud2
mov eax, dword [0x1415c5850]
xor edx, edx
div dword [0x1415c5854]
mov edx, eax
not edx
and edx, 0xea6f63d1
mov r8d, eax
and r8d, 0x15909c2e
imul r8d, edx
mov edx, eax
and edx, 0xea6f63d1
or eax, 0xea6f63d1
imul eax, edx
add eax, r8d
mov edx, eax
not edx
mov r8d, eax
and r8d, 0xbe761183
and edx, 0x4189ee7c
imul edx, r8d
mov r8d, eax
and r8d, 0x4189ee7c
or eax, 0x4189ee7c
imul eax, r8d
add eax, edx
mov edx, eax
not edx
or eax, 0x7a6f194d
or edx, 0x8590e6b2
and edx, eax
mov rax, rsi
shl rax, 4
mov r8d, dword [0x1415d3954]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
mov r9, qword [r8 + 0x50]
lea r10, [r8 + 0x60]
mov qword [r9 + rax], r10
lea r10, [0x140175820]
mov qword [r9 + rax + 8], r10
lea rax, [rsi + 1]
mov qword [r8 + 0x58], rax
mov qword [r8 + 0x40], rcx
cmp edx, 0xf28903a2
jne 0x14024a4d0
mov eax, dword [0x1415d3954]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov rdx, qword [rax + 0x50]
mov r8, rsi
shl r8, 4
lea r9, [rax + 0x60]
mov qword [rdx + r8], r9
lea r9, [0x140175820]
mov qword [rdx + r8 + 8], r9
mov edx, esi
and edx, 1
mov r8, rsi
xor r8, 1
lea rdx, [r8 + rdx*2]
mov qword [rax + 0x58], rdx
mov qword [rax + 0x40], rcx
jmp 0x14024a2e2
mov eax, dword [0x1415c5898]
xor eax, dword [0x1415c589c]
mov ecx, eax
xor ecx, 0xedeffdfc
or eax, 0x12100203
and eax, ecx
mov ecx, eax
or ecx, 0xac641da8
not eax
and eax, 0x1193e012
mov edx, ecx
and edx, 0x4208034d
or edx, eax
xor edx, 0xd2734014
and ecx, 0x6f84bca6
or ecx, edx
cmp ecx, 0x9bfbc702
jne 0x14024a457
jmp 0x14024a40b
mov eax, dword [0x1415c58a0]
imul eax, dword [0x1415c58a4]
mov ecx, eax
and ecx, 0x43704a85
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x1b90113a
mov ecx, 0x8c185dbf
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0x21f51b52
ja 0x14024a4c4
mov eax, dword [0x1415c58a8]
xor edx, edx
div dword [0x1415c58ac]
imul rax, rax, 0x3b7827ed
shr rax, 0x3c
mov ecx, eax
add ecx, ecx
neg ecx
lea edi, [rax + rcx]
add edi, 0x298dd923
mov rcx, rsi
call fcn.14021b840
cmp edi, 0x540e4aee
jbe 0x14024a4d0
mov rcx, rsi
call fcn.140124030
jmp 0x14024a48c
mov eax, dword [0x1415c58b0]
xor edx, edx
div dword [0x1415c58b4]
mov ecx, eax
xor ecx, 0x49c0070
or eax, 0x80426003
and eax, ecx
mov ecx, eax
or ecx, 0x7b219f8c
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xee7e7b3f
and edx, 0x118184c0
imul edx, r8d
and ecx, 0x118184c0
or eax, 0x7ba19fcc
imul eax, ecx
add eax, edx
cmp eax, 0x961946be
je 0x14024a4d0
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret