Function at 0x140039b40
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x118
mov qword [rsp + 0xd8], r8
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xe0], rcx
call fcn.140039aae
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0xf0], rax
movabs r8, 0xebcbad5696e9ca24
movabs rax, 0xebcbad5696e9ca24
xor r8, rax
mov rcx, 0xffffffffffffffff
xor eax, eax
cmp rdx, r8
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
jle 0x140039c1b
mov rax, qword [rsp + 0xe0]
mov dl, byte [rax]
mov byte [rsp + 0xd7], dl
mov rcx, 0xffffffffffffffff
mov eax, 1
cmp dl, 0x2b
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
je 0x140039c1b
mov r8b, byte [rsp + 0xd7]
cmp r8b, 0x2d
sete al
mov rcx, 0xffffffffffffffff
mov edx, 1
cmp r8b, 0x2d
cmove rcx, rdx
and al, 1
movzx eax, al
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rax
mov eax, dword [str.eHU]
xor eax, 0xf593ac25
add eax, dword [0x140201ea4]
xor eax, 0x9a560ece
sub eax, 0x94e1b202
xor eax, 0x4ca1df6d
cmp eax, 0x98251692
ja 0x14003a7d8
mov rcx, qword [rsp + 0xc0]
mov eax, dword [0x140201ea8]
imul eax, dword [0x140201eac]
mov edx, eax
xor edx, 0xffffffff
and edx, 0x9021ecb
mov r8d, 0xffffffff
xor r8d, 0x9021ecb
and eax, r8d
sub eax, edx
add eax, 0x4dcf8d61
mov r8d, 0xa82d1e5
xor r8d, 0x43d00bf8
xor edx, edx
div r8d
mov rdx, qword [rsp + 0xe8]
cmp rcx, rdx
setl cl
mov byte [rsp + 0xbf], cl
cmp eax, 0x23ecfb6f
je 0x14003a7d8
mov cl, byte [rsp + 0xbf]
xor eax, eax
test cl, 1
mov qword [rsp + 0xb0], rax
jne 0x140039cee
jmp 0x14003a7c8
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc0]
mov al, byte [rax + rcx]
mov cl, al
and cl, 0xd0
or al, 0xd0
add cl, al
xor eax, eax
cmp cl, 0xa
mov qword [rsp + 0xb0], rax
jae 0x14003a7c8
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd8]
mov qword [rcx], 0
mov qword [rsp + 0xa8], rax
jmp 0x140039e27
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xa0], rax
mov eax, dword [0x140201eb0]
xor eax, dword [0x140201eb4]
mov ecx, 0xe166b27c
xor ecx, 0xe166b27c
mov edx, 0xd95b4832
xor edx, 0xbff208c2
sub ecx, edx
sub eax, ecx
or eax, 0x6c674c50
mov ecx, 0x17d5a4cf
xor ecx, 0x5268d4fb
xor eax, ecx
cmp eax, 0xd5f5be29
ja 0x14003a7e1
mov ecx, dword [0x140201eb8]
sub ecx, dword [0x140201ebc]
or ecx, 0xb7075634
or ecx, 0x72dbc0f1
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0x66b8f752
xor edx, 0x994708ad
xor ecx, edx
and eax, ecx
mov ecx, 0xcb5832b
xor ecx, 0xf236491e
mov edx, 0x9f896e45
xor edx, 0x607691ba
xor ecx, edx
mov edx, 0xbf378098
xor edx, 0x41b44aad
mov r8d, 0x545d51fc
xor r8d, 0xaba2ae03
xor edx, r8d
and ecx, edx
xor eax, 0xffffffff
mov edx, 0xfd5c93fb
xor edx, 0x2a36c04
xor ecx, edx
and eax, ecx
cmp eax, 0xdf48fe72
je 0x140039d94
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
jmp 0x140039e27
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x90], rax
mov eax, dword [0x140201ec0]
xor eax, 0x6c5ffd57
mov ecx, dword [0x140201ec4]
mov edx, 0x4e716f86
xor edx, 0x348c26ca
xor ecx, edx
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x50756a34
mov edx, 0x99cddf8e
xor edx, 0x99cddf8e
mov r8d, 0x946ec3f5
xor r8d, 0x946ec3f4
sub edx, r8d
sub ecx, edx
sub eax, ecx
and eax, 0x7d71ee63
mov ecx, 0xffffffff
xor ecx, 0x3d39d9ed
add eax, ecx
add eax, 1
cmp eax, 0xa973b66
jbe 0x14003a7ea
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0xe8]
mov eax, dword [0x140201ec8]
mov r9d, dword [0x140201ecc]
mov ecx, eax
xor ecx, r9d
mov r10d, 0xb09e7574
xor r10d, 0x4f618a8b
xor ecx, r10d
or eax, r9d
and eax, ecx
mov ecx, 0x7ae633fc
xor ecx, 0x7ae633fc
sub ecx, eax
xor eax, eax
sub eax, 0x772f4f9d
add ecx, eax
mov eax, 0x51e2a17a
xor eax, 0x51e2a17a
sub eax, ecx
mov r10d, 0xffffffff
xor r10d, 0x334be0f7
mov r9d, eax
and r9d, r10d
mov ecx, eax
or ecx, r10d
mov r10d, 0x1054fee2
xor r10d, 0xefab011d
xor ecx, r10d
imul ecx, r9d
mov r9d, eax
and r9d, 0x334be0f7
or eax, 0x334be0f7
imul eax, r9d
add eax, ecx
imul eax, eax, 0xc8368c67
mov ecx, 0xd0082367
xor ecx, 0x59589350
cmp rdx, r8
setl dl
mov byte [rsp + 0x8f], dl
cmp eax, ecx
je 0x14003a7ea
mov al, byte [rsp + 0x8f]
test al, 1
jne 0x140039f75
jmp 0x14003a659
mov eax, dword [0x140201ed0]
xor eax, dword [str.yCy__b__]
mov edx, 0xffffffff
xor edx, 0xd9028537
mov ecx, eax
and ecx, edx
mov r8d, 0x57e6a832
xor r8d, 0x8ee42d05
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
add eax, 0xdab4df5b
mov ecx, 0x3ff62609
xor ecx, 0xb050279c
add eax, ecx
sub eax, 0xdab4df5b
mov edx, 0x5e65b181
xor edx, 0xa9d7d45d
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
and ecx, 0xf7b265dc
shl ecx, 1
mov edx, 0xf50dd9ce
xor edx, 0x2bfbc12
sub ecx, edx
sub eax, ecx
mov ecx, 0xf0fa5574
xor ecx, 0x713fb323
cmp eax, ecx
je 0x14003a7f3
mov eax, dword [0x140201ed8]
xor eax, dword [0x140201edc]
mov ecx, 0x14e035d6
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x90]
mov ecx, eax
mov r8d, 0xea17372a
xor r8d, 0x15e8c8d5
mov eax, ecx
xor eax, r8d
mov r8d, ecx
xor r8d, 0xffffffff
and eax, r8d
mov r8d, 0xa1fd8221
or r8d, 0xa1fd8221
mov r9d, 0xd124212b
xor r9d, 0x2edbded4
xor r8d, r9d
mov r9d, 0xa85ef48d
xor r9d, 0x57a10b72
xor eax, r9d
xor r8d, 0xffffffff
and eax, r8d
mov r8d, 0xe205dcbc
xor r8d, 0x1dfa2343
xor ecx, r8d
mov r8d, 0x3b2338bc
xor r8d, 0x9adeba9d
mov r9d, 0xd8ec5b1f
xor r9d, 0x2713a4e0
xor r8d, r9d
and ecx, r8d
or eax, ecx
mov ecx, 0xc66012b5
xor ecx, 0x399fed4a
xor eax, ecx
add eax, 0xe6be48ca
mov ecx, 0xf96238f6
xor ecx, 0xa07118f5
cmp rdx, 0xffffffffffffffff
setg dl
mov byte [rsp + 0x8e], dl
cmp eax, ecx
jb 0x14003a7f3
mov al, byte [rsp + 0x8e]
test al, 1
jne 0x14003a120
jmp 0x14003a0e2
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0xe8]
movabs rax, 0x7894a8a164df671e
movabs r8, 0x876b575e9b2098e1
xor rax, r8
add rdx, rax
call fcn.140014583
xor eax, eax
mov qword [rsp + 0xb0], rax
jmp 0x14003a7c8
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x90]
mov al, byte [rax + rcx]
mov byte [rsp + 0x8d], al
mov cl, 0x82
xor cl, 0x52
add al, cl
cmp al, 0xa
jae 0x14003a659
mov al, byte [rsp + 0x8d]
movzx eax, al
movabs rdx, 0x48222e27fd5e5672
movabs rcx, 0x76b3c5a81aea70be
xor rdx, rcx
mov rcx, rax
sub rcx, rdx
add rcx, 0xffffffffffffffd0
movabs rdx, 0x3e91eb8fe7b426cc
add rcx, rdx
mov qword [rsp + 0x78], rcx
movabs rcx, 0x7381eaf216e36023
movabs rdx, 0x8c7e150de91c9fdc
xor rcx, rdx
xor rax, rcx
movabs rcx, 0x8000000000000030
add rax, rcx
movabs rcx, 0xd475ed0f60c9f493
movabs rdx, 0xd475ed0f60c9f492
xor rcx, rdx
add rax, rcx
movabs rcx, 0x18499ce0d7fad397
movabs rdx, 0x18499ce0d7fad39d
xor rcx, rdx
xor edx, edx
div rcx
mov rdx, rax
mov rax, qword [rsp + 0xd8]
movabs rcx, 0xd803e37917bd7356
movabs r8, 0xd803e37917bd7356
xor rcx, r8
movabs r8, 0xf7976ab8905828b1
movabs r9, 0xb1bfb32b8ed66539
xor r8, r9
sub rcx, r8
sub rcx, rdx
movabs rdx, 0x4628d9931e8e4d88
add rcx, rdx
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
cmp rax, rcx
jl 0x14003a54c
mov eax, dword [0x140201ee0]
mov ecx, dword [0x140201ee4]
mov edx, 0x78b906b6
xor edx, 0xbcc110b1
add eax, edx
add eax, ecx
mov ecx, 0x6f8df975
xor ecx, 0xabf5ef72
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
mov eax, 0xac292d16
or eax, 0xac292d16
xor eax, 0xffffffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0x9699ae35
xor edx, 0x696651ca
xor eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x79c58131
or eax, edx
mov edx, 0x79c58131
and edx, 0x79c58131
mov r8d, 0x4c40502f
xor r8d, 0xb3bfafd0
xor edx, r8d
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
mov edx, 0xc476bf29
xor edx, 0x81ccef5a
or eax, edx
add eax, ecx
mov ecx, 0xe19bb2dc
xor ecx, 0x2886d50e
cmp eax, ecx
ja 0x14003a7fc
mov rcx, qword [rsp + 0x80]
mov eax, dword [0x140201ee8]
mov edx, dword [0x140201eec]
xor edx, 0x925cf0b4
and eax, edx
xor eax, 0x8d4d14cf
mov edx, 0x2586fbc3
xor edx, 0xec66b575
imul eax, edx
add eax, 0xc118d4c0
mov dword [rsp + 0x70], eax
mov eax, 0x23259fa5
xor eax, 0x9d4f5c4d
mov dword [rsp + 0x6c], eax
mov edx, 0xa
lea r8, [rsp + 0x110]
call fcn.14003a820
mov ecx, dword [rsp + 0x6c]
mov dl, al
mov eax, dword [rsp + 0x70]
mov byte [rsp + 0x77], dl
cmp eax, ecx
ja 0x14003a2fd
mov al, byte [rsp + 0x77]
test al, 1
jne 0x14003a46e
jmp 0x14003a37c
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x110]
movabs rax, 0x7587897f6b5ede2f
movabs rdx, 0xb28c2fa1ed9c1c25
xor rax, rdx
mov rdx, rcx
sub rdx, rax
sub rdx, r9
movabs rax, 0xc70ba6de86c2c20a
add rdx, rax
mov qword [rsp + 0x60], rdx
mov rax, rdx
xor rax, rcx
cmp rax, 0
setl al
mov rcx, rdx
and rcx, rcx
xor rcx, 0xffffffffffffffff
and rcx, r9
xor rcx, 0xffffffffffffffff
mov r8, r9
xor r8, 0xffffffffffffffff
movabs r10, 0x7fd9e3e978eb9805
movabs r11, 0x80261c16871467fa
xor r10, r11
xor r9, r10
or r8, r9
movabs r9, 0xbaa7c651dbd296b5
movabs r10, 0x455839ae242d694a
xor r9, r10
xor rdx, r9
xor r8, 0xffffffffffffffff
or rdx, r8
movabs r8, 0xd15c7c3d37a84c84
movabs r9, 0x2ea383c2c857b37b
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
cmp rcx, 0xffffffffffffffff
setg dl
mov cl, al
xor cl, dl
xor cl, 0xff
or al, dl
and al, cl
test al, 1
jne 0x14003a46e
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x60]
mov qword [rax], rcx
jmp 0x14003a56c
mov r8d, dword [0x140201ef0]
mov eax, 0x9292a465
xor eax, 0x54ee0ad2
xor r8d, eax
mov edx, dword [0x140201ef4]
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x6d98650c
mov r9d, 0xffffffff
xor r9d, 0x6d98650c
and r8d, r9d
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x6d98650c
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
mov edx, eax
and edx, 0x4a855648
mov ecx, 0xdd19aed8
xor ecx, 0xdd19aeda
imul ecx, edx
mov edx, 0x1c863750
xor edx, 0x56036118
add eax, edx
sub eax, ecx
sub eax, 0x46e8be38
or eax, 0xe0388bc1
mov ecx, 0xe6392fbd
xor ecx, 0xc452f64c
cmp eax, ecx
je 0x14003a805
mov eax, dword [0x140201ef8]
mov ecx, dword [0x140201efc]
xor ecx, 0x999000fd
or eax, ecx
mov ecx, 0xd25e4790
xor ecx, 0xf26da759
xor eax, ecx
sub eax, 0x79dd7d53
add eax, 0xee1ac106
mov dword [rsp + 0x5c], eax
call fcn.140007f57
mov eax, dword [rsp + 0x5c]
cmp eax, 0xcebfc5a2
je 0x14003a4fa
xor eax, eax
mov qword [rsp + 0xb0], rax
jmp 0x14003a7c8
call fcn.140039ac9
mov rcx, qword [rsp + 0xf0]
xor eax, eax
cmp byte [rcx], 0
mov qword [rsp + 0xb0], rax
jne 0x14003a7c8
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0xe8]
movabs r8, 0x1c4b9faf7aead4dd
movabs rcx, 0x80ac2bdf1a09a659
xor r8, rcx
mov rcx, rax
add rcx, r8
movabs r8, 0xce21cea44c358c3c
movabs r9, 0xce21cea44c358c3d
xor r8, r9
add rcx, r8
movabs r8, 0xcc168a01692d8d4e
movabs r9, 0x50f13e7109ceffca
xor r8, r9
sub rcx, r8
mov r8, rdx
sub r8, rcx
cmovg rcx, rdx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x50]
movabs r8, 0x843b5f129278101a
sub rcx, r8
add rcx, 1
movabs r8, 0x843b5f129278101a
add rcx, r8
mov qword [rsp + 0x40], rcx
cmp rcx, rdx
mov qword [rsp + 0x98], rax
jge 0x140039d41
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xe0]
mov cl, byte [rcx + rax]
mov dl, 0x1b
xor dl, 0x44
cmp cl, dl
mov rcx, rax
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x50], rax
je 0x14003a5e1
jmp 0x140039d41
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xc8]
not rax
mov rcx, qword [rcx]
mov qword [rsp + 0x38], rcx
movabs rdx, 0x8000000000000000
xor rcx, rdx
or rax, rcx
sete al
test al, 1
jne 0x14003a694
jmp 0x14003a6a8
call fcn.140039ac9
xor eax, eax
mov qword [rsp + 0xb0], rax
jmp 0x14003a7c8
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x38]
lea r8, [rsp + 0x108]
call fcn.14003a820
test al, 1
jne 0x14003a6cf
jmp 0x14003a6e0
call fcn.140007f57
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x14003a700
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x108]
mov qword [rcx], rdx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov eax, dword [0x140201f00]
xor eax, 0xe82086f3
mov ecx, dword [0x140201f04]
xor ecx, 0xffffffff
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
or eax, 0x186fce5
or eax, 0x35062cec
or eax, 0x92c58f59
cmp eax, 0xae1ea87d
jb 0x14003a80e
mov eax, dword [0x140201f08]
xor edx, edx
div dword [0x140201f0c]
mov ecx, 0x2220d69a
xor ecx, 0x135c484b
and eax, ecx
mov r8d, 0xafc123c4
xor r8d, 0x739a3cd5
mov ecx, 0x6aee3061
xor ecx, 0x9511cf9e
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x24c25a31
xor r8d, 0xdb3da5ce
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xdc5b1f11
or eax, 0xdc5b1f11
imul eax, edx
add eax, ecx
xor eax, 0x9c7fec33
cmp eax, 0xd3578cc6
ja 0x14003a741
mov edi, edi
invalid
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb0], rax
jmp 0x14003a7c8
add byte [rax], al
mov rax, qword [rsp + 0xb0]
add rsp, 0x118
ret
add byte [rax], al
add byte [rax - 0x7f], cl
invalid
cmpsb byte [rsi], byte [rdi]
jo 0x14003a848
loope 0x14003a7c6
test esp, esi
invalid
adc byte [rdi], ch
xor eax, 0xf5aae9ad
invalid
je 0x14003a7b2
jrcxz 0x14003a7cd
jmp 0x140039ea1
cmp eax, 0xe9fea7a0
invalid
jp 0x14003a81d
pop rax
ja 0x14003a7ea
clc
cli
invalid
wait
mov es, word [r9 - 0x31317]
jmp [rdx]
sub bl, byte [rdi + 0x2ae9ead9]
invalid
add byte [rax], al
add byte [rax - 0x7d], cl
sub rsp, 0x68
mov qword [rsp + 0x48], r8
mov rax, rdx
adc dword [rsp + 0x58], eax