Function at 0x6152b960
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xffffffe0
sub esp, 0x50
mov eax, dword [ebp + 0x14]
movzx edi, ax
mov dword [esp + 0x34], edi
test ax, ax
je 0x6152be90
mov byte [esp + 0x3f], 0
xor eax, eax
jmp 0x6152ba9b
movzx eax, byte [0x615efb90]
test al, al
je 0x6152be40
vmovq xmm0, qword [0x615f4408]
mov byte [0x615f25a0], 0x5b
vmovq qword [0x615f2598], xmm0
mov dword [esp], 0x615f2598
call fcn.6152b7e0
movzx eax, byte [0x615efb98]
test al, al
je 0x6152bdf0
vmovq xmm1, qword [0x615f4408]
mov byte [0x615f25b0], 0x5b
vmovq qword [0x615f25a8], xmm1
mov dword [esp], 0x615f25a8
call fcn.6152b7e0
movzx eax, byte [0x615efba0]
test al, al
je 0x6152bda0
vmovq xmm2, qword [0x615f4408]
mov byte [0x615f25c0], 0x5b
vmovq qword [0x615f25b8], xmm2
mov dword [esp], 0x615f25b8
call fcn.6152b7e0
mov dword [esp + 0x4c], 0x19100602
movzx eax, byte [0x615efba8]
test al, al
je 0x6152bd50
vmovq xmm3, qword [0x615f4408]
mov byte [0x615f25d0], 0x5b
vmovq qword [0x615f25c8], xmm3
mov dword [esp], 0x615f25c8
call sub.msvcrt.dll_getenv
test eax, eax
je 0x6152ba6a
lea eax, [esp + 0x4c]
call eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sub.msvcrt.dll_memset
add byte [esp + 0x3f], 1
mov ecx, dword [esp + 0x34]
movzx eax, byte [esp + 0x3f]
cmp eax, ecx
jge 0x6152be90
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ebp + 8]
add eax, dword [ebx + 0xc]
mov dword [esp + 0x38], eax
mov edi, eax
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x6152b990
movzx eax, byte [0x615efbb0]
test al, al
je 0x6152bef0
vmovq xmm5, qword [0x615f4408]
mov byte [0x615f25e0], 0x5b
vmovq qword [0x615f25d8], xmm5
mov dword [esp], 0x615f25d8
call fcn.6152b7e0
movzx eax, byte [0x615efb78]
test al, al
je 0x6152bf90
vmovq xmm6, qword [0x615f4408]
mov byte [0x615f2570], 0x5b
vmovq qword [0x615f2568], xmm6
mov dword [esp], 0x615f2568
call fcn.6152b7e0
movzx eax, byte [0x615efb80]
test al, al
je 0x6152bf40
vmovq xmm7, qword [0x615f4408]
mov byte [0x615f2580], 0x5b
vmovq qword [0x615f2578], xmm7
mov dword [esp], 0x615f2578
call fcn.6152b7e0
mov dword [esp + 0x4c], 0x500fefe
movzx eax, byte [0x615efb88]
test al, al
je 0x6152bea0
vmovq xmm5, qword [0x615f4408]
mov byte [0x615f2590], 0x5b
vmovq qword [0x615f2588], xmm5
mov dword [esp], 0x615f2588
call sub.msvcrt.dll_getenv
test eax, eax
je 0x6152bb95
lea eax, [esp + 0x4c]
call eax
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebx + 0x10]
add eax, ecx
mov esi, eax
lea ebx, [edx - 1]
test edx, edx
jle 0x6152ba85
mov dword [esp + 0x30], ebx
cmp ebx, 0xe
jbe 0x6152bbc8
mov ebx, dword [ebp + 0xc]
lea ebx, [ebx + ecx + 1]
mov ecx, dword [esp + 0x38]
sub ecx, ebx
cmp ecx, 0x1e
ja 0x6152bbe0
add eax, edx
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp esi, eax
jne 0x6152bbd0
jmp 0x6152ba85
cmp dword [esp + 0x30], 0x1e
jbe 0x6152bfd8
mov ecx, edx
mov edi, dword [esp + 0x38]
mov ebx, eax
and ecx, 0xffffffe0
lea esi, [ecx + eax]
lea esi, [esi]
vmovdqu ymm4, ymmword [ebx]
add ebx, 0x20
add edi, 0x20
vmovdqu ymmword [edi - 0x20], ymm4
cmp esi, ebx
jne 0x6152bc00
mov edi, dword [esp + 0x38]
sub dword [esp + 0x30], ecx
add edi, ecx
cmp edx, ecx
je 0x6152bfdf
vzeroupper
sub edx, ecx
lea ebx, [edx - 1]
cmp ebx, 0xe
jbe 0x6152bc5c
vmovdqu xmm6, xmmword [eax + ecx]
mov eax, dword [esp + 0x38]
vmovdqu xmmword [eax + ecx], xmm6
mov eax, edx
and eax, 0xfffffff0
sub dword [esp + 0x30], eax
add edi, eax
add esi, eax
and edx, 0xf
vmovdqa xmmword [esp + 0x20], xmm6
je 0x6152ba85
movzx eax, byte [esi]
mov edx, dword [esp + 0x30]
mov byte [edi], al
test edx, edx
jle 0x6152ba85
movzx eax, byte [esi + 1]
mov byte [edi + 1], al
cmp edx, 1
je 0x6152ba85
movzx eax, byte [esi + 2]
mov byte [edi + 2], al
cmp edx, 2
je 0x6152ba85
movzx eax, byte [esi + 3]
mov byte [edi + 3], al
cmp edx, 3
je 0x6152ba85
movzx eax, byte [esi + 4]
mov byte [edi + 4], al
cmp edx, 4
je 0x6152ba85
movzx eax, byte [esi + 5]
mov byte [edi + 5], al
cmp edx, 5
je 0x6152ba85
movzx eax, byte [esi + 6]
mov byte [edi + 6], al
cmp edx, 6
je 0x6152ba85
movzx eax, byte [esi + 7]
mov byte [edi + 7], al
cmp edx, 7
je 0x6152ba85
movzx eax, byte [esi + 8]
mov byte [edi + 8], al
cmp edx, 8
je 0x6152ba85
movzx eax, byte [esi + 9]
mov byte [edi + 9], al
cmp edx, 9
je 0x6152ba85
movzx eax, byte [esi + 0xa]
mov byte [edi + 0xa], al
cmp edx, 0xa
je 0x6152ba85
movzx eax, byte [esi + 0xb]
mov byte [edi + 0xb], al
cmp edx, 0xb
je 0x6152ba85
movzx eax, byte [esi + 0xc]
mov byte [edi + 0xc], al
cmp edx, 0xc
je 0x6152ba85
movzx eax, byte [esi + 0xd]
mov byte [edi + 0xd], al
cmp edx, 0xd
je 0x6152ba85
movzx eax, byte [esi + 0xe]
mov byte [edi + 0xe], al
jmp 0x6152ba85
mov dword [esp], 0x615efba8
call fcn.615dfad0
test eax, eax
je 0x6152ba3d
vmovq xmm4, qword [0x615f4408]
mov byte [0x615f25d0], 0x5b
vmovq qword [0x615f25c8], xmm4
mov dword [esp], 0x615e1000
call fcn.615013c0
mov dword [esp], 0x615efba8
call fcn.615dfba0
jmp 0x6152ba3d
mov dword [esp], 0x615efba0
call fcn.615dfad0
test eax, eax
je 0x6152ba03
vmovq xmm5, qword [0x615f4408]
mov byte [0x615f25c0], 0x5b
vmovq qword [0x615f25b8], xmm5
mov dword [esp], 0x615e0ff0
call fcn.615013c0
mov dword [esp], 0x615efba0
call fcn.615dfba0
jmp 0x6152ba03
mov dword [esp], 0x615efb98
call fcn.615dfad0
test eax, eax
je 0x6152b9d1
vmovq xmm7, qword [0x615f4408]
mov byte [0x615f25b0], 0x5b
vmovq qword [0x615f25a8], xmm7
mov dword [esp], 0x615e0fe0
call fcn.615013c0
mov dword [esp], 0x615efb98
call fcn.615dfba0
jmp 0x6152b9d1
mov dword [esp], 0x615efb90
call fcn.615dfad0
test eax, eax
je 0x6152b99f
vmovq xmm6, qword [0x615f4408]
mov byte [0x615f25a0], 0x5b
vmovq qword [0x615f2598], xmm6
mov dword [esp], 0x615e0fd0
call fcn.615013c0
mov dword [esp], 0x615efb90
call fcn.615dfba0
jmp 0x6152b99f
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x615efb88
call fcn.615dfad0
test eax, eax
je 0x6152bb68
vmovq xmm7, qword [0x615f4408]
mov byte [0x615f2590], 0x5b
vmovq qword [0x615f2588], xmm7
mov dword [esp], 0x615e0fc0
call fcn.615013c0
mov dword [esp], 0x615efb88
call fcn.615dfba0
jmp 0x6152bb68
mov dword [esp], 0x615efbb0
call fcn.615dfad0
test eax, eax
je 0x6152baca
vmovq xmm6, qword [0x615f4408]
mov byte [0x615f25e0], 0x5b
vmovq qword [0x615f25d8], xmm6
mov dword [esp], 0x615e0f90
call fcn.615013c0
mov dword [esp], 0x615efbb0
call fcn.615dfba0
jmp 0x6152baca
mov dword [esp], 0x615efb80
call fcn.615dfad0
test eax, eax
je 0x6152bb2e
vmovq xmm6, qword [0x615f4408]
mov byte [0x615f2580], 0x5b
vmovq qword [0x615f2578], xmm6
mov dword [esp], 0x615e0fb0
call fcn.615013c0
mov dword [esp], 0x615efb80
call fcn.615dfba0
jmp 0x6152bb2e
mov dword [esp], 0x615efb78
call fcn.615dfad0
test eax, eax
je 0x6152bafc
vmovq xmm7, qword [0x615f4408]
mov byte [0x615f2570], 0x5b
vmovq qword [0x615f2568], xmm7
mov dword [esp], 0x615e0fa0
call fcn.615013c0
mov dword [esp], 0x615efb78
call fcn.615dfba0
jmp 0x6152bafc
xor ecx, ecx
jmp 0x6152bc28
vzeroupper
jmp 0x6152ba85