Function at 0x14009d420
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
mov dword [rsp + 0x4c], edx
mov qword [rsp + 0x40], rcx
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
call fcn.14000efc9
mov edx, dword [rsp + 0x4c]
add rax, 0x60
mov qword [rsp + 0x50], rax
cmp edx, 0xffffffe0
jge 0x14009d616
mov eax, dword [rsp + 0x4c]
cmp eax, 0xffff8000
jae 0x14009d5a4
mov rcx, qword [rsp + 0x40]
mov edx, 0xd2
call fcn.1400592d9
mov rax, qword [rsp + 0x50]
mov al, byte [rax]
mov cl, 0x18
xor cl, 0x18
cmp al, cl
jne 0x14009daed
mov ecx, dword [0x1402768e8]
mov eax, 0xbd1259ee
xor eax, 0x1da5caf4
xor ecx, eax
add ecx, dword [0x1402768ec]
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x919cba44
or eax, edx
and ecx, 0x919cba44
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
mov edx, eax
xor edx, 0xffffffff
and edx, 0xbcdc3248
mov r8d, 0xffffffff
xor r8d, 0xbcdc3248
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xbcdc3248
mov r8d, 0x7148e01f
xor r8d, 0xcd94d257
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x77807f98
xor ecx, 0xc6b71c38
imul eax, ecx
cmp eax, 0x9aa888b3
je 0x14009daf3
mov edx, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x1402768f0]
mov r8d, dword [0x1402768f4]
xor r8d, 0x2cd7561c
xor eax, r8d
sub eax, 0xf9b51731
sub eax, 0x89dad533
mov r8d, 0x7c3d66ae
xor r8d, 0x8588719f
add eax, r8d
and eax, 0x1a3f6e46
mov r10d, 0xffffffff
xor r10d, 0x5357f018
mov r9d, eax
and r9d, r10d
mov r8d, eax
or r8d, r10d
xor r8d, 0xffffffff
imul r8d, r9d
mov r9d, eax
and r9d, 0x5357f018
or eax, 0x5357f018
imul eax, r9d
add eax, r8d
mov dword [rsp + 0x3c], eax
call fcn.14009d100
mov eax, dword [rsp + 0x3c]
cmp eax, 0xc76b386d
ja 0x14009daf3
jmp 0x14009daed
mov eax, dword [rsp + 0x4c]
cmp eax, 0xffffff80
jae 0x14009d5e4
mov rcx, qword [rsp + 0x40]
mov edx, 0xd1
call fcn.1400592d9
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0
jne 0x14009daed
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
mov dx, ax
call fcn.14009cf80
jmp 0x14009daed
mov rcx, qword [rsp + 0x40]
mov dl, 0xda
xor dl, 0xa
call fcn.1400592d9
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0
jne 0x14009daed
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
mov dl, al
call fcn.1400592d9
jmp 0x14009daed
mov eax, dword [0x1402768f8]
mov edx, dword [0x1402768fc]
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
mov ecx, 0x6c30c3bf
xor edx, edx
div ecx
mov ecx, 0x7a5dde1c
xor ecx, 0x1ba7dc6e
xor edx, edx
div ecx
mov ecx, 0xfa1c7bfe
xor edx, edx
div ecx
mov ecx, 0xbfa3ddd3
xor ecx, 0xeb95fa0e
cmp eax, ecx
ja 0x14009dafc
mov ecx, dword [rsp + 0x4c]
mov eax, dword [0x140276900]
imul eax, dword [0x140276904]
mov r8d, 0xe4323095
xor r8d, 0xf8a9ae5b
xor edx, edx
div r8d
mov r8d, 0x79b471fe
xor edx, edx
div r8d
mov edx, 0x3f482835
xor edx, 0xe3ed4046
sub eax, edx
cmp ecx, 0x80
setl cl
mov byte [rsp + 0x3b], cl
cmp eax, 0xcb499800
jae 0x14009dafc
mov al, byte [rsp + 0x3b]
test al, 1
jne 0x14009d6c8
jmp 0x14009d6f1
mov rax, qword [rsp + 0x50]
mov al, byte [rax]
mov cl, 0xcf
xor cl, 0xcf
cmp al, cl
jne 0x14009daed
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
mov dl, al
call fcn.1400592d9
jmp 0x14009daed
mov eax, dword [rsp + 0x4c]
mov ecx, 0xce8fb09a
xor ecx, 0xce8fb19a
cmp eax, ecx
jae 0x14009d7fa
mov ecx, dword [0x140276908]
xor ecx, 0x8639ce8a
and ecx, dword [0x14027690c]
mov eax, 0x21c2f2d2
xor eax, 0x62482e3e
add ecx, eax
sub ecx, 0xce953a46
mov eax, 0x97008eee
xor eax, 0xd48a5202
sub ecx, eax
mov eax, 0x6a022404
xor eax, 0x6a022404
mov edx, 0xb0dbb71
xor edx, 0xdc44e428
sub eax, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x6c01312
mov edx, 0xffffffff
xor edx, 0x6c01312
and ecx, edx
or eax, ecx
cmp eax, 0xc1281d34
jae 0x14009db05
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x140276910]
imul eax, dword [0x140276914]
and eax, 0x6ac6506b
sub eax, 0x7149a94
sub eax, 0x3e8539a
add eax, 0x7149a94
mov edx, 0x5858c29f
xor edx, 0x6b8c8445
or eax, edx
mov dword [rsp + 0x34], eax
mov edx, 0xcc
call fcn.1400592d9
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0x34]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x3a], cl
cmp eax, 0x3f7cd27
jbe 0x14009d775
mov al, byte [rsp + 0x3a]
test al, 1
jne 0x14009d7e5
jmp 0x14009daed
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
mov dl, al
call fcn.14005940c
jmp 0x14009daed
mov ecx, dword [0x140276918]
mov edx, dword [0x14027691c]
xor ecx, 0xffffffff
xor edx, 0xffffffff
mov eax, 0xffffffff
xor eax, 0x11d10b72
or ecx, edx
or eax, 0x11d10b72
mov edx, 0x2ec3a543
xor edx, 0xd13c5abc
xor ecx, edx
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x96ac5df7
xor ecx, 0x5f9fe244
mov edx, 0x599c4acc
xor edx, 0xa663b533
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xc933bfb3
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
sub eax, 0x7aa35e30
mov ecx, 0xc72b3f1c
xor ecx, 0x89054e60
add eax, ecx
add eax, 0x7aa35e30
xor eax, 0xffffffff
mov edx, 0xc5e598d4
xor edx, 0xec634a9e
mov ecx, 0xb8378cd2
xor ecx, 0x47c8732d
xor edx, ecx
mov ecx, 0xffffffff
xor ecx, 0x7409829
or eax, edx
or ecx, 0x7409829
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0xea765955
jae 0x14009db0e
mov ecx, dword [rsp + 0x4c]
mov eax, dword [0x140276920]
mov r9d, dword [0x140276924]
xor r9d, 0xc269bb06
mov r10d, r9d
xor r10d, 0xffffffff
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, 0x989fa707
xor edx, edx
div r8d
xor eax, 0xf76cb516
sub eax, 0x589e0e39
cmp ecx, 0x10000
setb cl
mov byte [rsp + 0x33], cl
cmp eax, 0xa012b498
ja 0x14009db0e
mov al, byte [rsp + 0x33]
test al, 1
jne 0x14009d936
jmp 0x14009d96f
mov rcx, qword [rsp + 0x40]
mov dl, 0x13
xor dl, 0xde
call fcn.1400592d9
mov rax, qword [rsp + 0x50]
mov al, byte [rax]
mov cl, 0x42
xor cl, 0x42
cmp al, cl
jne 0x14009daed
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
mov dx, ax
call fcn.14009cf80
jmp 0x14009daed
mov eax, dword [0x140276928]
or eax, dword [0x14027692c]
mov ecx, 0x42a34162
xor ecx, 0x7e7dfdd1
sub eax, ecx
imul ecx, eax, 0xc822b94d
mov edx, 0xffffffff
xor edx, 0x79dfd267
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0x605ce1b5
jb 0x14009db17
mov rcx, qword [rsp + 0x40]
mov edx, dword [0x140276930]
or edx, dword [0x140276934]
and edx, edx
mov eax, 0x8d19fe2d
xor eax, 0x72e601d2
xor edx, eax
mov eax, 0xffffffff
xor eax, 0xc42ff67b
mov r8d, 0xffffffff
xor r8d, 0xc42ff67b
or eax, r8d
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov eax, edx
and eax, eax
xor eax, 0xffffffff
and eax, 0xbbbdbee9
mov r8d, 0x8e56e848
xor r8d, 0x71a917b7
xor eax, r8d
mov r8d, 0xffffffff
xor r8d, 0xbbbdbee9
mov r9d, 0xffffffff
xor r9d, 0xbbbdbee9
or r8d, r9d
and edx, r8d
xor edx, 0xffffffff
and eax, edx
mov edx, 0xff5bb5f3
xor edx, 0xa44a0c
xor eax, edx
mov edx, 0x2e6d994e
xor edx, 0xd19266b1
mov r8d, eax
xor r8d, edx
and r8d, 0x6ba4722
mov r9d, 0x9a873556
xor r9d, 0x9c3d7274
mov edx, 0xff8feeb9
xor edx, 0x701146
xor r9d, edx
mov edx, eax
and edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0x6ba4722
or eax, 0x6ba4722
imul eax, r8d
add eax, edx
mov dword [rsp + 0x2c], eax
mov eax, 0x5bed5f5b
xor eax, 0xfee92703
mov dword [rsp + 0x28], eax
mov edx, 0xce
call fcn.1400592d9
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x28]
mov eax, dword [rsp + 0x2c]
mov dl, byte [rdx]
mov r8b, 0x5b
xor r8b, 0x5b
cmp dl, r8b
sete dl
mov byte [rsp + 0x32], dl
cmp eax, ecx
jbe 0x14009db17
mov al, byte [rsp + 0x32]
test al, 1
jne 0x14009dadf
jmp 0x14009daed
mov edx, dword [rsp + 0x4c]
and al, 0x4c
mov rcx, qword [rsp + 0x40]
call fcn.14009d100
nop
add rsp, 0x58
ret
sbb al, 0xf
push rdi
jle 0x14009dae1
adc eax, 0x88fffffa
sbb byte [rax + rbp*8 - 0x4a017], cl
call rdx
fsubr st(4)
mov byte [rax], bl
mov eax, gs
jmp 0x14009d664
rcr al, cl
in al, dx
mov bl, 0xe9
cld
invalid
push rsp
retf 0x4585
imul edx, dword [rbp - 0x75164772], 0xfffffffe
invalid