Function at 0x140081dc0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov eax, edx
mov r14, rcx
mov byte [rsp + 0xd0], 0xff
mov r12d, dword [rcx + 8]
mov ecx, edx
and ecx, 2
mov dword [rsp + 0x50], ecx
mov esi, edx
sar esi, 0x10
and eax, 1
mov dword [rsp + 0xd8], eax
test r12d, r12d
jg 0x140081e12
xor eax, eax
jmp 0x1400825ac
mov r15, qword [r14]
mov edx, 0x28
lea rcx, [rsp + 0x58]
call fcn.140063580
nop
movsxd r13, dword [r14 + 8]
add r13, r15
mov rax, qword [r14]
movzx ecx, word [rax]
xor cx, si
mov rbx, qword [rsp + 0x58]
mov word [rbx], cx
mov rax, qword [r14]
movzx ecx, word [rax + 2]
xor cx, si
mov word [rbx + 2], cx
mov rax, qword [r14]
movzx ecx, word [rax + 4]
xor cx, si
mov word [rbx + 4], cx
mov r9d, 2
mov r8d, r9d
lea rdx, [0x14014cd10]
mov rcx, rbx
call fcn.14005b5d0
test eax, eax
sete bpl
mov r8d, r9d
lea rdx, [0x14014cd14]
mov rcx, rbx
call fcn.14005b5d0
test eax, eax
jne 0x140081e9b
mov edx, r12d
mov rcx, qword [r14]
call fcn.14005f9f0
mov bpl, 1
xor ecx, ecx
mov dword [rsp + 0xe0], ecx
mov eax, r12d
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x6c], ecx
mov dword [rsp + 0x38], 0xff000000
mov dword [rsp + 0xe8], 0xffffffff
test bpl, bpl
jne 0x140081f02
mov r9d, 3
mov r8d, r9d
lea rdx, [0x14014cd18]
mov rcx, rbx
call fcn.14005b5d0
test eax, eax
jne 0x140081f49
mov eax, 0xfde9
mov dword [rsp + 0xe0], eax
sub r12d, r9d
mov dword [r14 + 0xc], r12d
mov dword [r14 + 8], r12d
mov eax, r12d
cdq
sub eax, edx
sar eax, 1
mov r13d, eax
mov rcx, qword [r14]
lea eax, [r12 + 6]
movsxd r8, eax
movsxd rdx, r9d
add rdx, rcx
call fcn.14010cd30
movsxd r11, r12d
mov rax, qword [r14]
mov byte [r11 + rax], sil
mov r15, qword [r14]
test bpl, bpl
jne 0x140082237
jmp 0x1400821bc
cmp dword [rsp + 0xd8], 0
je 0x140082104
mov rbp, r15
mov qword [rsp + 0x30], r15
mov rax, rbx
cmp byte [rbx], 0x40
jne 0x140081f6b
lea rax, [rbx + 1]
cmp byte [rax], 0x3a
jne 0x140081f97
cmp byte [rax + 1], 0x3a
jne 0x140081f97
movzx edx, sil
lea rcx, [rsp + 0x30]
call fcn.140062f40
movzx edx, sil
lea rcx, [rsp + 0x30]
call fcn.140062f80
mov rbp, qword [rsp + 0x30]
movzx eax, sil
xor al, byte [rbp]
cmp al, 0x40
jne 0x140081faa
inc rbp
mov qword [rsp + 0x30], rbp
movzx ecx, si
movsx eax, byte [rbp]
xor eax, ecx
cmp eax, 0x23
jne 0x140081fe4
movsx eax, byte [rbp + 1]
xor eax, ecx
cmp eax, 0x21
jne 0x140081fe4
movzx edx, sil
lea rcx, [rsp + 0x30]
call fcn.140062f40
movzx edx, sil
lea rcx, [rsp + 0x30]
call fcn.140062f80
mov rbp, qword [rsp + 0x30]
movzx eax, sil
xor al, byte [rbp]
cmp al, 0x40
jne 0x140081ff2
inc rbp
movzx eax, sil
xor al, byte [rbp]
cmp al, 0x23
jne 0x140082104
sub r13d, ebp
cmp r13d, 0x20
mov eax, 0x20
cmovg r13d, eax
movsxd rdx, r13d
test r13d, r13d
jle 0x140082035
mov rcx, rbx
mov r8, rbp
sub r8, rbx
movzx eax, byte [r8 + rcx]
xor al, sil
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140082022
mov r8d, 6
lea rdx, [0x1401472f0]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_StrCmpNIA]
test eax, eax
jne 0x140082104
mov dword [rsp + 0xe8], 0xffffffff
movzx eax, sil
xor al, 0x2d
mov byte [rbp + 1], al
bts dword [rsp + 0xd8], 9
mov byte [rsp + 0xd0], 1
lea rdx, [rbx + 6]
or r8d, 0xffffffff
lea rcx, [rsp + 0x40]
call fcn.1400712d0
mov r11, qword [rsp + 0x40]
mov qword [rsp + 0x30], r11
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x30]
call fcn.140066e40
mov ecx, dword [rsp + 0xe8]
mov dword [rsp + 0xe8], ecx
mov eax, dword [rsp + 0xe0]
test ecx, ecx
cmovns eax, ecx
mov dword [rsp + 0xe0], eax
mov rcx, qword [rsp + 0x30]
movzx eax, word [rcx]
or ax, 0x20
mov edx, 0x74
cmp dx, ax
jne 0x1400820f5
add rcx, 2
mov qword [rsp + 0x30], rcx
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x30]
call fcn.140066e40
lea rcx, [rsp + 0x40]
call fcn.14005b520
jmp 0x1400821bc
mov eax, dword [r14]
sub eax, r15d
add r12d, eax
cmp r12d, 4
jl 0x14008214d
cmp byte [rbx], 0
jne 0x14008213d
cmp byte [rbx + 1], 0
je 0x14008214d
mov edx, r12d
mov rcx, qword [r14]
call fcn.14005f9f0
mov r13d, dword [rsp + 0x40]
mov r15d, dword [rsp + 0xe0]
xor ebp, ebp
jmp 0x140082241
cmp byte [rbx + 1], 0
jne 0x14008214d
cmp byte [rbx + 2], 0
jne 0x140082226
lea edx, [r12 + r12*2 + 3]
lea rcx, [rsp + 0x48]
call fcn.1400635c0
movzx ebp, si
lea r13d, [r12 + r12]
mov eax, ebp
bts eax, 0x18
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r13d
mov rdi, qword [rsp + 0x48]
mov r9, rdi
mov r8d, r12d
mov rdx, qword [r14]
xor ecx, ecx
call fcn.140061fb0
test eax, eax
jg 0x140082205
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], r13d
mov r9, rdi
mov r8d, r12d
mov rdx, qword [r14]
mov ecx, 0xfde9
call fcn.140061fb0
mov r13d, eax
test eax, eax
jle 0x1400821bc
mov eax, 0xfde9
mov dword [rsp + 0xe0], eax
jmp 0x140082208
mov rax, qword [r14]
mov qword [rsp + 0x60], rax
xor ebp, ebp
mov qword [r14], rbp
lea edx, [r12 + r12*2 + 3]
mov rcx, r14
call fcn.1400635c0
movzx r11d, si
lea eax, [r12 + r12]
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], eax
mov r9, qword [r14]
mov r8d, r12d
mov rdx, r15
mov r15d, dword [rsp + 0xe0]
mov ecx, r15d
call fcn.140061fb0
mov r13d, eax
jmp 0x140082241
mov r13d, eax
movsxd rax, r13d
xor ebp, ebp
mov word [rdi + rax*2], bp
mov rax, qword [r14]
mov qword [r14], rdi
mov qword [rsp + 0x48], rax
mov r15d, dword [rsp + 0xe0]
jmp 0x140082241
mov r13d, dword [rsp + 0x40]
mov r15d, dword [rsp + 0xe0]
xor ebp, ebp
jmp 0x140082241
mov r15d, dword [rsp + 0xe0]
xor ebp, ebp
mov r12d, dword [rsp + 0xd8]
mov edi, dword [rsp + 0x38]
nop dword [rax]
lea edx, [r13 + 9]
mov rcx, r14
call fcn.1400635c0
movsxd r11, r13d
mov rax, qword [r14]
mov word [rax + r11*2 + 0xe], si
mov rax, qword [r14]
mov word [rax + r11*2 + 0xc], si
mov rax, qword [r14]
mov word [rax + r11*2 + 0xa], si
mov rax, qword [r14]
mov word [rax + r11*2 + 8], si
mov rax, qword [r14]
mov word [rax + r11*2 + 6], si
mov rax, qword [r14]
mov word [rax + r11*2 + 4], si
mov rax, qword [r14]
mov word [rax + r11*2 + 2], si
mov rax, qword [r14]
mov word [rax + r11*2], si
mov rax, qword [r14]
mov word [rax + r11*2 + 0x10], bp
cmp r12d, 0x10
jge 0x1400824b3
mov rbp, qword [r14]
mov rdx, rbp
mov qword [rsp + 0xe0], rdx
mov dword [rsp + 0xd8], 0xffffffff
mov rcx, rbp
movzx eax, word [rbp]
xor ax, si
mov r8d, 0x40
cmp r8w, ax
jne 0x1400822ec
lea rcx, [rbp + 2]
movzx eax, word [rcx]
xor ax, si
mov r9d, 0x3a
cmp r9w, ax
jne 0x140082339
movzx eax, word [rcx + 2]
xor ax, si
cmp r9w, ax
jne 0x140082339
movzx edx, si
lea rcx, [rsp + 0xe0]
call fcn.140062fb0
movzx edx, si
lea rcx, [rsp + 0xe0]
call fcn.140063000
mov rdx, qword [rsp + 0xe0]
mov r8d, 0x40
mov rcx, rdx
movzx eax, word [rdx]
xor ax, si
cmp r8w, ax
jne 0x14008234c
lea rcx, [rdx + 2]
movzx eax, word [rcx]
xor ax, si
mov r8d, 0x23
cmp r8w, ax
jne 0x14008239d
movzx eax, word [rcx + 2]
xor ax, si
mov ecx, 0x21
cmp cx, ax
jne 0x14008239d
movzx edx, si
lea rcx, [rsp + 0xe0]
call fcn.140062fb0
movzx edx, si
lea rcx, [rsp + 0xe0]
call fcn.140063000
mov rdx, qword [rsp + 0xe0]
mov r8d, 0x23
movzx eax, word [rdx]
xor ax, si
mov ecx, 0x40
cmp cx, ax
jne 0x1400823b1
add rdx, 2
movzx eax, word [rdx]
xor ax, si
cmp r8w, ax
jne 0x1400824bd
mov rax, rdx
sub rax, rbp
sar rax, 1
mov ecx, r13d
sub ecx, eax
cmp ecx, 0x20
mov eax, 0x20
cmovg ecx, eax
xor ebp, ebp
mov r9, rbp
movsxd r8, ecx
test ecx, ecx
jle 0x140082404
mov rcx, rbx
sub rdx, rbx
mov r9, r8
nop
movzx eax, word [rdx + rcx]
xor ax, si
mov word [rcx], ax
add rcx, 2
sub r8, 1
jne 0x1400823f0
mov word [rbx + r9*2], bp
mov r8d, 6
lea rdx, str.code
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x1400824c9
lea rax, [rbx + 0xc]
mov qword [rsp + 0xe0], rax
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0xe0]
call fcn.140066e40
mov r8d, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], r8d
test r8d, r8d
cmovns r15d, r8d
mov rcx, qword [rsp + 0xe0]
movzx edx, word [rcx]
movzx eax, dx
or ax, 0x20
mov r9d, 0x74
cmp r9w, ax
je 0x140082487
mov eax, 0x2a
cmp ax, dx
jne 0x1400824d1
add rcx, 2
mov qword [rsp + 0xe0], rcx
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0xe0]
call fcn.140066e40
mov edi, dword [rsp + 0x38]
mov r8d, dword [rsp + 0xe8]
jmp 0x1400824d1
mov r8d, dword [rsp + 0xe8]
jmp 0x1400824d1
mov r8d, dword [rsp + 0xe8]
xor ebp, ebp
jmp 0x1400824d1
mov r8d, dword [rsp + 0xe8]
cmp r12d, 0x1000
jge 0x14008253a
test edi, edi
jle 0x14008253a
movzx eax, word [0x1401b5004]
cmp edi, eax
jne 0x14008253a
cmp r8d, eax
je 0x14008253a
mov rcx, qword [r14]
mov qword [rsp + 0xe0], rcx
mov qword [r14], rbp
movzx r9d, si
mov r8d, ebp
cmp edi, 0x3b6
sete r8b
mov rdx, r14
call fcn.140068010
movzx edx, si
mov rcx, qword [r14]
call fcn.14002d37c
mov r13d, eax
bts r12d, 0xc
lea rcx, [rsp + 0xe0]
call fcn.14005b520
jmp 0x140082250
movzx eax, byte [rsp + 0xd0]
test al, al
mov rdi, qword [rsp + 0x48]
js 0x14008255a
xor si, 0x63
movsx rdx, al
mov rax, qword [r14]
mov word [rax + rdx*2], si
lea eax, [r13 + r13]
mov dword [r14 + 8], eax
mov dword [r14 + 0xc], eax
cmp dword [rsp + 0x50], 0
je 0x140082589
mov rcx, rbx
call fcn.14005b500
mov rcx, rdi
call fcn.14005b500
mov rcx, qword [rsp + 0x60]
call fcn.14005b500
nop
lea rcx, [rsp + 0x60]
call fcn.14005b520
nop
lea rcx, [rsp + 0x48]
call fcn.14005b520
nop
lea rcx, [rsp + 0x58]
call fcn.14005b520
mov eax, r15d
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret