Function at 0x140049680
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x158
mov qword [rsp + 0xf8], rcx
call fcn.140043b19
mov rcx, qword [rsp + 0xf8]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x148], 0
lea rax, [rsp + 0x148]
add rax, 8
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x150], 0
mov rcx, qword [rcx]
mov edx, 2
lea r8, [rsp + 0x140]
call fcn.140044820
test al, 1
jne 0x1400496f4
jmp 0x140049812
mov eax, dword [0x1401ca170]
mov edx, dword [0x1401ca174]
xor edx, 0x71110879
mov ecx, eax
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
and ecx, eax
mov eax, 0x3de4e3e8
xor eax, 0xc21b1c17
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x9184bd4a
mov edx, 0xffffffff
xor edx, 0x9184bd4a
and ecx, edx
or eax, ecx
xor eax, 0x431d8e94
mov ecx, 0x154bbe9e
xor ecx, 0xe2f683c
and eax, ecx
mov ecx, 0xca4d753d
xor ecx, 0x7f02dc0a
cmp eax, ecx
je 0x14004a25d
mov ecx, dword [0x1401ca178]
mov edx, dword [0x1401ca17c]
mov eax, ecx
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
and eax, r8d
mov r8d, 0xad1523a3
xor r8d, 0x52eadc5c
xor ecx, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
mov ecx, 0x8825f1f3
xor ecx, 0x77da0e0c
xor eax, ecx
add eax, 0x21772fc2
mov edx, eax
xor edx, 0xffffffff
and edx, 0x918a9ec7
mov r8d, 0x8ea0e59d
xor r8d, 0x1f2a7b5a
mov ecx, 0x6f80bb28
xor ecx, 0x907f44d7
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x918a9ec7
or eax, 0x918a9ec7
imul eax, edx
add eax, ecx
sub eax, 0x854e84db
mov dword [rsp + 0xf4], eax
call fcn.140008024
mov eax, dword [rsp + 0xf4]
cmp eax, 0x976b461a
je 0x140049766
jmp 0x14004a252
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xe8], rax
cmp rax, 0
jge 0x14004984c
mov rcx, qword [rsp + 0xe8]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000c8ac
jmp 0x14004a252
mov rdx, qword [rsp + 0xe8]
lea rcx, [rsp + 0x148]
call fcn.14001c830
mov r8, qword [rsp + 0xf8]
mov rax, qword [rsp + 0x108]
mov rdx, qword [r8]
mov qword [rsp + 0xc0], rdx
mov rcx, r8
add rcx, 8
mov qword [rsp + 0xc8], rcx
mov rcx, qword [r8 + 8]
mov r9, qword [rsp + 0x148]
mov qword [r8], r9
mov r9, qword [rsp + 0x150]
mov qword [r8 + 8], r9
mov qword [rsp + 0x148], rdx
mov qword [rax], rcx
lea rax, [rsp + 0x130]
add rax, 8
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0x120]
add rax, 8
mov qword [rsp + 0xd8], rax
xor eax, eax
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xb8], rax
mov ecx, dword [0x1401ca180]
xor ecx, 0x7c76a0e3
mov eax, dword [0x1401ca184]
sub ecx, 0x95ced270
sub ecx, eax
mov eax, 0xfb9864d5
xor eax, 0x6e56b6a5
add ecx, eax
mov eax, ecx
and eax, 0xb235fa8c
xor eax, 0xffffffff
mov edx, 0x595e5aef
xor edx, 0xeb6ba063
add ecx, edx
add ecx, 1
add ecx, eax
mov eax, 0x281aec21
xor eax, 0xd7e513de
mov edx, ecx
xor edx, eax
mov eax, 0x87e4135f
xor eax, 0xcdb37fd9
and eax, edx
mov edx, 0x38929fa1
xor edx, 0x72c5f327
mov r8d, 0xf697c1f7
xor r8d, 0x9683e08
xor edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0x5dc37adf
xor edx, edx
div ecx
cmp eax, 0xbcfacd87
jae 0x14004a266
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xc0]
mov eax, dword [0x1401ca188]
mov r8d, dword [0x1401ca18c]
xor r8d, 0xf6c10db9
or eax, r8d
mov r8d, 0x315a6a60
xor r8d, 0x315a6a60
sub r8d, eax
xor eax, eax
sub eax, 0x74cb4321
add r8d, eax
xor eax, eax
sub eax, r8d
mov r8d, 0x6cc4e0b0
xor r8d, 0x933b1f4f
mov r9d, eax
xor r9d, r8d
and r9d, 0xbaef64c3
mov r10d, 0xffffffff
xor r10d, 0xbaef64c3
mov r8d, eax
and r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0xbaef64c3
or eax, 0xbaef64c3
imul eax, r9d
add eax, r8d
mov r8d, 0x22e4e262
xor r8d, 0xc7ff1bec
add eax, r8d
add eax, 0xce4aa6d6
sub eax, 0xe51bf98e
cmp rcx, rdx
setl cl
mov byte [rsp + 0xb7], cl
cmp eax, 0xd3f7035f
ja 0x140049982
mov al, byte [rsp + 0xb7]
test al, 1
jne 0x140049a55
jmp 0x14004a225
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
setns al
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0xa8], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x140049ab7
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xa8]
movabs rax, 0x8a73667268811a67
movabs r8, 0x758c998d977ee598
xor rax, r8
add rdx, rax
call fcn.1400122ad
jmp 0x14004a252
mov rax, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x108]
mov rcx, qword [rcx]
lea rdx, [rdx + rdx*4]
mov rcx, qword [rcx + rdx*8 + 8]
mov qword [rsp + 0x98], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rsp + 0xa7], al
or al, cl
test al, 1
jne 0x14004a11a
mov rdx, qword [rsp + 0x98]
mov rax, qword [rsp + 0xf8]
mov rax, qword [rax]
movabs rcx, 0xdcfd892e25a5d437
movabs r8, 0x230276d1da5a2bc8
xor rcx, r8
add rax, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x80], rcx
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rsp + 0x88], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x140049bac
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
xor eax, eax
sub rax, rdx
xor edx, edx
sub rdx, 0xffffffffffffffff
add rax, rdx
xor edx, edx
sub rdx, rax
call fcn.1400122ad
jmp 0x14004a252
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x28
add rax, rcx
mov rax, qword [rax]
movabs rcx, 0x4ee809aa566b8d6b
movabs rdx, 0x4ee809aa566b8d6b
xor rcx, rdx
cmp rax, rcx
je 0x140049c3e
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
movabs rax, 0x1434450ff8454255
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x1434450ff8454255
sub rdx, rax
call fcn.140044970
mov rcx, qword [rsp + 0x100]
cmp byte [rcx], 0
mov qword [rsp + 0x90], rax
je 0x140049b46
jmp 0x14004a252
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x148]
mov qword [rsp + 0x78], rcx
cmp rax, rcx
jl 0x140049c97
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x78]
mov rdx, rax
and rdx, 0xffffffffffffffff
movabs r8, 0xfe9218b0b8d0b542
movabs r9, 0x16de74f472f4abd
xor r8, r9
or rax, r8
add rdx, rax
call fcn.1400122ad
jmp 0x14004a252
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x108]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x68], rax
call fcn.14000f979
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x148]
mov qword [rsp + 0x70], rcx
cmp rax, rcx
jl 0x140049d08
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffff
call fcn.1400122ad
jmp 0x14004a252
mov eax, dword [0x1401ca190]
xor eax, 0xaa043fb9
mov edx, dword [0x1401ca194]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, edx
add eax, ecx
add eax, 0xb0d1c583
mov ecx, 0x7325be57
xor edx, edx
div ecx
or eax, 0x5ba727a4
cmp eax, 0x9127e16a
je 0x14004a26f
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x108]
mov edx, dword [0x1401ca198]
and edx, dword [0x1401ca19c]
mov r9d, edx
xor r9d, 0xffffffff
and r9d, 0x3e7ef44d
mov r10d, 0xffffffff
xor r10d, 0x3e7ef44d
mov r8d, edx
and r8d, r10d
imul r8d, r9d
mov r9d, edx
and r9d, 0x3e7ef44d
mov r10d, 0xe03f8b8b
xor r10d, 0xde417fc6
or edx, r10d
imul edx, r9d
add edx, r8d
mov r8d, 0x9be1fd83
xor r8d, 0x23af5ede
add edx, r8d
sub edx, 0x668e7afb
mov dword [rsp + 0x58], edx
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 0x18
mov rax, qword [rcx]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x50], rax
call fcn.14000f979
mov r11, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x98]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x130], rdi
mov qword [r11], rsi
mov qword [rsp + 0x120], r9
mov qword [rcx], r8
lea r8, [rsp + 0x130]
lea r9, [rsp + 0x120]
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.1400494b9
mov rcx, qword [rsp + 0x100]
mov eax, dword [rsp + 0x58]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x5f], cl
cmp eax, 0xbc5f5878
jae 0x14004a26f
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x140049e8a
jmp 0x14004a252
mov eax, dword [0x1401ca1a0]
sub eax, dword [0x1401ca1a4]
mov ecx, 0x42326c26
xor edx, edx
div ecx
mov ecx, 0x2add486f
xor ecx, 0xd522b790
xor eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x7db8c7a9
mov edx, 0xffffffff
xor edx, 0x49c0ae72
or eax, ecx
mov ecx, 0x1c7b5255
xor ecx, 0x55bbfc27
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
imul eax, eax, 0xb5f0a3eb
cmp eax, 0xb066c14f
ja 0x14004a278
mov rcx, qword [rsp + 0x68]
mov eax, dword [0x1401ca1a8]
mov r8d, dword [0x1401ca1ac]
mov edx, 0x804fa3d4
xor edx, 0x804fa3d4
sub edx, r8d
add eax, edx
sub eax, 0x11b1a90
and eax, 0x794478d3
mov r8d, 0xffffffff
xor r8d, 0xc45fe610
mov edx, eax
and edx, r8d
mov r9d, 0xa4705611
xor r9d, 0x602fb001
mov r8d, eax
xor r8d, r9d
add eax, r8d
sub eax, edx
cmp rcx, 0
sete cl
mov byte [rsp + 0x47], cl
cmp eax, 0x4036a37c
je 0x140049ee7
mov al, byte [rsp + 0x47]
test al, 1
jne 0x14004a142
jmp 0x140049f64
mov eax, dword [0x1401ca1b0]
mov edx, dword [0x1401ca1b4]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
mov edx, 0x53240393
xor edx, 0xe03067f5
mov ecx, eax
and ecx, edx
xor ecx, 0xffffffff
mov edx, 0xa4821a53
xor edx, 0x17967e35
and eax, edx
mov edx, 0xbfa6dcc0
xor edx, 0x4059233f
xor eax, edx
and ecx, eax
mov eax, 0xce1323f4
xor eax, 0x31ecdc0b
xor ecx, eax
add ecx, 0xdc94b817
mov eax, ecx
and eax, 0x504d53ee
mov edx, 0xc4029695
xor edx, 0x944fc57b
xor ecx, edx
or eax, ecx
cmp eax, 0x8de4e32e
je 0x14004a281
mov r8, qword [rsp + 0x68]
mov eax, dword [0x1401ca1b8]
xor eax, 0x64d68cc5
or eax, dword [0x1401ca1bc]
sub eax, 0x690e752c
mov ecx, 0x57cdf6af
xor ecx, 0x5be37059
add eax, ecx
imul eax, eax, 0x78833ef3
mov ecx, 0x2b05361f
xor ecx, 0xff678f7b
movabs rdx, 0x4000000000000000
and rdx, qword [r8]
cmp rdx, 0
sete dl
mov byte [rsp + 0x46], dl
cmp eax, ecx
ja 0x140049fdf
mov al, byte [rsp + 0x46]
test al, 1
jne 0x14004a049
jmp 0x14004a142
mov eax, dword [0x1401ca1c0]
xor eax, 0x8df9a4af
xor edx, edx
div dword [0x1401ca1c4]
mov ecx, eax
mov edx, 0xc1cac321
xor edx, 0x3e353cde
mov eax, ecx
xor eax, edx
and eax, 0x7965c3f
mov edx, 0xffffffff
xor edx, 0x7965c3f
and ecx, edx
or eax, ecx
add eax, 0xf816fdad
xor eax, 0x2cc9f7da
cmp eax, 0xd4464001
ja 0x14004a28a
mov rcx, qword [rsp + 0x68]
mov eax, dword [0x1401ca1c8]
mov r8d, dword [0x1401ca1cc]
mov edx, 0xc9969b0f
xor edx, 0xc9969b0f
sub edx, eax
xor eax, eax
sub eax, r8d
add edx, eax
xor eax, eax
sub eax, edx
mov edx, 0xa517bf21
xor edx, 0x39a4af5d
xor eax, edx
mov r8d, 0x9f6e42a1
xor edx, edx
div r8d
mov edx, eax
mov r8d, 0xffffffff
xor r8d, 0x6960cbb3
mov eax, edx
xor eax, r8d
and eax, edx
mov dword [rsp + 0x40], eax
mov eax, 0x393cc23e
xor eax, 0x9abebc38
mov dword [rsp + 0x3c], eax
call fcn.14000e572
mov ecx, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x40]
cmp eax, ecx
ja 0x14004a096
jmp 0x14004a142
mov rcx, qword [rsp + 0xb8]
mov dl, byte [rsp + 0xa7]
xor eax, eax
test dl, 1
mov qword [rsp + 0x30], rcx
mov byte [rsp + 0x3b], al
jne 0x14004a206
jmp 0x14004a142
mov rax, qword [rsp + 0xb8]
xor ecx, ecx
mov edx, ecx
sub rdx, rax
movabs rcx, 0x9e782c1dd805aebd
movabs r8, 0x9e782c1dd805aebd
xor rcx, r8
movabs r8, 0x50f22a148b14a663
movabs r9, 0x50f22a148b14a662
xor r8, r9
sub rcx, r8
add rdx, rcx
movabs rcx, 0xa912034940ab8d
movabs r8, 0xa912034940ab8d
xor rcx, r8
sub rcx, rdx
movabs rdx, 0xdca76c4c75f59f16
movabs r8, 0x235893b38a0a60e9
xor rdx, r8
xor rax, rdx
mov rdx, rcx
or rdx, rdx
xor rdx, 0xffffffffffffffff
or rax, rax
xor rax, 0xffffffffffffffff
or rdx, rax
xor rdx, 0xffffffffffffffff
movabs r8, 0x67caa282b4122be2
movabs rax, 0x67caa282b4122be2
xor r8, rax
mov al, 1
cmp rdx, r8
mov qword [rsp + 0x30], rcx
mov byte [rsp + 0x3b], al
jge 0x14004a206
call fcn.140008024
jmp 0x14004a252
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x3b]
test cl, 1
mov qword [rsp + 0xe0], rax
jne 0x1400498e3
jmp 0x14004a252
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x118], rax
lea rcx, [rsp + 0x110]
call fcn.1400481b0
nop
add rsp, 0x158
pop rdi
pop rsi
ret
jmp 0x12942d868
in eax, dx
invalid
jl 0x14004a2e6
fdivr st(1)
jmp 0x140049d43
cmpsb byte [rsi], byte [rdi]
invalid
std
std
invalid
invalid
cwde
add byte [rax], al
add al, ch
xchg ecx, eax
rcl dword [rdi], cl
add byte [rax + 0x29], cl
invalid