Function at 0x61015770
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0xc], ebx
test ecx, ecx
mov ebx, ecx
mov dword [ebp - 8], esi
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x11], dl
je 0x61015936
mov edi, dword [eax]
mov esi, ebx
mov ecx, dword [eax + 4]
cld
and eax, 0xff
dec ecx
js 0x610157b2
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x610157ae
xor al, byte [eax + 0x61106b3c]
cmp al, byte [edi - 1]
jne 0x610157b9
test al, al
jne 0x6101579c
mov eax, 1
jmp 0x610157bb
xor eax, eax
test eax, eax
je 0x610159c0
test byte [0x6110a820], 1
jne 0x610158c0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x610157f5
test ebx, ebx
je 0x61015994
mov esi, dword [ebp - 8]
mov eax, ebx
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov esp, ebp
pop ebp
jmp sym._cstrdup1_4
test ebx, ebx
je 0x610159b5
mov esi, dword [0x61104ec4]
mov eax, dword [esi + 0x15c]
test eax, eax
je 0x610158f4
test cl, 1
jne 0x61015962
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 4]
mov edi, dword [eax + 0x10]
mov dword [esp + 8], edx
mov edx, dword [eax]
mov dword [esp + 4], edx
lea edx, [esi + edi + 0x88]
mov dword [esp], edx
call ecx
test eax, eax
mov esi, eax
je 0x61015950
cmp byte [ebp - 0x11], 0
je 0x61015851
test ebx, ebx
je 0x61015950
cmp esi, 0x6110552c
je 0x61015950
mov dword [esp], esi
call sym.cygwin1.dll__strlen
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 4]
add eax, ecx
lea edx, [eax + 1]
mov eax, 0xb
call sym._cmalloc_8
mov ecx, dword [ebp - 0x10]
mov ebx, eax
mov eax, dword [ecx]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.cygwin1.dll__strcpy
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
add eax, ebx
mov dword [esp], eax
call sym.cygwin1.dll__strcpy
test byte [0x6110a820], 1
jne 0x610159c7
mov eax, ebx
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
movzx eax, byte [ebp - 0x11]
mov dword [esp], 0x6110a820
mov dword [esp + 0x10], eax
mov eax, str.no_envblock__d
mov dword [esp + 0xc], eax
mov eax, str.char_spenv::retrieve_bool__const_char_
mov dword [esp + 8], eax
mov eax, 0x40
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610157d0
test byte [0x6110a820], 1
je 0x610157e2
mov edx, dword [ebp - 0x10]
mov edi, str.char_spenv::retrieve_bool__const_char_
mov esi, 0x40
mov eax, dword [edx]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov eax, str.duping_existing_value_for__s
mov dword [esp + 0xc], eax
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610157e2
test byte [0x6110a820], 1
jne 0x610158c0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0xc]
jmp 0x610157d6
mov ebx, dword [ebp - 0xc]
mov eax, 0x6110552c
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x10]
mov eax, dword [esi + edi + 0x88]
mov eax, dword [eax + ecx - 1]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 4]
mov dword [esp + 8], edx
mov edx, dword [ecx]
mov dword [esp + 4], edx
lea edx, [esi + edi + 0x88]
mov dword [esp], edx
call eax
jmp 0x61015839
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 8]
mov edx, dword [ecx + 4]
mov ecx, 0xb
mov eax, dword [ebx]
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov esp, ebp
pop ebp
jmp sym.__Z11getwinenveqPKcji_12
mov esi, dword [0x61104ec4]
jmp 0x61015811
xor eax, eax
jmp 0x610158b0
mov edx, dword [ebp - 0x10]
mov edi, str.char_spenv::retrieve_bool__const_char_
mov esi, 0x40
mov eax, dword [edx]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov eax, str.using_computed_value_for__s
mov dword [esp + 0xc], eax
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610158ae