Function at 0x140096720
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov r9, rdx
mov r14, rcx
nop dword [rax + rax]
mov ecx, dword [0x141dd3370]
or ecx, dword [0x141dd3374]
add ecx, 0x9dc0a487
and ecx, 0xe0affdcf
mov eax, 0x20
call fcn.1400f1350
sub rsp, rax
mov r11, rsp
cmp ecx, 0xd942b83c
ja 0x140096740
mov eax, 0x20
call fcn.1400f1350
sub rsp, rax
mov rsi, rsp
mov eax, 0x20
call fcn.1400f1350
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.1400f1350
sub rsp, rax
mov rdi, rsp
mov eax, 0x20
call fcn.1400f1350
sub rsp, rax
mov r12, rsp
mov eax, 0x400
call fcn.1400f1350
sub rsp, rax
mov qword [rbp - 0x58], rsp
mov r10, qword [r9 + 8]
mov rax, qword [r9 + 0x10]
cmp rax, 4
jb 0x140096820
movabs rcx, 0x5c003f003f005c
lea rdx, [rcx + 0x1d0000]
cmp rdx, qword [r10]
je 0x140096a63
cmp rcx, qword [r10]
je 0x140096a63
cmp rax, 0xf8
jae 0x140096a80
cmp word [r10 + 2], 0x3a
jne 0x140096988
movzx eax, word [r10 + 4]
jmp 0x140096961
mov ecx, dword [0x141dd3378]
sub ecx, dword [0x141dd337c]
add ecx, 0xc62319b2
or ecx, 0x43d140a6
add ecx, 0xdce4e07
cmp ecx, 0x140d3bee
jb 0x140096820
cmp rax, 3
je 0x1400968e0
cmp rax, 1
jne 0x140096982
nop word [rax + rax]
mov eax, dword [0x141dd3380]
sub eax, dword [0x141dd3384]
imul rdx, rax, 0x37bf22d
shr rdx, 0x39
add edx, 0xda67dd33
or edx, 0x15ffd8e
xor eax, eax
cmp word [r10], 0
setne cl
cmp edx, 0x99887bce
jb 0x140096860
mov al, cl
nop word [rax + rax]
mov ecx, dword [0x141dd3388]
and ecx, dword [0x141dd338c]
or ecx, 0x3de07836
imul rcx, rcx, 0x18e02aa1
shr rcx, 0x3b
or ecx, 0x7177574c
cmp ecx, 0x9e829134
ja 0x1400968a0
test eax, eax
jne 0x140096a80
jmp 0x140096a63
mov eax, dword [0x141dd34e8]
imul eax, dword [0x141dd34ec]
add eax, 0xd40c8351
xor eax, 0xaa5ccf49
add eax, 0x93622c61
cmp eax, 0x62d22a64
jb 0x1400968e0
movzx eax, word [r10 + 2]
nop dword [rax + rax]
mov ecx, dword [0x141dd34f0]
mov edx, dword [0x141dd34f4]
add ecx, edx
add ecx, 0x824ecc58
and ecx, 0x8d3f718b
imul ecx, ecx, 0xd8cd0faf
cmp ecx, 0xc91ee9fb
je 0x140096910
cmp ax, 0x3a
jne 0x140096988
nop
mov eax, dword [0x141dd34f8]
sub eax, dword [0x141dd34fc]
cmp eax, 0x25a53408
je 0x140096940
movzx eax, word [r10 + 4]
test ax, ax
je 0x140096abc
cmp ax, 0x2f
je 0x14009696f
movzx eax, ax
cmp eax, 0x5c
jne 0x140096988
movzx ecx, word [r10]
cmp ecx, 0x2f
je 0x140096990
cmp ecx, 0x5c
je 0x140096990
jmp 0x140096a63
jbe 0x140096a80
movzx ecx, word [r10]
nop dword [rax]
mov eax, dword [0x141dd3500]
xor edx, edx
div dword [0x141dd3504]
and eax, 0x9bbb3d3b
add eax, 0x8bb61f6b
cmp eax, 0x68254311
jb 0x140096990
cmp cx, 0x5c
je 0x1400969d0
movzx eax, cx
cmp eax, 0x2f
jne 0x140096a80
nop word cs:[rax + rax]
mov eax, dword [0x141dd3508]
and eax, dword [0x141dd350c]
imul eax, eax, 0xd0c2a27d
add eax, 0x25971666
cmp eax, 0x3845d703
jb 0x1400969d0
movzx ecx, word [r10 + 2]
nop word cs:[rax + rax]
mov eax, dword [0x141dd3510]
xor edx, edx
div dword [0x141dd3514]
add eax, 0x69cf75e1
and eax, 0xc9c330fb
imul eax, eax, 0x72484a3
cmp eax, 0x292522f8
jb 0x140096a00
cmp ecx, 0x5c
je 0x140096a2f
cmp ecx, 0x2f
jne 0x140096a80
mov eax, dword [0x141dd3518]
imul eax, dword [0x141dd351c]
xor eax, 0xa8df0b10
imul eax, eax, 0x9cf9e58d
xor eax, 0x5ee60a14
cmp eax, 0x892807c8
jae 0x140096a63
mov rax, qword [r9 + 0x10]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [r9]
movups xmmword [r14], xmm0
mov rax, qword [r9 + 0x10]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [r9]
movups xmmword [r14], xmm0
jmp 0x14009771b
mov eax, dword [str._a__r]
and eax, dword [0x141dd3394]
cmp eax, 0x4154eaed
je 0x140096a80
mov eax, dword [0x141dd3398]
and eax, dword [0x141dd339c]
mov ecx, 0xd084c711
imul rcx, rax
shr rcx, 0x3f
or ecx, 0x16ef2d2e
cmp ecx, 0x1a60ffd2
ja 0x140096aff
jmp 0x140096ad4
movzx eax, word [r10]
cmp eax, 0x2f
je 0x140096988
cmp eax, 0x5c
je 0x140096988
jmp 0x140096a63
mov eax, dword [0x141dd33a0]
imul eax, dword [0x141dd33a4]
xor eax, 0x957c968b
add eax, 0x11f34e06
xor eax, 0x8e4250f7
mov qword [r12], 0
cmp eax, 0xffd89d5a
jbe 0x140096b09
mov qword [r12], 0
jmp 0x140096ad4
mov byte [rbp + 7], r8b
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x38], r11
mov qword [rbp - 0x10], r10
mov qword [rbp - 0x48], r9
mov qword [rbp - 0x40], r14
mov eax, dword [0x141dd33a8]
and eax, dword [0x141dd33ac]
cmp eax, 0xf9db4768
jne 0x140096b4e
mov qword [r12 + 8], 2
mov qword [r12 + 0x10], 0
mov qword [r12 + 8], 2
mov qword [r12 + 0x10], 0
mov edi, 0x200
mov eax, 2
mov qword [rbp - 0x18], rax
xor eax, eax
mov qword [rbp - 0x20], rax
mov r14d, 0xffffffff
xor esi, esi
cmp rdi, 0x201
jae 0x140096c34
jmp 0x140096ba3
jae 0x140096d73
cmp rdi, 0x201
jae 0x140096c34
mov r15d, 0x200
mov rbx, qword [rbp - 0x58]
mov r13, rdi
mov rdi, qword [rbp - 0x10]
sub rsp, 0x20
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, rdi
mov edx, r13d
mov qword [rbp - 8], rbx
mov r8, rbx
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
add rsp, 0x20
mov ebx, eax
test eax, eax
jne 0x140096bf6
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetLastError]
add rsp, 0x20
test eax, eax
jne 0x140096eca
mov edi, ebx
cmp r13, rdi
jne 0x140096b90
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetLastError]
add rsp, 0x20
cmp eax, 0x7a
jne 0x1400976f4
lea rdi, [r13*2]
cmp r13, 0x7fffffff
cmova rdi, r14
cmp rdi, 0x201
jb 0x140096ba3
sub rdi, rsi
nop word [rax + rax]
mov eax, dword [0x141dd33b0]
add eax, dword [0x141dd33b4]
and eax, 0xbd91a52d
imul rax, rax, 0x3c658a45
shr rax, 0x3b
add eax, 0xd373955d
cmp eax, 0x33c1e6ae
jb 0x140096c40
mov rcx, qword [rbp - 0x20]
mov rax, rcx
sub rax, rsi
cmp rdi, rax
ja 0x140096ca2
mov eax, dword [0x141dd33b8]
xor edx, edx
div dword [0x141dd33bc]
or eax, 0x16ac539b
imul eax, eax, 0xfdb27bec
add eax, 0xb63d2c54
cmp eax, 0xff2f2ffe
ja 0x140096d43
jmp 0x140096d10
sub rsp, 0x30
mov qword [rsp + 0x20], 2
mov r9d, 2
mov rcx, r12
mov rdx, rsi
mov r8, rdi
call fcn.1400f2140
add rsp, 0x30
mov rcx, qword [r12]
nop dword [rax + rax]
mov eax, dword [0x141dd33c8]
imul eax, dword [0x141dd33cc]
imul eax, eax, 0x7dafe281
and eax, 0xb74b857b
xor eax, 0xf9f1fb8c
cmp eax, 0xe3bdd0ee
jae 0x140096cd0
mov rax, qword [r12 + 8]
mov qword [rbp - 0x18], rax
jmp 0x140096c77
mov eax, dword [0x141dd33c0]
and eax, dword [0x141dd33c4]
xor eax, 0x8185dd40
and eax, 0xa99dff44
add eax, 0x1c509744
cmp rcx, r14
mov esi, 0xffffffff
cmovb rsi, rcx
mov qword [r12 + 0x10], rsi
cmp eax, 0xbb3fb157
jbe 0x140096d60
cmp rcx, r14
mov eax, 0xffffffff
cmovb rax, rcx
mov qword [r12 + 0x10], rax
jmp 0x140096d10
mov qword [rbp - 0x20], rcx
mov r15, rsi
mov rbx, qword [rbp - 0x18]
mov r13, rsi
jmp 0x140096bb0
cmp r15, rdi
jb 0x140096ea0
mov r15, qword [rbp - 0x48]
movzx r8d, byte [rbp + 7]
nop word cs:[rax + rax]
mov eax, dword [0x141dd33f0]
xor edx, edx
div dword [0x141dd33f4]
add eax, 0x5d001a24
or eax, 0x98529f7
mov qword [r15 + 0x10], 0
cmp eax, 0x7693a59d
jbe 0x140096dd0
mov qword [r15 + 0x10], 0
jmp 0x140096d90
cmp ebx, 0xf7
setae cl
mov eax, dword [0x141dd33f8]
xor edx, edx
div dword [0x141dd33fc]
add eax, 0xa10bea08
and eax, 0x546d804b
imul eax, eax, 0xc9aa5dc6
cmp eax, 0xbadeb8db
ja 0x140096dd0
or cl, r8b
je 0x140097058
cmp ebx, 2
jbe 0x140097097
mov eax, dword [0x141dd3428]
xor edx, edx
div dword [0x141dd342c]
imul eax, eax, 0x928f9d0b
cmp eax, 0x113c2980
je 0x140096e10
mov rax, qword [rbp - 8]
movzx eax, word [rax + 2]
cmp ax, 0x3a
jne 0x140097135
mov rcx, qword [rbp - 8]
movzx ecx, word [rcx + 4]
nop word cs:[rax + rax]
mov edx, dword [0x141dd3430]
imul edx, dword [0x141dd3434]
add edx, 0x1b1c53bf
xor edx, 0x27302df7
add edx, 0x12c011b1
cmp edx, 0xf3f5d11b
ja 0x140096e50
cmp cx, 0x5c
jne 0x140097135
lea r13, [0x141dbbc58]
mov r12d, 4
jmp 0x140097360
mov eax, dword [0x141dd34d8]
imul eax, dword [0x141dd34dc]
add eax, 0x64d341cb
xor eax, 0xd5918bcc
add eax, 0x4673b3b3
ud2
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetLastError]
add rsp, 0x20
mov esi, eax
shl rsi, 0x20
cmp qword [rbp - 0x20], 0
mov rbx, qword [rbp - 0x40]
mov r14, qword [rbp - 0x48]
je 0x140096faa
nop word cs:[rax + rax]
mov eax, dword [0x141dd33d0]
xor edx, edx
div dword [0x141dd33d4]
add eax, 0xfe13ea8a
xor eax, 0x79e5a68
imul eax, eax, 0x11455a7
mov rdi, qword [0x141dde6e0]
cmp eax, 0x1bfe2c99
jb 0x140096f00
mov eax, dword [0x141dd33d8]
xor eax, dword [0x141dd33dc]
cmp eax, 0x18de49f6
jne 0x140096f56
sub rsp, 0x20
mov rcx, rdi
xor edx, edx
mov r8, qword [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
sub rsp, 0x20
mov rcx, rdi
xor edx, edx
mov r8, qword [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
mov rdi, qword [rbp - 0x10]
nop word cs:[rax + rax]
mov eax, dword [0x141dd33e0]
xor edx, edx
div dword [0x141dd33e4]
and eax, 0xe04b0d0a
imul rax, rax, 0x1f05ca6f
shr rax, 0x3c
or eax, 0xd1d4e18a
cmp eax, 0xf983f942
ja 0x140096f80
or rsi, 2
movabs rax, 0x8000000000000000
nop dword [rax + rax]
mov ecx, dword [0x141dd34e0]
xor ecx, dword [0x141dd34e4]
add ecx, 0x5e9126d0
and ecx, 0x4b03306c
add ecx, 0xd0947760
mov qword [rbx + 8], rsi
mov qword [rbx], rax
cmp ecx, 0x35b7f4da
jbe 0x140096ff6
mov qword [rbx + 8], rsi
mov qword [rbx], rax
jmp 0x140096fc0
cmp qword [r14], 0
je 0x14009771b
xor eax, eax
test al, al
je 0x14009700d
mov rax, qword [0x141dde6e0]
mov rcx, qword [0x141dde6e0]
sub rsp, 0x20
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
nop word [rax + rax]
mov eax, dword [0x141dd3520]
and eax, dword [0x141dd3524]
xor eax, 0x21241
and eax, 0x883bbc3
imul eax, eax, 0x1ec7a47
cmp eax, 0x13e33746
jb 0x140097030
jmp 0x14009771b
lea rsi, [rdi + 1]
nop dword [rax]
mov eax, dword [0x141dd3400]
add eax, dword [0x141dd3404]
imul eax, eax, 0x7f3423ed
add eax, 0x9078faf4
or eax, 0x1079e176
cmp eax, 0x2910f9c3
jb 0x140097060
mov rdx, qword [r15]
cmp rdx, rdi
mov rbx, qword [rbp - 0x50]
jbe 0x1400970b4
xor r12d, r12d
jmp 0x1400975a4
jne 0x140097357
mov r8, qword [rbp - 8]
movzx edx, word [r8]
cmp dx, 0x5c
je 0x140097331
jmp 0x140097357
lea r8, [rsi + rsi]
mov eax, 0xcf9633cb
nop dword [rax]
mov ecx, dword [0x141dd3408]
or ecx, dword [0x141dd340c]
imul rcx, rax
shr rcx, 0x3c
xor ecx, 0xf2f3f40c
imul ecx, ecx, 0xab0085d2
cmp ecx, 0x5c78d284
ja 0x1400970c0
test rdx, rdx
je 0x1400972e8
mov eax, dword [0x141dd3410]
or eax, dword [0x141dd3414]
add rdx, rdx
or eax, 0x1804400
and eax, 0x21c44400
cmp eax, 0x50c4d446
jbe 0x14009711c
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x28]
mov qword [rcx], rax
mov rax, qword [rbp - 0x10]
mov r9, qword [rbp - 0x28]
mov qword [r9], rax
mov qword [r9 + 0x10], rdx
mov eax, 2
jmp 0x1400972ee
movzx ecx, ax
mov edx, 0xf0dc6451
nop dword [rax]
mov r8d, dword [0x141dd3438]
and r8d, dword [0x141dd343c]
add r8d, 0xe13327e3
imul r8, rdx
shr r8, 0x3e
imul r8d, r8d, 0xe058e973
cmp r8d, 0x86af6c23
je 0x140097140
mov rdx, qword [rbp - 8]
movzx edx, word [rdx]
nop word cs:[rax + rax]
mov r8d, dword [0x141dd3440]
or r8d, dword [0x141dd3444]
and r8d, 0x55a6133b
add r8d, 0xdd6a8f53
and r8d, 0x7c7a3ba2
cmp r8d, 0x4e333cd5
ja 0x140097180
cmp ebx, 3
jbe 0x140097327
mov r13d, 2
cmp dx, 0x5c
jne 0x14009735d
cmp ecx, 0x3f
je 0x14009735d
cmp ecx, 0x5c
mov r8, qword [rbp - 8]
jne 0x140097336
movzx eax, word [r8 + 4]
cmp eax, 0x3f
je 0x140097291
cmp eax, 0x2e
jne 0x14009733c
movzx eax, word [r8 + 6]
mov ecx, dword [0x141dd3490]
sub ecx, dword [0x141dd3494]
or ecx, 0x9f8e58af
imul ecx, ecx, 0xdf0afe54
add ecx, 0xb5b756ec
cmp ecx, 0x56f59eda
jb 0x1400971f7
mov ecx, dword [0x141dd3498]
sub ecx, dword [0x141dd349c]
cmp ecx, 0xe4a7ee93
je 0x14009721d
cmp ax, 0x5c
jne 0x14009733c
add rdi, 0xfffffffffffffffc
add r8, 8
mov eax, dword [0x141dd34b0]
xor edx, edx
div dword [0x141dd34b4]
cmp eax, 0x3fd91c48
je 0x140097243
mov qword [rbp - 8], r8
lea r13, [0x141dbbc58]
mov r12d, 4
mov eax, dword [0x141dd34b8]
and eax, dword [0x141dd34bc]
imul eax, eax, 0xae601304
add eax, 0x27a752ec
or eax, 0x1f37ce4f
cmp eax, 0x265d5916
jbe 0x140097269
jmp 0x140097360
mov eax, dword [0x141dd34a0]
imul eax, dword [0x141dd34a4]
imul eax, eax, 0xf5d40358
and eax, 0x18502e80
add eax, 0xb98a5e6f
cmp eax, 0xe59fe60
jb 0x140097291
movzx eax, word [r8 + 6]
mov ecx, dword [0x141dd34a8]
xor ecx, dword [0x141dd34ac]
and ecx, 0x8dadf877
xor ecx, 0x7733f94f
add ecx, 0x951463a8
cmp ecx, 0xe75f95e8
ja 0x1400972ba
cmp ax, 0x5c
je 0x14009735d
jmp 0x14009733c
xor eax, eax
mov r9, qword [rbp - 0x28]
mov qword [r9 + 8], rax
sub rsp, 0x20
mov edx, 2
mov rcx, rbx
call fcn.1400c39d0
add rsp, 0x20
cmp qword [rbx], 0
jne 0x140097717
mov rax, qword [rbx + 8]
mov qword [r15 + 8], rax
mov qword [r15], rsi
xor r12d, r12d
mov rdx, rsi
jmp 0x1400975a4
jge 0x140097327
add byte [rax], al
mov eax, dword [0x141dd33e8]
or eax, dword [0x141dd33ec]
or eax, 0x1178dfb7
imul eax, eax, 0x9cbe2dc5
add eax, 0xb61b8abc
mov dh, 0x3d
nop
invalid
invalid
invalid
jae 0x140097719
ud2
ud2