Function at 0x140047520
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.140046be0
lea rdx, [rsp + 0x30]
lea ecx, [rsi + 0x74]
call fcn.140046be0
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.14005cc78
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 0x140047621
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0xe0]
call fcn.1400461d0
test al, al
je 0x140047621
lea r12, [rbp + 0xe0]
mov r13, qword [rsp + 0x58]
jmp 0x140047979
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x1f0]
call fcn.1400461d0
lea rbx, [rbp + 0x1f0]
test al, al
cmove rbx, rsi
lea r8, [rbp + 0x1f0]
mov edx, 0x104
lea rcx, [rbp - 0x30]
call fcn.14005cb80
mov edx, 0x5c
lea rcx, [rbp - 0x30]
call fcn.14005476c
sub rax, 4
lea rdx, [rbp + 0xd4]
sub rdx, rax
lea r8, str..vmoptions
mov rcx, rax
call fcn.14005cb80
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x30]
call fcn.1400461d0
test al, al
je 0x140047697
lea r12, [rbp - 0x30]
jmp 0x14004770d
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.14005476c
mov r8, rax
mov edx, 0x104
lea rcx, [rbp + 0xe0]
call fcn.14005cc78
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0xe0]
call fcn.1400461d0
lea r12, [rbp + 0xe0]
test al, al
cmove r12, rbx
mov r15, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
cmp r15, r13
je 0x140047970
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x30], rax
je 0x140047959
mov rbx, r15
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140047740
mov rcx, qword [rbx]
mov r8d, 8
lea rdx, str._XX:Use
call fcn.14005cbf0
test eax, eax
jne 0x14004777b
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140047763
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp byte [rax + rcx - 2], 0x47
jne 0x14004777b
cmp byte [rax + rcx - 1], 0x43
jne 0x14004777b
cmp byte [rax + rcx], 0
je 0x14004778a
add rbx, 0x20
cmp rbx, r13
je 0x140047959
jmp 0x140047733
cmp rbx, r13
je 0x140047959
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
cmp rdi, rbx
je 0x140047954
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1400477b3
mov rcx, qword [rdi]
mov r8d, 8
lea rdx, str._XX:Use
call fcn.14005cbf0
test eax, eax
jne 0x1400477ee
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1400477d6
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
cmp byte [rax + rcx - 2], 0x47
jne 0x1400477ee
cmp byte [rax + rcx - 1], 0x43
jne 0x1400477ee
cmp byte [rax + rcx], 0
je 0x1400477f7
add rdi, 0x20
cmp rdi, rbx
jne 0x1400477a6
cmp rdi, rbx
je 0x140047954
lea rsi, [rdi + 0x20]
cmp rsi, rbx
je 0x1400478d9
nop dword [rax]
mov rcx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14004781d
mov rcx, qword [rsi]
mov r8d, 8
lea rdx, str._XX:Use
call fcn.14005cbf0
test eax, eax
jne 0x140047858
mov rcx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140047840
mov rcx, qword [rsi]
mov rax, qword [rsi + 0x10]
cmp byte [rax + rcx - 2], 0x47
jne 0x140047858
cmp byte [rax + rcx - 1], 0x43
jne 0x140047858
cmp byte [rax + rcx], 0
je 0x1400478c7
cmp rdi, rsi
je 0x1400478c3
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x140047897
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x140047892
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047eac
mov rcx, r8
call fcn.140052820
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 0x140047810
cmp rdi, rbx
je 0x140047954
mov r8, rdi
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14004f6c0
mov rsi, rax
mov rdi, qword [rsp + 0x38]
mov rbx, rax
cmp rax, rdi
je 0x14004794f
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140047933
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x14004792e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047eac
mov rcx, r8
call fcn.140052820
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rdi
jmp 0x1400478f7
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.140050a80
xor esi, esi
test r12, r12
je 0x140047abd
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.140052828
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 0x1400479d6
mov rdx, r12
lea rcx, [rsp + 0x68]
call fcn.14004eb30
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 0x140047a2f
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
mov edx, 0xf
mov byte [rbp - 0x70], 0
add qword [rsp + 0x38], 0x20
jmp 0x140047a41
lea r8, [rbp - 0x70]
lea rcx, [rsp + 0x30]
call fcn.14004f780
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x140047a79
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047a73
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047eb2
call fcn.140052820
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x140047b6a
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047b65
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ea6
jmp 0x140047b65
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 0x140047b6a
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.14004e600
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 0x140047b6a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047b65
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047eb8
call fcn.140052820
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140046780
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.1400469b0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140046d90
mov r9, qword [0x140095938]
test r9, r9
je 0x140047c67
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 0x140047bd1
mov r8, r14
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x68]
call fcn.14004e9d0
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, qword [rsp + 0x40]
je 0x140047c1c
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 0x140047c2f
lea r8, [rsp + 0x68]
lea rcx, [rsp + 0x30]
call fcn.14004f780
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x140047c67
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047c62
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ebe
call fcn.140052820
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.140057b38
mov r14, rax
mov qword [0x140095920], rax
lea rax, str.exit
mov qword [r14], rax
lea rax, [0x140047510]
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 0x140047d20
nop dword [rax]
lea rcx, [rsi + rbx]
cmp qword [rcx + 0x18], 0x10
jb 0x140047cde
mov rcx, qword [rcx]
call fcn.140058d58
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 0x140047d20
mov r14, qword [0x140095920]
jmp 0x140047cd0
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x140047dcf
mov rbx, rsi
cmp rsi, r13
je 0x140047d8c
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140047d70
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140047d6b
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047ec4
mov rcx, r8
call fcn.140052820
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, r13
jne 0x140047d36
mov rdx, qword [rsp + 0x60]
sub rdx, rsi
and rdx, 0xffffffffffffffe0
mov rax, rsi
cmp rdx, 0x1000
jb 0x140047dbd
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ec4
mov rcx, rsi
call fcn.140052820
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x140047e70
cmp rbx, rdi
je 0x140047e3b
nop dword [rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140047e1a
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x140047e15
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140047ea0
mov rcx, r8
call fcn.140052820
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rdi
jne 0x140047de0
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140047e68
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047ea0
mov rcx, rbx
call fcn.140052820
mov rcx, qword [rbp + 0x300]
xor rcx, rsp
call fcn.140052800
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.14005cf1c
nop
call fcn.14005cf1c
nop
call fcn.14005cf1c
nop
call fcn.14005cf1c
nop
call fcn.14005cf1c
int3
call fcn.14005cf1c
nop
call fcn.14005cf1c
int3