Function at 0x140047650
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x310]
sub rsp, 0x410
mov rax, qword [0x140091088]
xor rax, rsp
mov qword [rbp + 0x300], rax
mov rdi, rcx
mov qword [rsp + 0x48], rcx
xor esi, esi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
lea rdx, [rsp + 0x30]
lea ecx, [rsi + 0x73]
call fcn.140046d10
lea rdx, [rsp + 0x30]
lea ecx, [rsi + 0x74]
call fcn.140046d10
mov r8d, 0x104
lea rdx, [rbp + 0x1f0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea r8, str..vmoptions
mov edx, 0x104
lea rcx, [rbp + 0x1f0]
call fcn.14005ccf8
mov r9d, 0x104
lea r8, [rbp - 0x30]
lea edx, [rsi + 0x71]
mov rcx, qword [0x140095900]
call qword [sym.imp.USER32.dll_LoadStringA]
mov r8d, 0x104
lea rdx, [rbp + 0xe0]
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
lea r14, [rsi - 1]
test eax, eax
je 0x140047754
mov r8, rdi
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0xe0]
call fcn.140046300
test al, al
je 0x140047754
lea r12, [rbp + 0xe0]
mov r13, qword [rsp + 0x58]
jmp 0x140047ab9
mov r8, rdi
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x1f0]
call fcn.140046300
lea rbx, [rbp + 0x1f0]
test al, al
cmove rbx, rsi
lea r8, [rbp + 0x1f0]
mov edx, 0x104
lea rcx, [rbp - 0x30]
call fcn.14005cc00
mov edx, 0x5c
lea rcx, [rbp - 0x30]
call fcn.1400547ec
sub rax, 4
lea rdx, [rbp + 0xd4]
sub rdx, rax
lea r8, str..vmoptions
mov rcx, rax
call fcn.14005cc00
mov r8, rdi
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x30]
call fcn.140046300
test al, al
je 0x1400477d0
lea r12, [rbp - 0x30]
jmp 0x140047849
mov r9d, 0x104
lea r8, [rbp - 0x30]
mov edx, 0x69
mov rcx, qword [0x140095900]
call qword [sym.imp.USER32.dll_LoadStringA]
mov r8d, 0x104
lea rdx, [rbp + 0xe0]
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov edx, 0x5c
lea rcx, [rbp + 0x1f0]
call fcn.1400547ec
mov r8, rax
mov edx, 0x104
lea rcx, [rbp + 0xe0]
call fcn.14005ccf8
mov r8, rdi
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0xe0]
call fcn.140046300
lea r12, [rbp + 0xe0]
test al, al
cmove r12, rbx
mov r15, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
cmp r15, r13
je 0x140047ab0
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x30], rax
je 0x140047a99
mov rbx, r15
nop
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14004787d
mov rcx, qword [rbx]
mov r8d, 8
lea rdx, str._XX:Use
call fcn.14005cc70
test eax, eax
jne 0x1400478b8
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1400478a0
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp byte [rax + rcx - 2], 0x47
jne 0x1400478b8
cmp byte [rax + rcx - 1], 0x43
jne 0x1400478b8
cmp byte [rax + rcx], 0
je 0x1400478c7
add rbx, 0x20
cmp rbx, r13
je 0x140047a99
jmp 0x140047870
cmp rbx, r13
je 0x140047a99
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
cmp rdi, rbx
je 0x140047a94
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1400478f0
mov rcx, qword [rdi]
mov r8d, 8
lea rdx, str._XX:Use
call fcn.14005cc70
test eax, eax
jne 0x14004792b
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140047913
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
cmp byte [rax + rcx - 2], 0x47
jne 0x14004792b
cmp byte [rax + rcx - 1], 0x43
jne 0x14004792b
cmp byte [rax + rcx], 0
je 0x140047934
add rdi, 0x20
cmp rdi, rbx
jne 0x1400478e3
cmp rdi, rbx
je 0x140047a94
lea rsi, [rdi + 0x20]
cmp rsi, rbx
je 0x140047a19
nop word [rax + rax]
mov rcx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14004795d
mov rcx, qword [rsi]
mov r8d, 8
lea rdx, str._XX:Use
call fcn.14005cc70
test eax, eax
jne 0x140047998
mov rcx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140047980
mov rcx, qword [rsi]
mov rax, qword [rsi + 0x10]
cmp byte [rax + rcx - 2], 0x47
jne 0x140047998
cmp byte [rax + rcx - 1], 0x43
jne 0x140047998
cmp byte [rax + rcx], 0
je 0x140047a07
cmp rdi, rsi
je 0x140047a03
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x1400479d7
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x1400479d2
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047fec
mov rcx, r8
call fcn.1400528a0
xor eax, eax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0xf
mov byte [rdi], al
movups xmm0, xmmword [rsi]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], 0xf
mov byte [rsi], al
add rdi, 0x20
add rsi, 0x20
cmp rsi, rbx
jne 0x140047950
cmp rdi, rbx
je 0x140047a94
mov r8, rdi
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14004f740
mov rsi, rax
mov rdi, qword [rsp + 0x38]
mov rbx, rax
cmp rax, rdi
je 0x140047a8f
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140047a73
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140047a6e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047fec
mov rcx, r8
call fcn.1400528a0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rdi
jmp 0x140047a37
mov qword [rsp + 0x38], rsi
mov rdi, qword [rsp + 0x48]
mov r9, r13
mov r8, r15
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x30]
call fcn.140050b00
xor esi, esi
test r12, r12
je 0x140047bfd
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
mov ecx, 0x20
call fcn.1400528a8
mov qword [rsp + 0x78], 0x13
mov qword [rbp - 0x80], 0x1f
movups xmm0, xmmword [str._Djb.vmOptionsFile]
movups xmmword [rax], xmm0
movzx ecx, word [0x140087ec8]
mov word [rax + 0x10], cx
movzx ecx, byte [0x140087eca]
mov byte [rax + 0x12], cl
mov byte [rax + 0x13], 0
mov qword [rsp + 0x68], rax
mov r8, r14
inc r8
cmp byte [r12 + r8], 0
jne 0x140047b16
mov rdx, r12
lea rcx, [rsp + 0x68]
call fcn.14004ebb0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rsp + 0x38]
cmp rdx, qword [rsp + 0x40]
je 0x140047b6f
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
mov edx, 0xf
mov byte [rbp - 0x70], 0
add qword [rsp + 0x38], 0x20
jmp 0x140047b81
lea r8, [rbp - 0x70]
lea rcx, [rsp + 0x30]
call fcn.14004f800
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x140047bb9
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047bb3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ff2
call fcn.1400528a0
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x140047caa
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047ca5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047fe6
jmp 0x140047ca5
mov qword [rsp + 0x48], rsi
xor r9d, r9d
lea r8, [rsp + 0x48]
lea edx, [r9 + 0x72]
mov rcx, qword [0x140095900]
call qword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x140047caa
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 7
movsxd r8, eax
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x68]
call fcn.14004e680
lea r8, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae r8, qword [rsp + 0x68]
xor r9d, r9d
lea rdx, str.Cannot_find_VM_options_file
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x140047caa
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047ca5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ff8
call fcn.1400528a0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.1400468b0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140046ae0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140046ec0
mov r9, qword [0x140095938]
test r9, r9
je 0x140047da7
lea r8, str._Djcef.sandbox.ptr_p
mov edx, 0x40
lea rcx, [rbp - 0x70]
call fcn.140043fd0
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
lea rax, [rbp - 0x70]
inc r14
cmp byte [rax + r14], 0
jne 0x140047d11
mov r8, r14
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x68]
call fcn.14004ea50
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, qword [rsp + 0x40]
je 0x140047d5c
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0x78]
movups xmmword [rdx + 0x10], xmm1
mov edx, 0xf
mov byte [rsp + 0x68], 0
add qword [rsp + 0x38], 0x20
jmp 0x140047d6f
lea r8, [rsp + 0x68]
lea rcx, [rsp + 0x30]
call fcn.14004f800
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x140047da7
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047da2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ffe
call fcn.1400528a0
mov rax, qword [rsp + 0x38]
sub rax, qword [rsp + 0x30]
sar rax, 5
inc eax
mov dword [0x14009591c], eax
movsxd rcx, eax
mov r15d, 0x10
mov edx, r15d
call fcn.140057bb8
mov r14, rax
mov qword [0x140095920], rax
lea rax, str.exit
mov qword [r14], rax
lea rax, [0x140047640]
mov qword [r14 + 8], rax
mov r12d, esi
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
sub rcx, rbx
sar rcx, 5
test rcx, rcx
je 0x140047e60
nop dword [rax]
lea rcx, [rsi + rbx]
cmp qword [rcx + 0x18], 0x10
jb 0x140047e1e
mov rcx, qword [rcx]
call fcn.140058dd8
mov qword [r15 + r14], rax
mov qword [r15 + r14 + 8], 0
inc r12d
add r15, 0x10
add rsi, 0x20
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
sub rcx, rbx
sar rcx, 5
movsxd rax, r12d
cmp rax, rcx
jae 0x140047e60
mov r14, qword [0x140095920]
jmp 0x140047e10
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x140047f0f
mov rbx, rsi
cmp rsi, r13
je 0x140047ecc
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140047eb0
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140047eab
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140048004
mov rcx, r8
call fcn.1400528a0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, r13
jne 0x140047e76
mov rdx, qword [rsp + 0x60]
sub rdx, rsi
and rdx, 0xffffffffffffffe0
mov rax, rsi
cmp rdx, 0x1000
jb 0x140047efd
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140048004
mov rcx, rsi
call fcn.1400528a0
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x140047fb0
cmp rbx, rdi
je 0x140047f7b
nop dword [rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140047f5a
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x140047f55
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047fe0
mov rcx, r8
call fcn.1400528a0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rdi
jne 0x140047f20
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140047fa8
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047fe0
mov rcx, rbx
call fcn.1400528a0
mov rcx, qword [rbp + 0x300]
xor rcx, rsp
call fcn.140052880
lea r11, [rsp + 0x410]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14005cf9c
nop
call fcn.14005cf9c
nop
call fcn.14005cf9c
nop
call fcn.14005cf9c
nop
call fcn.14005cf9c
int3
call fcn.14005cf9c
nop
call fcn.14005cf9c
int3