Function at 0x140046a80
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xc0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rcx
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x30], rax
mov byte [rbp + 0x3e], r9b
mov byte [rbp + 0x3f], r8b
mov eax, dword [0x1401f3630]
sub eax, dword [0x1401f3634]
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xcfa1546d
mov ecx, 0xffffffff
xor ecx, 0x134a5278
or eax, edx
or ecx, 0x134a5278
xor eax, 0xffffffff
and eax, ecx
sub eax, 0x2328d46c
mov ecx, 0xe244d6b6
xor ecx, 0x1eacef47
add eax, ecx
cmp eax, 0x60064f0a
jbe 0x14004751a
mov rcx, qword [rbp + 0x18]
mov r8d, dword [0x1401f3638]
mov eax, dword [0x1401f363c]
add r8d, eax
mov eax, r8d
and eax, 0x3378adb7
xor r8d, 0xb378adb7
mov edx, eax
mov eax, r8d
lea eax, [rax + rdx*2]
mov r8d, eax
and r8d, 0x69fff482
or eax, 0x69fff482
mov edx, eax
mov eax, r8d
lea eax, [rax + rdx - 0x774b2c12]
mov dword [rbp - 0xc], eax
mov eax, 0x10
call fcn.1401f0aa0
sub rsp, rax
mov eax, dword [rbp - 0xc]
mov rdx, rsp
mov qword [rbp - 8], rdx
mov r8, qword [rcx]
mov qword [rbp], r8
mov rcx, r8
add rcx, 0xffffffffffffffff
mov qword [rbp + 8], rcx
mov rdx, rcx
xor rdx, r8
cmp rdx, 0
setl dl
cmp rcx, 0xffffffffffffffff
setg cl
and cl, dl
mov byte [rbp + 0x17], cl
cmp eax, 0x722fe9a6
je 0x140046afb
mov al, byte [rbp + 0x17]
test al, 1
jne 0x140046ba1
jmp 0x140046c5f
mov eax, dword [0x1401f3640]
xor eax, 0x92c778d6
mov r8d, dword [0x1401f3644]
xor r8d, 0xbd05dd0b
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
xor eax, 0x86722422
sub eax, 0xd8682996
add eax, 0xb82ec790
add eax, 0xf4170d2f
mov ecx, 0xbed320c3
xor ecx, 0x6fde753
sub eax, ecx
cmp eax, 0x245d6c66
jbe 0x140047523
mov eax, dword [0x1401f3648]
and eax, dword [0x1401f364c]
sub eax, 0xbc506bf2
sub eax, 0xae97bd79
add eax, 0xbc506bf2
xor ecx, ecx
sub ecx, 0x3331eb1a
sub eax, ecx
mov ecx, 0x57d7c907
xor ecx, 0x2527d59e
sub eax, ecx
mov dword [rbp - 0x10], eax
sub rsp, 0x20
call fcn.1400091c0
mov eax, dword [rbp - 0x10]
add rsp, 0x20
cmp eax, 0xb67bf00f
ja 0x140046c0a
jmp 0x14004742e
mov cl, byte [rbp + 0x3f]
xor eax, eax
test cl, 1
mov qword [rbp - 0x18], rax
jne 0x140046c76
jmp 0x140047031
mov eax, dword [0x1401f3650]
mov ecx, dword [0x1401f3654]
xor ecx, 0xe7a6e198
and eax, ecx
mov ecx, 0x8debbff
xor edx, edx
div ecx
mov r11d, eax
and r11d, 0xd31dd77c
mov eax, 0x367f6ede
xor eax, 0xc9809121
mov ecx, r11d
xor ecx, eax
mov edx, 0xffffffff
xor edx, 0x905ac61b
mov r8d, 0x5344434d
xor r8d, 0x62919ec
mov eax, 0xd2334fca
xor eax, 0x2dccb035
xor r8d, eax
mov eax, ecx
and eax, 0x556d5aa1
and r11d, r8d
mov r9d, edx
and r9d, 0x556d5aa1
mov r10d, 0x57d53379
xor r10d, 0xc78ff562
and r10d, r8d
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0xf727822a
xor edx, 0xa24ad88b
or edx, r8d
and ecx, edx
or eax, ecx
cmp eax, 0xb88f95dc
jae 0x14004752c
mov rdx, qword [rbp + 0x18]
mov eax, dword [0x1401f3658]
mov r8d, dword [0x1401f365c]
mov ecx, eax
and ecx, r8d
shl ecx, 1
xor eax, r8d
add eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x38d7ff
add ecx, eax
mov eax, 0xa0f7f12f
xor eax, 0xa0f7f12f
sub eax, ecx
and eax, 0xb8f9a4c
mov ecx, 0x5b4ae644
xor ecx, 0xea68dbda
or eax, ecx
mov ecx, 0x902ccbb1
xor ecx, 0xae6194b8
add rdx, 8
mov qword [rbp - 0x20], rdx
cmp eax, ecx
jb 0x14004752c
xor eax, eax
mov qword [rbp - 0x28], rax
jmp 0x140046d8f
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0x30], rax
mov r11d, dword [str.sTY]
xor r11d, 0x4aa4c3fd
mov r10d, dword [0x1401f3664]
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, r10d
xor r8d, 0xffffffff
mov edx, 0x912955da
xor edx, 0x43177a1a
mov eax, 0x8cbc4dcd
xor eax, 0x7343b232
xor edx, eax
mov r9d, 0x146c1c1e
xor r9d, 0xc65233de
mov eax, ecx
and eax, r9d
and r11d, edx
mov r9d, r8d
and r9d, 0xd23e2fc0
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0xd23e2fc0
and ecx, edx
or eax, ecx
and eax, 0x5040e496
and eax, 0xd9b3d7da
add eax, 0x870b9f25
mov ecx, 0x8324320b
xor ecx, 0xb1a73096
cmp eax, ecx
jbe 0x140047535
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp + 8]
mov eax, dword [0x1401f3668]
mov r8d, dword [0x1401f366c]
mov r9d, 0x229177e3
xor r9d, 0x173a4bba
xor r8d, r9d
xor eax, r8d
xor r8d, r8d
sub r8d, 0x235751cd
add eax, r8d
sub eax, 0x190b7387
mov r8d, 0xafe026d0
xor r8d, 0xc18f7017
mov r9d, 0x35245c28
xor r9d, 0xcadba3d7
xor r8d, r9d
xor r9d, r9d
sub r9d, 1
sub r8d, r9d
sub eax, r8d
cmp rcx, rdx
setg cl
mov byte [rbp - 0x31], cl
cmp eax, 0x4c13d06f
jbe 0x140046e2d
mov rax, qword [rbp - 0x30]
mov cl, byte [rbp - 0x31]
test cl, 1
mov qword [rbp - 0x18], rax
jne 0x140047031
jmp 0x140046ebe
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp]
cmp rax, rcx
jl 0x140046ee9
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.140016582
add rsp, 0x20
jmp 0x14004742e
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx]
mov cl, byte [rcx + rax + 8]
mov r8b, cl
shr r8b, 3
movzx r8d, r8b
movzx r8d, byte [rdx + r8]
and cl, 7
movzx ecx, cl
mov edx, 0xed48717
xor edx, 0xed48716
shl edx, cl
mov ecx, edx
mov edx, ecx
xor edx, r8d
xor edx, 0xffffffff
or ecx, r8d
and ecx, edx
mov edx, 0xea625c51
xor edx, 0xea625c51
cmp ecx, edx
mov qword [rbp - 0x18], rax
je 0x140047031
mov eax, dword [0x1401f3670]
mov r8d, dword [0x1401f3674]
xor r8d, 0x61ab1888
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0x8c3ce671
xor r9d, 0x73c3198e
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x849ad7ff
xor edx, edx
div ecx
mov ecx, 0x4c925341
xor ecx, 0xa4b18457
add eax, ecx
mov ecx, 0x4b9b6812
xor ecx, 0x8a2fd8bf
xor edx, edx
div ecx
cmp eax, 0x1c5eece
je 0x14004753e
mov rcx, qword [rbp - 0x30]
mov eax, dword [0x1401f3678]
xor eax, 0x8c943e87
mov r8d, dword [0x1401f367c]
xor r8d, 0xb584fbe5
xor edx, edx
div r8d
mov edx, 0xf3ba576f
xor edx, 0xb7e0b1e2
add eax, edx
mov edx, 0x284e5e81
xor edx, 0x2542ed31
or eax, edx
or eax, 0x96ee4a93
movabs rdx, 0xe03e819010f8699d
movabs r8, 0xe03e819010f8699c
xor rdx, r8
add rcx, rdx
mov qword [rbp - 0x40], rcx
cmp eax, 0x7b82290
jb 0x140046fba
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x28], rax
jmp 0x140046d8f
mov rax, qword [rbp + 8]
mov cl, byte [rbp + 0x3e]
mov rdx, qword [rbp - 0x18]
mov qword [rbp - 0x50], rdx
test cl, 1
mov qword [rbp - 0x48], rax
jne 0x140047052
jmp 0x1400473ff
mov rax, qword [rbp + 8]
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp + 0x18]
add rcx, 8
mov qword [rbp - 0x68], rcx
xor ecx, ecx
sub rcx, 0xffffffffffffffff
sub rdx, rcx
mov rcx, rdx
sub rcx, rax
mov rcx, rax
cmovl rcx, rdx
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x58], rax
mov rax, qword [rbp - 0x58]
mov qword [rbp - 0x70], rax
mov eax, dword [0x1401f3680]
mov ecx, dword [0x1401f3684]
mov edx, 0xc6e1a3a3
xor edx, 0xf03dc473
xor ecx, edx
xor edx, edx
div ecx
or eax, 0x5e737cbe
mov ecx, 0x4f9f964
xor ecx, 0x203849ac
or eax, ecx
sub eax, 0x3a2683f2
cmp eax, 0x1cd2a7ba
jb 0x140047547
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x70]
mov r8d, dword [0x1401f3688]
mov r10d, dword [0x1401f368c]
mov r9d, 0xe325ec72
xor r9d, 0x1cda138d
mov eax, r8d
xor eax, r9d
mov r9d, r10d
and r9d, eax
mov r11d, r10d
xor r11d, 0xffffffff
mov eax, r8d
and eax, r11d
imul eax, r9d
mov r9d, r8d
and r9d, r10d
or r8d, r10d
imul r8d, r9d
add r8d, eax
mov r9d, 0xe17685f3
xor r9d, 0xcc59ae98
mov eax, r8d
and eax, r9d
xor r8d, 0x2d2f2b6b
or eax, r8d
or eax, 0x80df716d
imul eax, eax, 0x2954c6b9
cmp rcx, rdx
setg cl
mov byte [rbp - 0x71], cl
cmp eax, 0x46cdcca9
jb 0x140047547
mov rax, qword [rbp - 0x60]
mov cl, byte [rbp - 0x71]
test cl, 1
mov qword [rbp - 0x48], rax
jne 0x1400473ff
jmp 0x140047170
mov rax, qword [rbp - 0x70]
mov rcx, qword [rbp]
cmp rax, rcx
jl 0x14004719b
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.140016582
add rsp, 0x20
jmp 0x14004742e
mov rax, qword [rbp - 0x70]
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp - 0x68]
mov rcx, qword [rcx]
mov cl, byte [rcx + rax + 8]
mov r8b, cl
shr r8b, 3
movzx r8d, r8b
movzx r8d, byte [rdx + r8]
and cl, 7
movzx ecx, cl
mov edx, 0x1799b111
xor edx, 0x1799b110
shl edx, cl
xor r8d, 0xffffffff
mov ecx, edx
xor ecx, r8d
and ecx, edx
cmp ecx, 0
mov qword [rbp - 0x48], rax
je 0x1400473ff
mov ecx, dword [0x1401f3690]
mov edx, dword [0x1401f3694]
mov eax, 0x2616bcec
xor eax, 0x2616bcec
sub eax, edx
add ecx, eax
mov edx, 0xffffffff
xor edx, 0x169a1e01
mov eax, ecx
xor eax, edx
and eax, ecx
add eax, 0xc7921a3b
mov ecx, eax
and ecx, 0x74296d59
xor ecx, 0xffffffff
add eax, 0x74296d59
add eax, 1
add eax, ecx
cmp eax, 0xb3fa95a6
jb 0x140047550
mov rcx, qword [rbp - 0x70]
mov r9d, dword [0x1401f3698]
xor r9d, 0x72a8c79c
add r9d, dword [0x1401f369c]
mov eax, 0x19be732b
xor eax, 0xe6418cd4
mov edx, r9d
xor edx, eax
mov eax, 0x400bc258
xor eax, 0xb2368faa
and eax, edx
mov r8d, 0xffffffff
xor r8d, 0xf23d4df2
and r9d, r8d
mov edx, 0x78c8a2b4
xor edx, 0x2e48035d
mov r10d, 0x9842cd19
xor r10d, 0x67bd32e6
xor edx, r10d
and edx, 0xf23d4df2
and r8d, 0x5680a1e9
or eax, r9d
or edx, r8d
xor eax, edx
mov edx, 0x5ad42b70
xor edx, 0x5ad42b70
mov r8d, 0x1a80e188
xor r8d, 0xb5dab39b
sub edx, r8d
sub eax, edx
mov r8d, 0x86694cec
xor edx, edx
div r8d
movabs rdx, 0xc0f0545b4ccb290a
movabs r8, 0xc0f0545b4ccb290a
xor rdx, r8
movabs r8, 0x84387f66e4a2c68f
movabs r9, 0x7bc780991b5d3970
xor r8, r9
sub rdx, r8
mov r8, rcx
sub r8, rdx
mov qword [rbp - 0x80], r8
mov rdx, r8
xor rdx, 0xffffffffffffffff
movabs r10, 0x491937e2f73878cd
movabs r9, 0xb6e6c81d08c78732
xor r10, r9
mov r9, r8
xor r9, r10
or rdx, r9
and rdx, rcx
xor rdx, 0xffffffffffffffff
mov r9, rcx
and r9, r9
movabs r10, 0xe0366c8e5be83fc5
movabs r11, 0x1fc99371a417c03a
xor r10, r11
xor r9, r10
movabs r10, 0x70a929d2101f0d6e
movabs r11, 0x8f56d62defe0f291
xor r10, r11
xor r8, r10
movabs r10, 0xdf79661b1f8dfb33
movabs r11, 0x208699e4e07204cc
xor r10, r11
xor r9, r10
or r8, r9
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
or rdx, r8
cmp rdx, 0
setl r8b
cmp rcx, 0
setg cl
xor cl, 0xff
xor r8b, 0xff
mov dl, 1
xor dl, 0
or cl, r8b
or dl, 0
xor cl, 0xff
and cl, dl
mov byte [rbp - 0x72], cl
cmp eax, 0xa519a69d
jae 0x140047550
mov rax, qword [rbp - 0x80]
mov cl, byte [rbp - 0x72]
test cl, 1
mov qword [rbp - 0x58], rax
jne 0x1400473ed
jmp 0x140047084
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x14004742e
mov r8, qword [rbp - 0x50]
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x18]
mov r9, qword [rbp - 0x48]
mov r10, qword [rax]
mov qword [rdx], r10
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001e210
add rsp, 0x20
mov ecx, dword [0x1401f36a0]
mov eax, dword [str.L_aai_]
xor eax, 0xcd09a9bd
or ecx, eax
mov eax, 0x171947c5
xor eax, 0x9456edc2
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov r8d, 0xbb66b97f
xor r8d, 0x44994680
mov edx, ecx
xor edx, r8d
and eax, edx
mov edx, 0xffffffff
xor edx, 0x146a024b
mov r8d, 0xf12793a8
xor r8d, 0xe54d91e3
mov r9d, 0x572988cc
xor r9d, 0xa8d67733
xor r8d, r9d
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
or ecx, 0x146a024b
mov edx, 0x7fdf92cd
xor edx, 0x80206d32
xor ecx, edx
or eax, ecx
mov ecx, 0xe6358ded
xor ecx, 0x19ca7212
xor eax, ecx
mov ecx, 0x54a3467b
xor ecx, 0xad129e0f
and eax, ecx
cmp eax, 0x58321c04
jae 0x140047559
mov eax, dword [0x1401f36a8]
xor edx, edx
div dword [0x1401f36ac]
add eax, 0x668fbafb
or eax, 0x417b7d52
mov ecx, 0x84303993
xor ecx, 0x84303993
mov edx, 0x5dff2755
xor edx, 0x4bf4423c
sub ecx, edx
sub eax, ecx
cmp eax, 0xd8377cd0
je 0x140047559
mov rax, qword [rbp + 0x28]
lea rsp, [rbp + 0x40]
pop rbp
ret
in eax, dx
invalid
mov cl, byte [rbp - 0x25]
invalid
jg 0x140047578
enter 0xffffffffffffe95e, 0xffffffffffffffeb
idiv edi
invalid
std
retf
xor al, 0x24
push rbx
invalid
push rsi
mov esp, 0x7be90b2f
sti
invalid
invalid
insd dword [rdi], dx
pop bp
or eax, 0xffff71e9
jmp qword [rsi + 0x66]