Function at 0x18007ebb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
mov rax, qword [0x1800ab9c8]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0xc0]
mov rsi, rdx
mov rbx, qword [rbp + 0xe0]
mov r12, r9
mov r15, qword [rbp + 0xe8]
mov rdi, r8
mov qword [rbp - 0x38], rax
mov r14, rcx
mov rax, qword [rbp + 0xd0]
mov qword [rbp - 0x40], rax
mov eax, dword [rbp + 0xd8]
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x50], rdx
mov rdx, qword [rbp + 0xc8]
lea r13d, [rax + 0xa]
mov qword [rbp - 0x48], r8
mov qword [rbp - 0x78], rdx
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x58], r15
mov dword [rsp + 0x50], r13d
cmp eax, r13d
jae case.0x18007ec77.53
movzx r13d, word [rsp + 0x50]
lea r10, [0x180000000]
mov ecx, dword [rsp + 0x50]
lea r11, [0x1800a0eb0]
xor r8d, r8d
lea r9d, [r8 + 1]
nop dword [rax]
add eax, 0xffffffd8
cmp eax, 0x16
ja case.default.0x18007ec77
mov ecx, dword [r10 + rax*4 + 0x7f544]
add rcx, r10
jmp rcx
lea rax, [0x1800a0eb4]
mov qword [rbp - 0x20], r11
mov qword [rbp - 0x18], rax
lea rax, [0x1800a0eb8]
movups xmm0, xmmword [rbp - 0x20]
mov qword [rbp - 0x10], rax
lea rax, [0x1800a0ebc]
mov qword [rbp - 8], rax
movups xmm1, xmmword [rbp - 0x10]
mov qword [rbp], r8
movups xmmword [0x180cadc70], xmm0
movsd xmm0, qword [rbp]
movups xmmword [0x180cadc80], xmm1
movsd qword [0x180cadc90], xmm0
cmp qword [r12], 0
je 0x18007f51b
xorps xmm0, xmm0
mov dword [rsp + 0x70], r8d
xor eax, eax
movups xmmword [rbp + 8], xmm0
mov word [rbp + 0x38], ax
movups xmmword [rbp + 0x18], xmm0
movups xmmword [rbp + 0x28], xmm0
jmp case.0x18007ec77.43
cmp byte [r14 + 4], 0
jge case.0x18007ec77.43
test byte [r14 + 5], 0x40
je case.0x18007ec77.43
movsxd rbx, dword [rsp + 0x60]
lea rdx, str.fatal_runtime_error:
lea rcx, [r12 + rbx]
call fcn.180088fc0
add ebx, eax
lea r9, [r14 + 0xe]
mov rax, qword [r14 + 6]
mov r8d, 0xeb
mov qword [rsp + 0x68], rax
mov rax, qword [r15]
movsxd rcx, ebx
sub rax, rcx
mov dword [rsp + 0x60], ebx
mov qword [rbp - 0x30], rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x20], rax
lea rdx, [rcx + r12]
lea rcx, [rsp + 0x68]
call fcn.1800449d0
jmp 0x18007f41f
mov dword [rsp + 0x60], r8d
jmp case.0x18007ec77.43
cmp dword [rdx], 0xffffffff
je 0x18007f463
mov rsi, qword [rbp - 0x68]
mov ebx, r8d
nop word [rax + rax]
mov ecx, dword [rdx]
lea eax, [rcx - 1]
mov dword [rdx], eax
test ecx, ecx
je 0x18007ee73
shr dword [r14], 1
lea r9, [rbp - 0x80]
mov eax, dword [r14]
lea rdx, [rbp - 0x58]
and eax, 1
mov dword [rbp - 0x80], r8d
mov dword [rsp + 0x68], eax
lea r8, [rsp + 0x68]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x78], 0x539cb8
mov qword [rsp + 0x30], rax
mov rcx, r12
lea rax, [rsp + 0x78]
mov dword [rsp + 0x58], 0x10e1009
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa2
call fcn.18004afa0
mov r15, qword [rbp - 0x58]
cmp r12, r15
ja 0x18007f505
mov rax, qword [rbp - 0x40]
lea r9, [rsp + 0x78]
mov rcx, qword [rbp - 0x38]
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x80], 0x10e1009
mov dword [rsp + 0x68], 0x29ce5c
shr dword [rax], 2
shr dword [rcx], 1
mov eax, dword [rax]
mov ecx, dword [rcx]
and eax, 3
mov dword [rsp + 0x78], eax
and ecx, 1
lea rax, [rsp + 0x68]
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x30], rax
mov rcx, rsi
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa2
call fcn.18004afa0
mov rcx, qword [rbp - 0x50]
mov qword [rbp - 0x60], rcx
cmp rsi, rcx
ja 0x18007f505
mov rdx, qword [rbp - 0x78]
inc ebx
mov r8d, 0
cmp ebx, 4
jb 0x18007ed80
xor edx, edx
mov r9, r12
mov rcx, r15
lea r8d, [rdx + 0x10]
call fcn.180052b10
jmp 0x18007f41f
mov qword [rbp - 0x70], rdi
jmp case.0x18007ec77.43
movsxd rsi, dword [rsp + 0x70]
lea rbx, [rsi*8 + 0xcadc70]
add rbx, r10
cmp qword [rbx], 0
je 0x18007eef9
test r13w, r13w
je 0x18007eeef
mov rdx, qword [rbx]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x18007eec0
mov rcx, qword [r12]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x18007eee3
inc esi
add rbx, 8
xor r8d, r8d
jmp 0x18007eee9
xor r8d, r8d
mov r13d, r8d
cmp qword [rbx], 0
jne 0x18007eea8
mov dword [rsp + 0x70], esi
mov r9d, 1
movsxd rdi, esi
lea rbx, [0x180000000]
mov rcx, qword [rbx + rdi*8 + 0xcadc70]
test rcx, rcx
je 0x18007f51b
lea rdx, [rbp + 8]
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x18007ef20
mov rax, qword [r12 + 8]
add r12, 8
test rax, rax
je 0x18007f51b
cmp byte [rax], 0x56
jne 0x18007f51b
cmp byte [rax + 1], 0
jne 0x18007f51b
mov eax, SHSetInstanceExplorer
mov dword [rsp + 0x58], eax
nop dword [rax]
sub eax, 0xad
je 0x18007f1b3
sub eax, 9
je 0x18007f197
cmp eax, 9
jne 0x18007f1b7
mov rax, qword [rbx + rdi*8 + 0xcadc70]
test rax, rax
je 0x18007efdd
nop word [rax + rax]
test r13w, r13w
je 0x18007efd9
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x18007efa0
mov rcx, qword [r12]
mov rdx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x18007efc5
inc esi
inc rdi
xor r8d, r8d
jmp 0x18007efcc
xor r8d, r8d
movzx r13d, r8w
mov rax, qword [rbx + rdi*8 + 0xcadc70]
test rax, rax
jne 0x18007ef90
mov dword [rsp + 0x70], esi
cmp qword [rbx + rdi*8 + 0xcadc70], 0
je 0x18007f517
lea rcx, [rbp + 8]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x18007eff7
cmp rax, 6
jne 0x18007f114
lea r8d, [rax + 5]
mov dword [rsp + 0x68], 3
lea rdx, [rbp + 0xb]
lea rcx, [rsp + 0x68]
call fcn.180064a80
test eax, eax
je 0x18007f0d0
mov ebx, 0x48
mov eax, ebx
sub eax, 0x45
je 0x18007f50a
sub eax, 1
je 0x18007f0b6
sub eax, 1
je 0x18007f0b6
cmp eax, 1
jne 0x18007f0b9
lea rcx, [r15 + 0xb0]
lea r8d, [rax + 2]
lea rdx, [rbp + 8]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
lea rax, [0x180000000]
mov rcx, qword [rax + rdi*8 + 0xcadc70]
lea rdx, [r15 + 0xb4]
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18007f080
lea r8, [rsp + 0x68]
mov dword [rsp + 0x68], 3
lea rdx, [rbp + 0xb]
mov ecx, 0x7c
call fcn.180039600
imul ecx, eax, 0x64
mov dword [r15 + 0x240], ecx
inc dword [r14]
dec ebx
cmp ebx, 0x44
ja 0x18007f031
lea rbx, [0x180000000]
jmp 0x18007f1b7
mov ecx, 0x129
mov r9d, 1
nop dword [rax + rax]
mov eax, ecx
sub eax, 0x129
je 0x18007f100
sub eax, 0x50
je 0x18007f0f9
cmp eax, 0x50
je case.0x18007ec77.53
jmp 0x18007f104
mov word [rbp - 0x70], r9w
jmp 0x18007f104
add dword [r14], 3
add ecx, 0x50
cmp ecx, 0x219
jb 0x18007f0e0
jmp 0x18007f1b7
mov r8d, 0x79
lea r9d, [r8 - 0x78]
nop
mov eax, r8d
sub eax, 0x77
je case.0x18007ec77.53
sub eax, r9d
je 0x18007f187
cmp eax, r9d
jne 0x18007f18c
lea rdx, [rbp + 8]
mov rcx, r15
sub rcx, rdx
lea rax, [rbp + 8]
lea rdx, [rcx + 0xb0]
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rax + rdx], cl
lea rax, [rax + 1]
test cl, cl
jne 0x18007f150
mov rcx, qword [rbx + rdi*8 + 0xcadc70]
lea rdx, [r15 + 0xb4]
nop dword [rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18007f170
add dword [r14], 3
jmp 0x18007f18c
mov word [rbp - 0x70], r9w
dec r8d
cmp r8d, 0x76
ja 0x18007f120
jmp 0x18007f1b7
cmp qword [r12], 0
je 0x18007f51b
mov esi, r8d
mov dword [rsp + 0x70], r8d
mov rdi, r8
movzx r13d, r9w
jmp 0x18007f1b7
add r12, 8
mov eax, dword [rsp + 0x58]
mov r8d, 0
add eax, 9
mov dword [rsp + 0x58], eax
lea r9d, [r8 + 1]
cmp eax, 0xc8
jb 0x18007ef60
jmp 0x18007f426
movsxd rdi, dword [rsp + 0x60]
lea rdx, str.default:require:width
lea rcx, [r12 + rdi]
call fcn.180088fc0
add edi, eax
mov qword [rsp + 0x68], 4
mov rax, qword [r15]
mov r9, r14
movsxd rcx, edi
mov r8d, 0xeb
sub rax, rcx
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
lea rdx, [rcx + r12]
lea rcx, [rsp + 0x68]
call fcn.1800449d0
add edi, eax
cmp byte [rbx], 0
mov dword [rsp + 0x60], edi
je 0x18007f41f
movzx ebx, byte [r14 + 4]
lea rdx, str.var_bwbu.scope_info_
movsxd rcx, edi
shr ebx, 1
add rcx, r12
and ebx, 0xf
call fcn.180088fc0
add edi, eax
movsxd rcx, edi
add rcx, r12
cmp ebx, 0xf
jne 0x18007f26f
lea rdx, str.DXQueryEnd
call fcn.180088fc0
jmp 0x18007f27e
mov r8d, ebx
lea rdx, [0x1800a3f14]
call fcn.180088fc0
add edi, eax
cmp byte [r14 + 4], 0
mov dword [rsp + 0x60], edi
jge 0x18007f41f
cmp byte [r14 + 5], 0
jge 0x18007f41f
movsxd rcx, edi
lea rdx, str.PCS_NAD27_North_Dakota_S
add rcx, r12
call fcn.180088fc0
add edi, eax
mov dword [rsp + 0x60], edi
jmp 0x18007f41f
movzx r13d, r9w
jmp case.0x18007ec77.43
xor edx, edx
mov r9, rbx
mov rcx, rsi
lea r8d, [rdx + 0x10]
call fcn.180052b10
cmp r15, r12
jb 0x18007f41f
nop word [rax + rax]
cmp rsi, rbx
jb 0x18007f41f
mov edx, dword [r15]
mov r8d, 0x44
mov ecx, dword [rsi]
mov eax, edx
xor eax, ecx
cmp eax, 0x1000000
jae 0x18007f3ca
xor eax, eax
mov r9, r15
mov qword [rsp + 0x28], rax
mov rdx, r12
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov rbx, r15
call fcn.180047ea0
mov r9, qword [rbp - 0x60]
mov rdi, rax
mov rdx, qword [rbp - 0x68]
xor eax, eax
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x44]
call fcn.180047ea0
mov r8, qword [rbp - 0x48]
lea r15, [rdi - 4]
mov qword [rsp + 0x48], rbx
mov r9, rdi
mov qword [rsp + 0x40], rax
mov rdx, rsi
lea rcx, [rax - 4]
mov dword [rsp + 0x38], 0x32
mov qword [rbp - 0x60], rcx
lea rax, [rsp + 0x68]
mov qword [rbp - 0x50], rcx
mov rcx, qword [rbp - 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x58], r15
mov ecx, dword [rcx]
mov dword [rsp + 0x68], ecx
mov rcx, qword [rbp - 0x78]
mov qword [rsp + 0x20], rax
mov ecx, dword [rcx]
mov dword [rbp - 0x80], ecx
mov rcx, qword [rbp - 0x38]
mov ecx, dword [rcx]
mov dword [rsp + 0x78], ecx
mov ecx, dword [r14]
mov dword [rsp + 0x58], ecx
lea rcx, [rsp + 0x58]
call fcn.18007ebb0
mov rsi, qword [rbp - 0x60]
mov rbx, qword [rbp - 0x68]
mov qword [rbp - 0x48], rax
jmp 0x18007f416
cmp edx, ecx
jbe 0x18007f3f1
xor edi, edi
mov r9, r15
mov qword [rsp + 0x28], rdi
mov rdx, r12
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.180047ea0
lea r15, [rax - 4]
mov qword [rbp - 0x58], r15
jmp 0x18007f416
xor eax, eax
mov r9, rsi
mov qword [rsp + 0x28], rax
mov rdx, rbx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.180047ea0
lea rsi, [rax - 4]
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x50], rsi
cmp r15, r12
jae 0x18007f2e0
xor r8d, r8d
lea r9d, [r8 + 1]
mov rdx, qword [rbp - 0x78]
lea r11, [0x1800a0eb0]
lea r10, [0x180000000]
mov ecx, dword [rsp + 0x50]
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xd8], eax
cmp eax, ecx
jae case.0x18007ec77.53
mov rdi, qword [rbp - 0x48]
mov rsi, qword [rbp - 0x60]
mov rbx, qword [rbp - 0x68]
jmp 0x18007ec60
cmp rbx, rsi
ja 0x18007f505
nop dword [rax]
mov eax, dword [rbx]
lea r9, [rsp + 0x68]
and eax, 0x870804
xor r8d, r8d
mov edx, 0xde
mov dword [rsp + 0x68], eax
xor ecx, ecx
call fcn.1800301f0
mov rcx, qword [rbp - 0x40]
mov edx, dword [rcx]
mov ecx, dword [rbx]
shr edx, 2
add ecx, ecx
and edx, 1
xor edx, ecx
xor edx, eax
mov dword [rbx], edx
mov rbx, r12
cmp r12, r15
ja 0x18007f4f0
mov r14, qword [rbp - 0x68]
mov eax, dword [rbx]
lea r9, [rsp + 0x70]
mov dword [rdi + 4], eax
xor r8d, r8d
mov eax, dword [rbx]
mov edx, 0xde
and eax, 0x29ce5c
xor ecx, ecx
mov dword [rsp + 0x70], eax
call fcn.1800301f0
mov ecx, dword [r14]
add rbx, 4
xor ecx, eax
xor eax, eax
mov dword [rdi + 0xc], eax
mov dword [rdi], ecx
add rdi, 8
mov dword [rdi], eax
cmp rbx, r15
jbe 0x18007f4b1
mov rbx, qword [rbp - 0x68]
add rbx, 4
mov qword [rbp - 0x68], rbx
cmp rbx, rsi
jbe 0x18007f470
mov rax, rdi
jmp 0x18007f524
mov r9d, 1
mov word [rbp - 0x70], r9w
jmp case.0x18007ec77.53
add dword [r14], 2
mov word [rbp - 0x70], r8w
mov rax, qword [rbp - 0x70]
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.180089600
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret