Function at 0x140043b40
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0xa0
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rcx
call fcn.140041c41
mov rdx, qword [rsp + 0x58]
mov rcx, rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x68], rcx
mov r8, qword [rax]
mov qword [rsp + 0x70], r8
mov rcx, qword [rdx]
mov qword [rsp + 0x78], rcx
mov r9, r8
sub r9, rcx
cmovl rcx, r8
add rax, 8
mov qword [rsp + 0x80], rax
add rdx, 8
mov qword [rsp + 0x88], rdx
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rsp + 0x90], rax
xor eax, eax
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x50], rax
cmp rax, rcx
je 0x140043f8b
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
cmp rax, rcx
jl 0x140043c06
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffff
call fcn.1400137e9
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x14004411f
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x46], al
mov cl, al
add cl, 0xbf
mov dl, 0xc3
xor dl, 0xd9
add al, 0x20
cmp cl, dl
mov byte [rsp + 0x47], al
jb 0x140043c3e
mov al, byte [rsp + 0x46]
mov byte [rsp + 0x47], al
mov rcx, qword [rsp + 0x68]
mov al, byte [rsp + 0x47]
mov byte [rsp + 0x45], al
xor eax, eax
cmp byte [rcx], 0
mov qword [rsp + 0x48], rax
jne 0x14004411f
mov ecx, dword [0x1401dd0c0]
mov edx, dword [0x1401dd0c4]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xa2539d39
mov edx, 0xbb2bca6
xor edx, 0xa9e1219f
mov r8d, 0xbd544915
xor r8d, 0x42abb6ea
xor edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0xfbf7e7df
xor ecx, 0x4081820
xor eax, ecx
or eax, 0x862e2610
add eax, 0xb389e131
mov ecx, 0x313e2413
xor ecx, 0x8eebc67
cmp eax, ecx
ja 0x14004427f
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
mov eax, dword [0x1401dd0c8]
mov r8d, dword [0x1401dd0cc]
xor r8d, 0x26f75b5a
add eax, 0xa4f07046
sub eax, r8d
sub eax, 0xa4f07046
mov r8d, 0xc287ff9a
xor r8d, 0xbb6ee3c5
imul eax, r8d
mov r8d, 0x952b8b62
xor r8d, 0x3f587241
or eax, r8d
mov r8d, 0x3cc9ca36
xor r8d, 0x3cc9ca36
sub r8d, eax
mov eax, 0x85379d98
xor eax, 0x85379d98
mov r9d, 0x7a41060f
xor r9d, 0x19fba838
sub eax, r9d
add r8d, eax
xor eax, eax
sub eax, r8d
cmp rcx, rdx
setl cl
mov byte [rsp + 0x44], cl
cmp eax, 0xcadcf871
ja 0x14004427f
mov al, byte [rsp + 0x44]
test al, 1
jne 0x140043efa
jmp 0x140043d77
mov r8d, dword [0x1401dd0d0]
xor r8d, dword [0x1401dd0d4]
add r8d, 0xaba06c37
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x6537e51f
mov edx, 0xfc1c425d
xor edx, 0x992ba742
mov ecx, 0xf28d63a3
xor ecx, 0xd729c5c
xor edx, ecx
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0xe86e5326
mov r9d, 0x9f159081
xor r9d, 0xfa22759e
and ecx, r9d
and edx, 0xe86e5326
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x854f6287
xor edx, 0x93430af4
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x160c6873
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x160c6873
or eax, 0x160c6873
imul eax, edx
add eax, ecx
cmp eax, 0xf65c318f
je 0x140044288
mov rcx, qword [rsp + 0x50]
mov eax, dword [0x1401dd0d8]
mov r8d, dword [0x1401dd0dc]
mov edx, eax
and edx, r8d
shl edx, 1
xor eax, r8d
add eax, edx
mov r8d, 0x6d519bb5
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x78]
mov r10d, 0xfffdc7a1
xor r10d, 0x41cd8dd0
mov r8d, 0x7403e75f
xor r8d, 0x8bfc18a0
xor r10d, r8d
mov r9d, eax
and r9d, r10d
mov r8d, eax
or r8d, r10d
mov r10d, 0x29506820
xor r10d, 0xd6af97df
xor r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0xbe304a71
or eax, 0xbe304a71
imul eax, r9d
add eax, r8d
mov r9d, 0xffffffff
xor r9d, 0xe5edb5be
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, 0xe5edb5be
add eax, r9d
sub eax, r8d
mov dword [rsp + 0x40], eax
mov eax, 0xfff00dd5
xor eax, 0x728940f0
mov dword [rsp + 0x3c], eax
add rdx, 0xffffffffffffffff
call fcn.1400137e9
mov ecx, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x40]
cmp eax, ecx
jb 0x140043e1e
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x14004411f
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x88]
mov dl, byte [rsp + 0x45]
movzx edx, dl
mov qword [rsp + 0x30], rdx
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x3a], al
mov cl, al
add cl, 0xbf
xor edx, edx
sub dl, 0x20
sub al, dl
cmp cl, 0x1a
mov byte [rsp + 0x3b], al
jb 0x140043f3f
mov al, byte [rsp + 0x3a]
mov byte [rsp + 0x3b], al
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x3b]
movzx ecx, cl
mov edx, ecx
mov rcx, rax
xor rcx, 0xffffffffffffffff
and rcx, rdx
xor rdx, 0xffffffffffffffff
and rax, rdx
sub rax, rcx
cmp rax, 0
mov qword [rsp + 0x48], rax
jne 0x14004411f
mov rax, qword [rsp + 0x50]
xor ecx, ecx
sub rcx, 1
sub rax, rcx
mov qword [rsp + 0x98], rax
jmp 0x140043bb6
mov r9, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, rdx
xor rcx, 0xffffffffffffffff
and rcx, r9
mov r8, r9
xor r8, 0xffffffffffffffff
mov rax, rdx
and rax, r8
sub rax, rcx
mov rcx, rax
xor rcx, rdx
movabs rdx, 0xea5c088d6051c1e1
movabs r8, 0xea5c088d6051c1e1
xor rdx, r8
cmp rcx, rdx
setl cl
mov r8, rax
xor r8, 0xffffffffffffffff
movabs rdx, 0xce41ee622244b1b1
movabs r10, 0x6610e3c4d082f273
xor rdx, r10
and rdx, r8
mov r11, 0xffffffffffffffff
movabs r8, 0xa8510da6f2c643c2
xor r11, r8
mov r10, rax
and r10, r11
movabs rsi, 0xd825d45433b1c3ca
movabs r8, 0x27da2babcc4e3c35
xor rsi, r8
mov r8, r9
xor r8, rsi
movabs rsi, 0xa8510da6f2c643c2
and r8, rsi
and r9, r11
or rdx, r10
or r8, r9
xor rdx, r8
cmp rdx, 0xffffffffffffffff
setg r8b
mov dl, cl
xor dl, r8b
xor dl, 0xff
or cl, r8b
and cl, dl
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x14004406b
jmp 0x14004411f
mov eax, dword [0x1401dd0e0]
xor eax, 0xa0729728
add eax, dword [0x1401dd0e4]
xor eax, 0x770d1c42
mov ecx, 0x94b93d0c
xor ecx, 0x14eb0123
xor eax, ecx
mov ecx, 0x2bdcd3f0
xor edx, edx
div ecx
mov ecx, 0x6c94b727
xor ecx, 0xfad79601
cmp eax, ecx
je 0x140044291
mov eax, dword [0x1401dd0e8]
xor eax, dword [0x1401dd0ec]
mov ecx, 0xa34d4c06
xor ecx, 0x979b5707
imul eax, ecx
and eax, 0x50c3dbdf
mov edx, 0x4c2001e3
xor edx, 0x1df3a2a
mov ecx, 0xb10eb061
xor ecx, 0x4ef14f9e
xor edx, ecx
mov ecx, eax
and ecx, edx
mov r8d, 0xda2a11ad
xor r8d, 0x97d52a64
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov dword [rsp + 0x2c], eax
call fcn.1400067fe
mov eax, dword [rsp + 0x2c]
cmp eax, 0x6d05f9a
jb 0x1400440aa
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x14004411f
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov eax, dword [0x1401dd0f0]
mov ecx, dword [0x1401dd0f4]
xor eax, 0xffffffff
mov edx, 0x4cd1a3c7
xor edx, 0xb32e5c38
xor ecx, edx
mov edx, 0xe635d4ab
xor edx, 0x1f446022
mov r8d, 0x44b004de
xor r8d, 0xbb4ffb21
xor edx, r8d
or eax, ecx
mov ecx, 0x803aee40
xor ecx, 0x794b5ac9
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x13941385
xor ecx, 0x13941385
sub ecx, eax
mov eax, 0x284a0f2e
xor eax, 0x284a0f2e
mov edx, 0x512455ea
xor edx, 0xffd7f4f0
sub eax, edx
add ecx, eax
mov eax, 0x56b7581c
xor eax, 0x56b7581c
sub eax, ecx
mov ecx, 0x175df9fe
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0x55c8bfb2
xor edx, 0xaa37404d
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xb3c88425
xor ecx, 0xa11eec8c
mov edx, 0x97bfa417
xor edx, 0x8569ccbe
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0x17a31e4e
xor edx, 0xe85ce1b1
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x604384b
je 0x14004429a
mov eax, dword [0x1401dd0f8]
mov ecx, dword [0x1401dd0fc]
add eax, 0x7b5175c9
sub eax, ecx
sub eax, 0x7b5175c9
mov ecx, 0x45071fc0
xor ecx, 0xbaf8e03f
mov edx, eax
xor edx, ecx
and edx, 0xad3492ee
mov r8d, 0xffffffff
xor r8d, 0xad3492ee
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xad3492ee
mov r8d, 0x904a90b7
xor r8d, 0x3d7e0259
or eax, r8d
imul eax, edx
add eax, ecx
or eax, 0x99a4e683
add eax, 0x71e038c7
cmp eax, 0x6d675033
je 0x14004429a
mov rax, qword [rsp + 0x20]
add rsp, 0xa0
pop rsi
ret
ret
rol dl, 1
mov edi, 0xfffb8de9
push qword [rax]
invalid
xor byte [rdx + 0x10e92633], bl
invalid
mov al, 0x35
insb byte [rdi], dx
jmp 0x1400441fd