Function at 0x61538b10
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, 0x6589f551
push esi
mov esi, 0xd8f20c5b
push ebx
and esp, 0xffffffe0
sub esp, 0x50
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07f0]
test al, al
je 0x61538d90
mov dword [0x615f3a50], esi
mov dword [0x615f3a54], edi
mov byte [0x615f3a58], 0x5b
mov dword [esp], 0x615f3a50
call fcn.6152b7e0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07b8]
test al, al
je 0x615390f0
mov dword [0x615f39e0], esi
mov dword [0x615f39e4], edi
mov byte [0x615f39e8], 0x5b
mov dword [esp], 0x615f39e0
call fcn.6152b7e0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07c0]
test al, al
je 0x615390a0
mov dword [0x615f39f0], esi
mov dword [0x615f39f4], edi
mov byte [0x615f39f8], 0x5b
mov dword [esp], 0x615f39f0
call fcn.6152b7e0
mov dword [esp + 0x3c], 0x19100602
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07c8]
test al, al
je 0x61539050
mov dword [0x615f3a00], esi
mov dword [0x615f3a04], edi
mov byte [0x615f3a08], 0x5b
mov dword [esp], 0x615f3a00
call sub.msvcrt.dll_getenv
test eax, eax
je 0x61538c24
lea eax, [esp + 0x3c]
call eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
add ecx, 8
mov dword [esp + 0x2c], ecx
lea edx, [ebx + eax]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
mov edx, dword [ebp + 8]
mov dword [edx], ecx
cmp eax, 7
ja 0x61538de0
mov edx, dword [esp + 0x24]
cmp ebx, edx
je 0x61538c72
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
nop
movsx dx, byte [ebx]
add ebx, 1
add eax, 2
mov word [eax - 2], dx
cmp ecx, ebx
jne 0x61538c60
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov dword [ebx + 4], eax
mov ebx, dword [esp + 0x2c]
mov byte [esp + 0x48], 0x5b
mov word [ebx + eax*2], dx
movzx eax, byte [0x615f07d0]
test al, al
je 0x61539230
mov dword [0x615f3a10], esi
mov dword [0x615f3a14], edi
mov byte [0x615f3a18], 0x5b
mov dword [esp], 0x615f3a10
call fcn.6152b7e0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07d8]
test al, al
je 0x615391e0
mov dword [0x615f3a20], esi
mov dword [0x615f3a24], edi
mov byte [0x615f3a28], 0x5b
mov dword [esp], 0x615f3a20
call fcn.6152b7e0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07e0]
test al, al
je 0x61539190
mov dword [0x615f3a30], esi
mov dword [0x615f3a34], edi
mov byte [0x615f3a38], 0x5b
mov dword [esp], 0x615f3a30
call fcn.6152b7e0
mov dword [esp + 0x3c], 0x2d200e06
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x48], 0x5b
movzx eax, byte [0x615f07e8]
test al, al
je 0x61539140
mov dword [0x615f3a40], esi
mov dword [0x615f3a44], edi
mov byte [0x615f3a48], 0x5b
mov dword [esp], 0x615f3a40
call sub.msvcrt.dll_getenv
test eax, eax
je 0x61538d84
lea eax, [esp + 0x3c]
call eax
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x615f07f0
call fcn.615dfad0
test eax, eax
je 0x61538b42
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f3a50], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f3a54], edx
mov byte [0x615f3a58], al
mov dword [esp], 0x615e0a00
call fcn.615013c0
mov dword [esp], 0x615f07f0
call fcn.615dfba0
jmp 0x61538b42
cmp dword [esp + 0x28], 0x3fffffff
ja 0x615392b2
mov edx, eax
lea eax, [eax + 1]
cmp edx, 0x3fffffff
je 0x615392a5
add eax, eax
mov dword [esp], eax
call fcn.615df6b0
mov edx, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov dword [edx], eax
mov eax, edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
cmp ebx, eax
je 0x61538c72
mov eax, edx
lea edx, [edx - 1]
cmp edx, 0xe
jbe 0x61538c57
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + eax*2]
cmp ebx, eax
jae 0x61538e4c
mov eax, dword [esp + 0x24]
cmp ecx, eax
jb 0x61538c57
cmp edx, 0x1e
jbe 0x6153927e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, eax
and eax, 0xffffffe0
shr edx, 5
mov dword [esp + 0x1c], eax
add eax, ebx
mov dword [esp + 0x20], edx
mov edx, ebx
lea esi, [esi]
vmovdqu ymm0, ymmword [edx]
add edx, 0x20
add ecx, 0x40
vpmovsxbw ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxbw ymm0, xmm0
vmovdqu ymmword [ecx - 0x40], ymm1
vmovdqu ymmword [ecx - 0x20], ymm0
cmp eax, edx
jne 0x61538e78
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
shl edx, 6
add edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x28]
cmp edx, ecx
je 0x615392aa
sub edx, ecx
lea ecx, [edx - 1]
mov dword [esp + 0x18], edx
cmp ecx, 0xe
jbe 0x6153929d
vzeroupper
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
vmovdqu xmm0, xmmword [ebx + ecx]
lea edx, [edx + ecx*2]
mov ebx, dword [esp + 0x20]
vpmovsxbw xmm1, xmm0
vpsrldq xmm0, xmm0, 8
vpmovsxbw xmm0, xmm0
vmovdqu xmmword [edx], xmm1
vmovdqu xmmword [edx + 0x10], xmm0
mov edx, dword [esp + 0x18]
mov ecx, edx
and ecx, 0xfffffff0
add eax, ecx
lea ebx, [ebx + ecx*2]
and edx, 0xf
mov dword [esp + 0x20], ebx
je 0x61538c72
movsx dx, byte [eax]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov word [ebx], dx
lea edx, [eax + 1]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 1]
mov word [ebx + 2], dx
lea edx, [eax + 2]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 2]
mov word [ebx + 4], dx
lea edx, [eax + 3]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 3]
mov word [ebx + 6], dx
lea edx, [eax + 4]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 4]
mov word [ebx + 8], dx
lea edx, [eax + 5]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 5]
mov word [ebx + 0xa], dx
lea edx, [eax + 6]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 6]
mov word [ebx + 0xc], dx
lea edx, [eax + 7]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 7]
mov word [ebx + 0xe], dx
lea edx, [eax + 8]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 8]
mov word [ebx + 0x10], dx
lea edx, [eax + 9]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 9]
mov word [ebx + 0x12], dx
lea edx, [eax + 0xa]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 0xa]
mov word [ebx + 0x14], dx
lea edx, [eax + 0xb]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 0xb]
mov word [ebx + 0x16], dx
lea edx, [eax + 0xc]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 0xc]
mov word [ebx + 0x18], dx
lea edx, [eax + 0xd]
cmp ecx, edx
je 0x61538c72
movsx dx, byte [eax + 0xd]
mov word [ebx + 0x1a], dx
lea edx, [eax + 0xe]
cmp ecx, edx
je 0x61538c72
movsx ax, byte [eax + 0xe]
mov word [ebx + 0x1c], ax
jmp 0x61538c72
mov dword [esp], 0x615f07c8
call fcn.615dfad0
test eax, eax
je 0x61538bfb
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f3a00], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f3a04], edx
mov byte [0x615f3a08], al
mov dword [esp], 0x615e18b0
call fcn.615013c0
mov dword [esp], 0x615f07c8
call fcn.615dfba0
jmp 0x61538bfb
mov dword [esp], 0x615f07c0
call fcn.615dfad0
test eax, eax
je 0x61538bb8
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f39f0], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f39f4], edx
mov byte [0x615f39f8], al
mov dword [esp], 0x615e13a0
call fcn.615013c0
mov dword [esp], 0x615f07c0
call fcn.615dfba0
jmp 0x61538bb8
mov dword [esp], 0x615f07b8
call fcn.615dfad0
test eax, eax
je 0x61538b7d
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f39e0], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f39e4], edx
mov byte [0x615f39e8], al
mov dword [esp], 0x615e0e90
call fcn.615013c0
mov dword [esp], 0x615f07b8
call fcn.615dfba0
jmp 0x61538b7d
mov dword [esp], 0x615f07e8
call fcn.615dfad0
test eax, eax
je 0x61538d5b
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f3a40], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f3a44], edx
mov byte [0x615f3a48], al
mov dword [esp], 0x615e0570
call fcn.615013c0
mov dword [esp], 0x615f07e8
call fcn.615dfba0
jmp 0x61538d5b
mov dword [esp], 0x615f07e0
call fcn.615dfad0
test eax, eax
je 0x61538d18
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f3a30], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f3a34], edx
mov byte [0x615f3a38], al
mov dword [esp], 0x615e2cf0
call fcn.615013c0
mov dword [esp], 0x615f07e0
call fcn.615dfba0
jmp 0x61538d18
mov dword [esp], 0x615f07d8
call fcn.615dfad0
test eax, eax
je 0x61538cdd
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f3a20], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f3a24], edx
mov byte [0x615f3a28], al
mov dword [esp], 0x615e2820
call fcn.615013c0
mov dword [esp], 0x615f07d8
call fcn.615dfba0
jmp 0x61538cdd
mov dword [esp], 0x615f07d0
call fcn.615dfad0
test eax, eax
je 0x61538ca2
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x615f3a10], eax
movzx eax, byte [esp + 0x48]
mov dword [0x615f3a14], edx
mov byte [0x615f3a18], al
mov dword [esp], 0x615e2310
call fcn.615013c0
mov dword [esp], 0x615f07d0
call fcn.615dfba0
jmp 0x61538ca2
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
mov eax, ebx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], edx
jmp 0x61538ed6
vzeroupper
jmp 0x61538f1d
call fcn.615e4a60
vzeroupper
jmp 0x61538c72
mov dword [esp], 0x615f4332
call fcn.615e4c10
mov ebx, eax
jmp 0x615e30ec
mov ecx, dword [ebp + 8]
vzeroupper
call fcn.615cdbd0
mov dword [esp], ebx
call fcn.615159a0
nop
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x615e3124
mov dword [esp], eax
mov ecx, esi
vzeroupper
call fcn.61544800
push eax
mov ecx, ebx
call fcn.615cdbd0
mov dword [esp], edi
call fcn.615159a0
vzeroupper
jmp 0x615e3115