Function at 0x140160010
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xb8
mov qword [rsp + 0xa8], rcx
mov rax, qword [rcx + 8]
mov qword [rsp + 0xb0], rax
cmp rax, 0
je 0x140160077
mov rcx, qword [rsp + 0xb0]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0x408598e1ff5a3e1
movabs rdx, 0x408598e1ff5a3e1
xor rcx, rdx
cmp rax, rcx
jne 0x140160077
mov rcx, qword [rsp + 0xb0]
call fcn.14000eb2e
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xa0], rax
cmp rax, 0
je 0x1401601a0
mov rcx, qword [rsp + 0xa0]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x1401601a0
mov eax, dword [0x1401de6b8]
mov edx, dword [0x1401de6bc]
xor edx, 0xa5bebec4
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
mov ecx, 0xf6e99700
xor ecx, 0xaf7821c5
xor edx, edx
div ecx
mov ecx, 0x5b6ad47e
xor ecx, 0x87737a96
xor edx, edx
div ecx
mov ecx, 0x9b7fb494
xor ecx, 0x265d730
or eax, ecx
cmp eax, 0xdb55348a
ja 0x140160aa6
mov rcx, qword [rsp + 0xa0]
mov eax, dword [0x1401de6c0]
xor eax, dword [0x1401de6c4]
mov r8d, 0xbad129c5
xor edx, edx
div r8d
imul eax, eax, 0xd0697e23
mov r8d, eax
xor r8d, 0xffffffff
and r8d, 0x315ccfdb
mov r9d, 0xffffffff
xor r9d, 0x315ccfdb
mov edx, eax
and edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0x315ccfdb
or eax, 0x315ccfdb
imul eax, r8d
add eax, edx
mov dword [rsp + 0x9c], eax
mov eax, 0x5f227c56
xor eax, 0x390b9fc7
mov dword [rsp + 0x98], eax
call fcn.14000eb2e
mov ecx, dword [rsp + 0x98]
mov eax, dword [rsp + 0x9c]
cmp eax, ecx
jae 0x140160aa6
jmp 0x1401601a0
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x90], rax
cmp rax, 0
je 0x1401602e8
mov ecx, dword [0x1401de6c8]
mov edx, dword [0x1401de6cc]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov edx, 0xce04a37c
xor edx, 0x31fb5c83
mov ecx, eax
xor ecx, edx
and ecx, 0x2d44d806
mov edx, 0x2e246565
xor edx, 0x360bd63
mov r8d, 0x234f96b7
xor r8d, 0xdcb06948
xor edx, r8d
and eax, edx
sub eax, ecx
and eax, 0x52dc544e
sub eax, 0xdc7166c4
cmp eax, 0x66553962
jb 0x140160aaf
mov rdx, qword [rsp + 0x90]
mov eax, dword [0x1401de6d0]
and eax, dword [0x1401de6d4]
xor eax, 0x21a48451
mov ecx, 0x8c9dd44f
xor ecx, 0x8a6d5ab0
and ecx, eax
xor ecx, 0xffffffff
add eax, 0x6f08eff
add eax, 1
add eax, ecx
mov ecx, 0xdfa4e83f
xor ecx, 0x9932670a
imul eax, ecx
mov ecx, 0x3a27984c
xor ecx, 0x1af01196
mov rdx, qword [rdx]
movabs r9, 0x2c4b23d927f8e749
movabs r8, 0x6c4b23d927f8e749
xor r9, r8
mov r8, rdx
xor r8, r9
xor r8, 0xffffffffffffffff
movabs r9, 0x4000000000000000
or rdx, r9
and rdx, r8
movabs r8, 0x88a1f36f0a8e04e
movabs r9, 0x88a1f36f0a8e04e
xor r8, r9
cmp rdx, r8
sete dl
mov byte [rsp + 0x8f], dl
cmp eax, ecx
je 0x140160aaf
mov al, byte [rsp + 0x8f]
test al, 1
jne 0x1401602db
jmp 0x1401602e8
mov rcx, qword [rsp + 0x90]
call fcn.14000eb2e
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x80], rax
cmp rax, 0
je 0x1401603a6
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs rdx, 0x63fd04f8f6f762e2
movabs r8, 0x23fd04f8f6f762e2
xor rdx, r8
movabs r8, 0x6efc9729ed4d430
movabs r9, 0xf910368d612b2bcf
xor r8, r9
xor rdx, r8
or rax, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0xa0fde187d3c8f429
movabs r8, 0xe0fde187d3c8f429
xor rdx, r8
movabs r8, 0xabfae8b74c9a0a78
movabs r9, 0x54051748b365f587
xor r8, r9
xor rdx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
jne 0x1401603a6
mov rcx, qword [rsp + 0x80]
call fcn.14000eb2e
mov ecx, dword [0x1401de6d8]
mov edx, dword [0x1401de6dc]
mov eax, ecx
xor eax, 0xffffffff
mov r9d, 0x31b6d402
xor r9d, 0xce492bfd
mov r8d, edx
xor r8d, r9d
or eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x68ad99d6
xor edx, edx
div ecx
mov ecx, 0x341f1f25
xor ecx, 0x2d9bb104
xor eax, ecx
sub eax, 0xb629d7cf
mov ecx, 0x80a0b82b
xor ecx, 0x45c9b4e6
cmp eax, ecx
je 0x140160ab8
mov rcx, qword [rsp + 0xa8]
mov edx, dword [0x1401de6e0]
mov r8d, dword [0x1401de6e4]
xor r8d, 0xffffffff
mov eax, edx
xor eax, r8d
and eax, edx
mov r8d, 0xd1dab625
xor edx, edx
div r8d
mov edx, 0xa617c516
xor edx, 0x8a557c46
or eax, edx
add eax, 0xac1c5e90
sub eax, 0xa6eb0d66
sub eax, 0xac1c5e90
mov rcx, qword [rcx + 0x58]
mov qword [rsp + 0x70], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x7f], cl
cmp eax, 0x77e736a
jb 0x140160ab8
mov al, byte [rsp + 0x7f]
test al, 1
jne 0x140160507
jmp 0x140160482
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
or rax, rax
xor rax, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
and rcx, rdx
movabs rdx, 0xb52ed8f00a08c5d0
movabs r8, 0x4ad1270ff5f73a2f
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0xd17cab2c9b1ddbab
movabs rdx, 0xd17cab2c9b1ddbab
xor rcx, rdx
cmp rax, rcx
jne 0x140160507
mov rcx, qword [rsp + 0x70]
call fcn.14000eb2e
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0x70]
mov qword [rsp + 0x68], rax
cmp rax, 0
je 0x140160548
mov rcx, qword [rsp + 0x68]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140160548
mov rcx, qword [rsp + 0x68]
call fcn.14000eb2e
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0x88]
mov qword [rsp + 0x60], rax
cmp rax, 0
je 0x1401605bc
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
movabs rdx, 0x4000000000000000
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
and rax, rcx
movabs rcx, 0x111457229cf67391
movabs rdx, 0x111457229cf67391
xor rcx, rdx
cmp rax, rcx
jne 0x1401605bc
mov rcx, qword [rsp + 0x60]
call fcn.14000eb2e
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0xa0]
mov qword [rsp + 0x58], rax
cmp rax, 0
je 0x1401607e8
mov eax, dword [0x1401de6e8]
xor eax, 0x36a93ea7
mov ecx, dword [0x1401de6ec]
xor ecx, 0x4413cedb
sub eax, ecx
mov ecx, 0x5675745
xor ecx, 0xfb3f5d50
xor eax, ecx
add eax, 0x975bccb8
or eax, 0xab43c319
mov ecx, 0x11383311
xor ecx, 0xb860aaee
cmp eax, ecx
jb 0x140160ac1
mov eax, dword [0x1401de6f0]
mov ecx, 0xef473d98
xor ecx, 0x4bdd6f22
xor eax, ecx
xor edx, edx
div dword [0x1401de6f4]
mov ecx, eax
mov eax, ecx
and eax, 0x6d2f963
or ecx, 0x6d2f963
add eax, ecx
mov ecx, 0xcec2e234
xor ecx, 0xe239ae4f
xor eax, ecx
mov ecx, 0x9fade97c
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x58]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
movabs rdx, 0xc6b9644c961db87f
movabs r8, 0xc6b9644c961db87f
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rsp + 0x57], cl
cmp eax, 0x7d215a87
ja 0x14016061d
mov al, byte [rsp + 0x57]
test al, 1
jne 0x1401606ae
jmp 0x1401607e8
mov eax, dword [0x1401de6f8]
xor edx, edx
div dword [0x1401de6fc]
mov ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0x1c0a5a85
xor edx, 0xe3f5a57a
xor eax, edx
and eax, 0xc2ddfeb6
mov edx, 0xb6c068e0
xor edx, 0x493f971f
xor eax, edx
mov edx, 0xc2ddfeb6
and edx, 0xc2ddfeb6
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xb4611ce5
xor ecx, 0x4b9ee31a
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0x345cd1bf
mov ecx, 0x53cf0be1
xor ecx, 0x28302969
mov r8d, 0xd72449ad
xor r8d, 0x28dbb652
xor ecx, r8d
or eax, edx
or ecx, 0x7bff2288
xor eax, 0xffffffff
and eax, ecx
and eax, 0x64620f71
mov ecx, 0x6ba5d9a4
xor ecx, 0x4c0e6d20
cmp eax, ecx
je 0x140160aca
mov rcx, qword [rsp + 0x58]
mov eax, dword [0x1401de700]
mov r9d, dword [0x1401de704]
mov edx, 0xfa941e4d
xor edx, 0x56be1b2
mov r10d, r9d
xor r10d, edx
mov r8d, eax
and r8d, r10d
mov edx, eax
or edx, r10d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
mov r8d, 0xce74f85d
xor r8d, 0xf4b42434
xor edx, edx
div r8d
mov edx, 0x3b348f99
xor edx, 0xbedf0b6f
and eax, edx
add eax, 0xc19da866
mov dword [rsp + 0x50], eax
mov eax, 0x94bdad22
xor eax, 0x5c194e87
mov dword [rsp + 0x4c], eax
call fcn.14000eb2e
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x50]
cmp eax, ecx
je 0x140160aca
jmp 0x1401607e8
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0xb8]
mov qword [rsp + 0x40], rax
cmp rax, 0
je 0x140160924
mov rax, qword [rsp + 0x40]
mov rax, qword [rax]
movabs rdx, 0xdbab6820aa0dd517
movabs rcx, 0x9bab6820aa0dd517
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
and rax, rcx
cmp rax, 0
jne 0x140160924
mov eax, dword [str._ftB_e]
xor eax, 0xc804bc0d
and eax, dword [0x1401de70c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x6f14cfca
xor edx, 0xed766e1
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x61c3a92b
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x61c3a92b
or eax, 0x61c3a92b
imul eax, edx
add eax, ecx
mov ecx, 0x75800fe5
xor edx, edx
div ecx
mov ecx, 0x8338af5d
xor ecx, 0x9de7dfba
xor edx, edx
div ecx
cmp eax, 0x355ea30d
jae 0x140160ad3
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x1401de710]
xor eax, 0x103a815e
mov r9d, dword [0x1401de714]
mov edx, eax
xor edx, 0xffffffff
mov r8d, r9d
and r8d, edx
mov r10d, r9d
xor r10d, 0xffffffff
mov edx, eax
and edx, r10d
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
or eax, 0xff6c0c34
sub eax, 0x6882fdc
imul eax, eax, 0xcd2af58a
mov dword [rsp + 0x3c], eax
call fcn.14000eb2e
mov eax, dword [rsp + 0x3c]
cmp eax, 0x8b23bbf1
je 0x1401608b6
jmp 0x140160924
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0xd0]
mov qword [rsp + 0x30], rax
cmp rax, 0
je 0x140160a9d
mov eax, dword [0x1401de718]
mov edx, dword [0x1401de71c]
mov ecx, eax
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
mov r8d, 0x2192692
xor r8d, 0xfde6d96d
xor edx, r8d
or eax, edx
xor ecx, 0xffffffff
mov edx, 0x749c45d2
xor edx, 0x8b63ba2d
xor eax, edx
or ecx, eax
mov eax, 0xd3326a24
xor eax, 0x173d19cf
mov edx, 0xd2eaf3ce
xor edx, 0x2d150c31
xor eax, edx
add ecx, eax
add ecx, 1
mov eax, ecx
and eax, 0xefb2c0e9
mov edx, 0xdb17a52d
xor edx, 0x34a565c4
xor ecx, edx
or eax, ecx
mov edx, 0xbbc189fe
xor edx, 0x887c7e0
mov ecx, 0xb94898b1
xor ecx, 0x46b7674e
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xb3464e1e
add eax, edx
sub eax, ecx
cmp eax, 0xcb3dbfb2
je 0x140160adc
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1401de720]
or eax, dword [0x1401de724]
and eax, 0x854999fe
xor eax, 0x2e98a68d
mov r9d, 0xffffffff
xor r9d, 0x51d3a77
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
xor edx, 0xffffffff
imul edx, r8d
mov r9d, 0x2cc97dca
xor r9d, 0x29d447bd
mov r8d, eax
and r8d, r9d
or eax, 0x51d3a77
imul eax, r8d
add eax, edx
mov rcx, qword [rcx]
movabs rdx, 0x161df6e91b5accfb
movabs r8, 0x561df6e91b5accfb
xor rdx, r8
and rcx, rdx
movabs rdx, 0xdb60d84820801133
movabs r8, 0xdb60d84820801133
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rsp + 0x2f], cl
cmp eax, 0xed25580f
ja 0x140160adc
invalid
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x140160a93
jmp 0x140160a9d
mov rcx, qword [rsp + 0x30]
call fcn.14000eb2e
nop
add rsp, 0xb8
ret
jp 0x140160a5e
in al, 0xcc
jmp 0x14016010a
invalid
bswap esi
push rax
sti
jmp 0x14016040b
pop rax
xchg ebx, eax
invalid
invalid
invalid
in eax, dx
movabs eax, dword [0x48fffffefce91c6e]
sub rsp, 0x38