Function at 0x140280400
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov dword [rsp + 0x5c], ecx
mov al, byte [0x1405df5e8]
test al, al
je 0x140280fe0
movabs rbp, 0x8642b0fe3e86671b
movsxd rax, dword [rsp + 0x5c]
mov rcx, rax
imul rcx, rbp
bswap rcx
or ecx, 0x80000000
mov rdx, qword [0x1405df5a8]
and ecx, dword [0x1405df5b8]
mov ecx, dword [rdx + rcx*4]
test ecx, ecx
js 0x140280498
mov rbp, qword [0x1405df5c0]
mov rbx, qword [0x1405df5b0]
mov r15d, ecx
nop dword [rax]
movsxd rdx, r15d
cmp dword [rbp + rdx*4], eax
je 0x1402804a0
lea rdx, [rdx + rdx*2]
mov r15d, dword [rbx + rdx*4]
cmp r15d, ecx
jne 0x140280470
mov r15d, 0xffffffff
movabs rbp, 0x8642b0fe3e86671b
jmp 0x1402804b3
mov r15d, 0xffffffff
jmp 0x1402804b3
test r15d, r15d
movabs rbp, 0x8642b0fe3e86671b
jns 0x140280fc1
cmp byte [0x1405df59e], 0
je 0x1402804cf
lea rdx, [0x1405df590]
lea rcx, [rsp + 0x40]
call fcn.14030aaa0
jmp 0x1402804db
movaps xmm0, xmmword [0x1405df590]
movaps xmmword [rsp + 0x40], xmm0
lea rdx, [0x1403d5378]
lea rcx, [rsp + 0x108]
call fcn.140264760
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x108]
call fcn.140280270
cmp byte [rsp + 0x116], 0
je 0x140280518
lea rcx, [rsp + 0x108]
call fcn.14030abf0
lea rdx, [0x1403d5378]
lea rcx, [rsp + 0xf8]
call fcn.140265790
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0xf8]
call fcn.140280270
cmp byte [rsp + 0x106], 0
je 0x140280555
lea rcx, [rsp + 0xf8]
call fcn.14030abf0
cmp byte [0x1405df59e], 0
lea rdx, [0x1405df590]
cmovne rdx, qword [0x1405df590]
movsx r8d, byte [0x1405df59f]
cmovne r8d, dword [0x1405df598]
lea rcx, [rsp + 0x40]
call fcn.14030ec10
movsx rax, byte [rsp + 0x4f]
cmp rax, 0xd
jg 0x14028059f
lea ecx, [rax + 1]
mov byte [rsp + 0x4f], cl
mov byte [rsp + rax + 0x40], 0x3b
jmp 0x1402805ae
lea rcx, [rsp + 0x40]
mov edx, 0x3b
call fcn.14030b2c0
lea rcx, [0x1403d5380]
call sub.msvcrt.dll_getenv
mov rsi, rax
test rax, rax
je 0x1402805cf
mov rcx, rsi
call sub.msvcrt.dll_strlen
mov r8, rax
jmp 0x1402805d2
xor r8d, r8d
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.14030ec10
movsx rax, byte [rsp + 0x4f]
cmp rax, 0xd
jg 0x1402805f9
lea ecx, [rax + 1]
mov byte [rsp + 0x4f], cl
mov byte [rsp + rax + 0x40], 0x3b
jmp 0x140280608
lea rcx, [rsp + 0x40]
mov edx, 0x3b
call fcn.14030b2c0
lea rcx, str.PATH
call sub.msvcrt.dll_getenv
mov rdi, rax
test rax, rax
je 0x140280629
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov r8, rax
jmp 0x14028062c
xor r8d, r8d
lea rsi, [rsp + 0x40]
mov rcx, rsi
mov rdx, rdi
call fcn.14030ec10
movsx rax, byte [rsp + 0x4f]
cmp rax, 0xd
jg 0x140280656
lea ecx, [rax + 1]
mov byte [rsp + 0x4f], cl
mov byte [rsp + rax + 0x40], 0x3b
jmp 0x140280665
lea rcx, [rsp + 0x40]
mov edx, 0x3b
call fcn.14030b2c0
mov edx, dword [rsp + 0x5c]
lea rcx, [rsp + 0x30]
call fcn.140281210
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x30]
xor r8d, r8d
call fcn.14031c200
movaps xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x70], xmm0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x120], xmm0
lea rdx, str..udc
lea rbx, [rsp + 0x70]
mov rcx, rbx
mov r8d, 4
call fcn.14030ec10
cmp byte [rsp + 0x7e], 0
je 0x1402806c6
mov rbx, qword [rsp + 0x70]
cmp byte [rsp + 0x4e], 0
je 0x1402806d2
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x20], 0
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov rdx, rbx
mov r8, rsi
mov r9b, 1
call fcn.14025e710
cmp byte [rsp + 0x7e], 0
je 0x140280702
lea rcx, [rsp + 0x70]
call fcn.14030abf0
cmp byte [rsp + 0x12e], 0
je 0x140280719
lea rcx, [rsp + 0x120]
call fcn.14030abf0
cmp byte [rsp + 0x3e], 0
je 0x14028072a
lea rcx, [rsp + 0x30]
call fcn.14030abf0
mov al, byte [rsp + 0x6e]
test al, al
je 0x140280b3a
mov ecx, dword [rsp + 0x68]
test ecx, ecx
je 0x140280b47
test al, al
je 0x14028074b
mov rdi, qword [rsp + 0x60]
mov dword [rsp + 0xa4], 0
and byte [rsp + 0xa0], 0xc0
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xd0], 0xffffffffffffffff
lea rbx, [0x1403ac210]
mov qword [rsp + 0x70], rbx
lea rcx, [rsp + 0x70]
mov rdx, rdi
xor r8d, r8d
call fcn.1402706a0
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call qword [rax + 0x50]
mov esi, 1
test al, al
je 0x140280f89
mov r15d, dword [0x1405df5e0]
lea rcx, [0x1405df5a8]
lea rdx, [rsp + 0x5c]
call fcn.14016d2f0
lea rcx, [0x1405df5d0]
call fcn.1402fb500
mov rdi, rax
mov edx, dword [rsp + 0x5c]
lea rsi, [rsp + 0x30]
mov rcx, rsi
call fcn.140281340
cmp byte [rsp + 0x3e], 0
je 0x140280800
mov rsi, qword [rsp + 0x30]
mov dword [rsp + 0x154], 0
and byte [rsp + 0x150], 0xc0
xorps xmm0, xmm0
movups xmmword [rsp + 0x128], xmm0
movups xmmword [rsp + 0x138], xmm0
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x180], 0xffffffffffffffff
mov qword [rsp + 0x120], rbx
lea rcx, [rsp + 0x120]
mov rdx, rsi
xor r8d, r8d
call fcn.1402706a0
cmp byte [rsp + 0x3e], 0
je 0x14028086a
lea rcx, [rsp + 0x30]
call fcn.14030abf0
movabs rsi, 0xf7c21089bee7c0a5
movabs r12, 0xc85abc8da7534a4d
movabs rbx, 0x193a9814f2f7c16d
lea rax, [rdi + 0x860]
mov qword [rsp + 0x118], rax
lea r13, [rsp + 0x30]
lea r14, [rsp + 0x120]
mov qword [rsp + 0xf0], rdi
nop dword [rax]
mov rax, qword [rsp + 0x138]
cmp rax, qword [rsp + 0x140]
jb 0x1402808d8
mov rax, qword [rsp + 0x120]
mov rcx, r14
call qword [rax + 8]
test eax, eax
js 0x140280b59
mov rcx, r13
mov rdx, r14
call fcn.14026a320
mov al, byte [rsp + 0x3e]
test al, al
je 0x140280900
mov r8d, dword [rsp + 0x38]
test r8d, r8d
jne 0x14028090f
jmp 0x140280b25
movsx r8d, byte [rsp + 0x3f]
test r8d, r8d
je 0x140280b25
mov rdx, r13
test al, al
je 0x14028091b
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0xe0]
call fcn.1402590b0
mov rax, qword [rsp + 0xe0]
movsxd rdx, dword [rsp + 0xe8]
lea rcx, [rdx + rdx]
cmp ecx, 8
jb 0x140280980
cmp ecx, 0x20
jb 0x140280995
mov r8, rbx
lea rdx, [rcx - 0x20]
mov rbx, rdx
shr rbx, 5
add rbx, 1
cmp rdx, 0x20
jae 0x1402809c7
mov rdx, rsi
mov rdi, rsi
movabs r9, 0xcf79254d81e3a3a1
test bl, 1
jne 0x140280a3c
jmp 0x140280a63
cmp ecx, 5
jb 0x1402809a4
mov edx, dword [rax]
imul rdx, r12
add rdx, rbx
mov r9d, dword [rax + rcx - 4]
jmp 0x1402809bf
mov r9, rsi
add rcx, rax
add rcx, 0xfffffffffffffff8
jmp 0x140280aa7
mov r9, rsi
test edx, edx
je 0x140280ab3
movzx edx, word [rax]
imul rdx, r12
add rdx, rbx
movzx r9d, word [rax + rcx - 2]
add r9, rdx
jmp 0x140280ab3
mov rbp, rbx
and rbp, 0xfffffffffffffffe
mov rdx, rsi
mov rdi, rsi
movabs r9, 0xcf79254d81e3a3a1
nop
add r9, qword [rax]
imul rsi, r12
add rsi, qword [rax + 8]
imul rdi, r12
add rdi, qword [rax + 0x10]
imul rdx, r12
add rdx, qword [rax + 0x18]
imul r9, r12
add r9, qword [rax + 0x20]
imul rsi, r12
add rsi, qword [rax + 0x28]
imul rdi, r12
add rdi, qword [rax + 0x30]
imul rdx, r12
add rdx, qword [rax + 0x38]
add rax, 0x40
add rcx, 0xffffffffffffffc0
imul r9, r12
add rbp, 0xfffffffffffffffe
jne 0x1402809e0
movabs rbp, 0x8642b0fe3e86671b
test bl, 1
je 0x140280a63
add r9, qword [rax]
imul rsi, r12
add rsi, qword [rax + 8]
imul rdi, r12
add rdi, qword [rax + 0x10]
imul rdx, r12
add rdx, qword [rax + 0x18]
add rax, 0x20
add rcx, 0xffffffffffffffe0
imul r9, r12
mov rbx, r8
add r9, r8
add r9, rsi
imul r9, r12
add r9, rdi
imul r9, r12
add r9, rdx
mov rdi, qword [rsp + 0xf0]
movabs rsi, 0xf7c21089bee7c0a5
add rcx, rax
add rcx, 0xfffffffffffffff8
jmp 0x140280aa7
add r9, qword [rax]
add rax, 8
imul r9, r12
cmp rax, rcx
jb 0x140280aa0
add r9, qword [rcx]
imul r9, rbp
bswap r9
or r9d, 0x80000000
mov edx, dword [rdi + 0x870]
and edx, r9d
shl rdx, 2
add rdx, qword [rdi + 0x860]
mov rcx, qword [rsp + 0x118]
lea r8, [rsp + 0xe0]
call fcn.1402fa7b0
mov eax, dword [rsp + 0xec]
test eax, eax
jle 0x140280b21
cmp eax, 0x18
jb 0x140280b14
mov rcx, qword [rsp + 0xe0]
lock sub dword [rcx - 4], 1
jne 0x140280b21
add rcx, 0xfffffffffffffffc
call fcn.140309590
jmp 0x140280b21
mov rcx, qword [rsp + 0xe0]
call fcn.140309590
mov al, byte [rsp + 0x3e]
test al, al
je 0x1402808b0
mov rcx, r13
call fcn.14030abf0
jmp 0x1402808b0
movsx ecx, byte [rsp + 0x6f]
test ecx, ecx
jne 0x140280742
mov esi, 1
test al, al
jne 0x140280f9b
jmp 0x140280fa5
mov rax, qword [rsp + 0x88]
cmp rax, qword [rsp + 0x90]
jae 0x140280b7c
lea rcx, [rax + 1]
mov qword [rsp + 0x88], rcx
movzx eax, byte [rax]
jmp 0x140280b89
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call qword [rax + 0x10]
cmp eax, 0xff
jne 0x140280bc5
lea rsi, [rdi + 0x888]
cmp byte [rsp + 0x6e], 0
je 0x140280c09
lea rax, [rsp + 0x60]
cmp rsi, rax
je 0x140280c1f
cmp byte [rsi + 0xe], 0
je 0x140280bb6
mov rcx, rsi
call fcn.14030abf0
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.14030aaa0
jmp 0x140280c1f
cmp byte [rsp + 0x6e], 0
je 0x140280bd3
mov rdx, qword [rsp + 0x60]
jmp 0x140280bd8
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.1402686f0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.14027fac0
cmp byte [rsp + 0x3e], 0
je 0x140280f7a
lea rcx, [rsp + 0x30]
call fcn.14030abf0
jmp 0x140280f7a
cmp byte [rsi + 0xe], 0
je 0x140280c17
mov rcx, rsi
call fcn.14030abf0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi], xmm0
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x90]
lea rcx, [rax + 3]
cmp rcx, rdx
jae 0x140280c4c
mov r14d, dword [rax]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x140280cd2
lea rcx, [rax + 4]
cmp rcx, rdx
jbe 0x140280cb4
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x30]
mov r8d, 4
call qword [rax + 0x20]
cmp eax, 4
je 0x140280ccd
mov eax, dword [rsp + 0xa0]
mov ecx, eax
and ecx, 0xffc0001f
or ecx, 0x3fffa0
mov dword [rsp + 0xa0], ecx
mov r14d, 0xffffffff
test al, 1
je 0x140280cd2
mov ecx, 1
call fcn.140361800
lea rdx, [0x1403a98c0]
mov rcx, rax
xor r8d, r8d
call fcn.140361950
movzx edx, word [rax]
mov word [rsp + 0x30], dx
movzx eax, word [rax + 2]
mov word [rsp + 0x32], ax
mov qword [rsp + 0x88], rcx
mov r14d, dword [rsp + 0x30]
lea eax, [r14 - 1]
cmp eax, 0x1869e
ja 0x140280f7a
mov rbp, rdi
add rbp, 0x898
lea rdi, [rsp + 0x30]
lea r12, [rsp + 0x70]
mov r13d, r14d
jmp 0x140280d1b
mov ecx, dword [rax]
add rax, 4
mov qword [rsp + 0x88], rax
mov dword [rsi + 0x20], ecx
add r13d, 0xffffffff
je 0x140280ee2
mov rcx, rbp
call fcn.1402eacc0
mov rsi, rax
mov rax, qword [rsp + 0x88]
cmp rax, qword [rsp + 0x90]
jae 0x140280d50
lea rcx, [rax + 1]
mov qword [rsp + 0x88], rcx
movzx eax, byte [rax]
jmp 0x140280d5b
mov rax, qword [rsp + 0x70]
mov rcx, r12
call qword [rax + 0x10]
mov rcx, rdi
mov rdx, r12
mov r8d, eax
call fcn.140269b50
lea rbx, [rsi + 8]
cmp rbx, rdi
je 0x140280d90
cmp byte [rbx + 0xe], 0
je 0x140280d80
mov rcx, rbx
call fcn.14030abf0
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rbx], xmm0
jmp 0x140280d9f
cmp byte [rsp + 0x3e], 0
je 0x140280d9f
mov rcx, rdi
call fcn.14030abf0
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
lea rdx, [rax + 3]
cmp rdx, rcx
jae 0x140280de0
mov edx, dword [rax]
add rax, 4
mov qword [rsp + 0x88], rax
mov dword [rsi + 0x1c], edx
lea rdx, [rax + 3]
cmp rdx, rcx
jb 0x140280d00
jmp 0x140280e6d
lea rdx, [rax + 4]
cmp rdx, rcx
jbe 0x140280e30
mov rax, qword [rsp + 0x70]
mov rcx, r12
mov rdx, rdi
mov r8d, 4
call qword [rax + 0x20]
cmp eax, 4
je 0x140280e49
mov eax, dword [rsp + 0xa0]
mov ecx, eax
and ecx, 0xffc0001f
or ecx, 0x3fffa0
mov dword [rsp + 0xa0], ecx
mov edx, 0xffffffff
test al, 1
je 0x140280e4d
jmp 0x14028104c
movzx ecx, word [rax]
mov word [rsp + 0x30], cx
movzx eax, word [rax + 2]
mov word [rsp + 0x32], ax
mov qword [rsp + 0x88], rdx
mov edx, dword [rsp + 0x30]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
mov dword [rsi + 0x1c], edx
lea rdx, [rax + 3]
cmp rdx, rcx
jb 0x140280d00
lea rdx, [rax + 4]
cmp rdx, rcx
jbe 0x140280ec0
mov rax, qword [rsp + 0x70]
mov rcx, r12
mov rdx, rdi
mov r8d, 4
call qword [rax + 0x20]
cmp eax, 4
je 0x140280ed9
mov eax, dword [rsp + 0xa0]
mov ecx, eax
and ecx, 0xffc0001f
or ecx, 0x3fffa0
mov dword [rsp + 0xa0], ecx
mov ecx, 0xffffffff
test al, 1
je 0x140280d0e
jmp 0x140281068
movzx ecx, word [rax]
mov word [rsp + 0x30], cx
movzx eax, word [rax + 2]
mov word [rsp + 0x32], ax
mov qword [rsp + 0x88], rdx
mov ecx, dword [rsp + 0x30]
jmp 0x140280d0e
mov rax, qword [rsp + 0x88]
cmp rax, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xf0]
jb 0x140280f0d
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call qword [rax + 8]
test eax, eax
js 0x140280f72
mov eax, dword [rsp + 0x88]
sub eax, dword [rsp + 0x80]
add eax, dword [rsp + 0x78]
mov rcx, qword [rsi + 0x8a0]
mov ebx, r14d
cmp r14d, 1
jne 0x140280f33
xor ebp, ebp
jmp 0x140280f64
mov edx, ebx
and edx, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
mov rdi, qword [rcx + rbp*8]
mov dword [rdi + 0x18], eax
add eax, dword [rdi + 0x1c]
add eax, dword [rdi + 0x20]
mov rdi, qword [rcx + rbp*8 + 8]
mov dword [rdi + 0x18], eax
add eax, dword [rdi + 0x1c]
add eax, dword [rdi + 0x20]
add rbp, 2
cmp rdx, rbp
jne 0x140280f40
test bl, 1
je 0x140280f7a
mov rcx, qword [rcx + rbp*8]
mov dword [rcx + 0x18], eax
jmp 0x140280f7a
mov rcx, rbp
call fcn.1402ead70
lea rcx, [rsp + 0x120]
call fcn.140282720
xor esi, esi
lea rcx, [rsp + 0x70]
call fcn.140282720
mov al, byte [rsp + 0x6e]
test al, al
je 0x140280fa5
lea rcx, [rsp + 0x60]
call fcn.14030abf0
cmp byte [rsp + 0x4e], 0
je 0x140280fb6
lea rcx, [rsp + 0x40]
call fcn.14030abf0
test esi, esi
je 0x140280fbe
xor eax, eax
jmp 0x140280fcc
movsxd rdx, r15d
mov rax, qword [0x1405df5d8]
mov rax, qword [rax + rdx*8]
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1405df5e8]
call fcn.14035f9c4
test eax, eax
je 0x140280425
mov qword [0x1405df5b0], 0
lea rax, [0x140489598]
mov qword [0x1405df5a8], rax
movabs rax, 0xffffffff00000000
mov qword [0x1405df5b8], rax
xorps xmm0, xmm0
movups xmmword [0x1405df5c0], xmm0
movups xmmword [0x1405df5d8], xmm0
lea rcx, [0x140281200]
call fcn.140001440
lea rcx, [0x1405df5e8]
call fcn.14035fa9b
jmp 0x140280425
mov ecx, 1
call fcn.140361800
lea rdx, [0x1403a98c0]
mov rcx, rax
xor r8d, r8d
call fcn.140361950
mov ecx, 1
call fcn.140361800
lea rdx, [0x1403a98c0]
mov rcx, rax
xor r8d, r8d
call fcn.140361950
mov rcx, rax
call fcn.140001880
jmp 0x1402811c1
mov rsi, rax
lea rcx, [rsp + 0x120]
call fcn.140282720
lea rcx, [rsp + 0x70]
call fcn.140282720
lea rcx, [rsp + 0x60]
call fcn.140001760
lea rcx, [rsp + 0x40]
call fcn.140001760
mov rcx, rsi
call fcn.140363f60
int3