Function at 0x180013030
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x498
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x410], 0xfffffffffffffffe
mov qword [rbp + 0x3c8], rcx
mov rcx, qword [0x18003bb58]
test rcx, rcx
jne 0x180013081
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x180013611
mov rcx, rax
mov qword [0x18003bb58], rax
mov r8d, 0xa
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x180013611
mov word [rax], 0x52
mov qword [rbp + 0x3f0], rax
movaps xmm0, xmmword [0x1800284d0]
movups xmmword [rbp + 0x3f8], xmm0
lea r12, [0x18002dde1]
mov edi, 1
xor r14d, r14d
lea rsi, [0x18002ddee]
lea r15, str.RUST_BACKTRACEalready_borrowed
lea r13, [rbp + 0x3f0]
xor ebx, ebx
jmp 0x1800130fb
mov rax, qword [rbp + 0x3f0]
mov ecx, r14d
mov word [rax + rdi*2], bx
add rdi, 1
mov qword [rbp + 0x400], rdi
mov ebx, ecx
test bx, bx
je 0x180013120
xor r14d, r14d
xor ecx, ecx
cmp rdi, qword [rbp + 0x3f8]
jne 0x1800130ea
jmp 0x180013210
cmp r12, rsi
je 0x18001324a
movzx edx, byte [r12]
movzx ebx, dl
test bl, bl
js 0x180013149
add r12, 1
xor ecx, ecx
cmp rdi, qword [rbp + 0x3f8]
jne 0x1800130ea
jmp 0x180013210
mov r8, rsi
mov ecx, ebx
and ecx, 0x1f
movzx esi, byte [r12 + 1]
and esi, 0x3f
cmp bl, 0xdf
jbe 0x18001319b
movzx ebx, byte [r12 + 2]
shl esi, 6
and ebx, 0x3f
or ebx, esi
cmp dl, 0xf0
jb 0x1800131c2
movzx edx, byte [r12 + 3]
add r12, 4
and ecx, 7
shl ecx, 0x12
shl ebx, 6
and edx, 0x3f
or edx, ebx
or edx, ecx
mov ebx, edx
mov rsi, r8
cmp ebx, 0xffff
jbe 0x1800131b1
jmp 0x1800131d6
add r12, 2
shl ecx, 6
or ecx, esi
mov ebx, ecx
mov rsi, r8
cmp ebx, 0xffff
ja 0x1800131d6
xor ecx, ecx
cmp rdi, qword [rbp + 0x3f8]
jne 0x1800130ea
jmp 0x180013210
add r12, 3
shl ecx, 0xc
or ebx, ecx
mov rsi, r8
cmp ebx, 0xffff
jbe 0x1800131b1
add ebx, 0xffff0000
mov edx, ebx
shr edx, 0xa
or edx, 0xd800
and ebx, 0x3ff
or ebx, 0xdc00
mov r14d, ebx
mov ecx, ebx
mov ebx, edx
cmp rdi, qword [rbp + 0x3f8]
jne 0x1800130ea
nop word [rax + rax]
mov r8, r15
sub r8, r12
add r8, 0xe
add r8, 3
mov rax, 0xffffffffffffffff
cmovb r8, rax
shr r8, 2
cmp r14w, 1
sbb r8, 0
add r8, 2
mov rcx, r13
mov rdx, rdi
call fcn.180026ac0
jmp 0x1800130e0
mov rdx, qword [rbp + 0x400]
mov qword [rbp + 0x3e0], rdx
movups xmm0, xmmword [rbp + 0x3f0]
movaps xmmword [rbp + 0x3d0], xmm0
mov r8, qword [rbp + 0x3d0]
mov rcx, r8
mov rax, rdx
cmp rdx, 8
jb 0x1800132c4
mov rax, rdx
mov rcx, r8
cmp word [rcx], 0
je 0x1800132e7
cmp word [rcx + 2], 0
je 0x1800132e7
cmp word [rcx + 4], 0
je 0x1800132e7
cmp word [rcx + 6], 0
je 0x1800132e7
cmp word [rcx + 8], 0
je 0x1800132e7
cmp word [rcx + 0xa], 0
je 0x1800132e7
cmp word [rcx + 0xc], 0
je 0x1800132e7
cmp word [rcx + 0xe], 0
je 0x1800132e7
add rcx, 0x10
add rax, 0xfffffffffffffff8
cmp rax, 7
ja 0x18001327f
add rax, rax
nop word [rax + rax]
test rax, rax
je 0x18001337a
add rax, 0xfffffffffffffffe
cmp word [rcx], 0
lea rcx, [rcx + 2]
jne 0x1800132d0
lea rax, [0x18002ef30]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x58], 0x1402
mov qword [rbp - 0x60], 1
mov rax, qword [rbp + 0x3d8]
test rax, rax
je 0x18001334f
test r8, r8
je 0x18001334f
movabs rcx, 0x7fffffffffffffff
and rax, rcx
je 0x18001334f
mov rcx, qword [0x18003bb58]
xor edx, edx
call fcn.180018e4d
cmp dword [rbp - 0x60], 1
lea rcx, [rbp - 0x58]
je 0x180013353
mov rax, qword [rcx]
mov qword [rbp + 0x3c0], rax
test rax, rax
jne 0x1800133d2
jmp 0x180013358
lea rcx, [rbp - 0x58]
call fcn.180011b00
mov rax, qword [rbp + 0x3c8]
mov qword [rax], 0
add rsp, 0x498
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp rdx, qword [rbp + 0x3d8]
jne 0x18001339d
lea rcx, [rbp + 0x3d0]
call fcn.180013860
mov r8, qword [rbp + 0x3d0]
mov rdx, qword [rbp + 0x3e0]
mov word [r8 + rdx*2], 0
add rdx, 1
lea rcx, [rbp - 0x58]
mov qword [rbp - 0x48], rdx
movaps xmm0, xmmword [rbp + 0x3d0]
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x60], 0
mov rax, qword [rcx]
mov qword [rbp + 0x3c0], rax
test rax, rax
je 0x180013358
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0x3b8], rax
xor ebx, ebx
lea rcx, [rbp - 0x60]
mov r8d, 0x400
xor edx, edx
call fcn.18001ad80
mov r13, qword [0x18002e1c8]
mov qword [rbp + 0x3a0], r13
xorps xmm0, xmm0
movups xmmword [rbp + 0x3a8], xmm0
mov esi, 0x200
cmp rsi, 0x201
jae 0x180013435
jmp 0x180013480
cmp rsi, r15
mov rsi, r15
ja 0x1800134e5
cmp rsi, 0x201
jb 0x180013480
mov r8, rsi
sub r8, rbx
mov rax, qword [rbp + 0x3a8]
sub rax, rbx
cmp rax, r8
jae 0x180013460
lea rcx, [rbp + 0x3a0]
mov rdx, rbx
call fcn.180026ac0
mov r13, qword [rbp + 0x3a0]
mov qword [rbp + 0x3b0], rsi
mov rbx, rsi
mov r12, r13
mov r14, rsi
mov rdi, r13
jmp 0x18001348d
lea rdi, [rbp - 0x60]
mov r12, rdi
mov r14d, 0x200
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rbp + 0x3c0]
mov rdx, rdi
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edi, eax
test eax, eax
jne 0x1800134b8
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x180013537
mov r15d, edi
cmp rsi, r15
jne 0x180013420
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x180013420
add rsi, rsi
cmp rsi, 0x201
jae 0x180013435
jmp 0x180013480
cmp r14, r15
jb 0x180013622
lea rcx, [rbp + 0x3d0]
mov rdx, r12
mov r8, r15
call fcn.180011be0
mov rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x408], rax
movups xmm0, xmmword [rbp + 0x3d0]
movups xmmword [rbp + 0x3f8], xmm0
mov qword [rbp + 0x3f0], 0
xor esi, esi
mov rax, qword [rbp + 0x3a8]
test rax, rax
jne 0x18001356d
jmp 0x180013592
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
mov qword [rbp + 0x3f8], rax
mov qword [rbp + 0x400], 0
mov qword [rbp + 0x3f0], 1
mov sil, 1
mov rax, qword [rbp + 0x3a8]
test rax, rax
je 0x180013592
test r13, r13
je 0x180013592
movabs rcx, 0x7fffffffffffffff
and rax, rcx
je 0x180013592
mov rcx, qword [0x18003bb58]
xor edx, edx
mov r8, r13
call fcn.180018e4d
test sil, sil
je 0x1800135c7
mov rax, qword [rbp + 0x3c8]
mov qword [rax], 0
lea rcx, [rbp + 0x3f8]
call fcn.180011b00
mov rax, qword [rbp + 0x3b8]
shl rax, 1
test rax, rax
je 0x180013366
jmp 0x1800135f7
mov rax, qword [rbp + 0x408]
mov rcx, qword [rbp + 0x3c8]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rbp + 0x3f8]
movups xmmword [rcx], xmm0
mov rax, qword [rbp + 0x3b8]
shl rax, 1
test rax, rax
je 0x180013366
mov rcx, qword [0x18003bb58]
xor edx, edx
mov r8, qword [rbp + 0x3c0]
call fcn.180018e4d
jmp 0x180013366
mov ecx, 0xa
mov edx, 2
call fcn.180026270
ud2
lea r8, str.C:yhhwewfggnypmdcgdpcolyulgyestidcugmgbjzkjaeuvnfnggwqpwcenovdwkbkddpkevpmoizaacgkymrrdslzrkmsfbvjgjmwkbffdovtbupocnkztffnwoiiahstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r15
mov rdx, r14
call fcn.1800263c0
ud2