Function at 0x61015730
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 0x610158f6
mov edi, dword [eax]
mov esi, ebx
mov ecx, dword [eax + 4]
cld
and eax, 0xff
dec ecx
js 0x61015772
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x6101576e
xor al, byte [eax + 0x61108b40]
cmp al, byte [edi - 1]
jne 0x61015779
test al, al
jne 0x6101575c
mov eax, 1
jmp 0x6101577b
xor eax, eax
test eax, eax
je 0x61015980
test byte [0x6110c854], 1
jne 0x61015880
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x610157b5
test ebx, ebx
je 0x61015954
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 0x61015975
mov esi, dword [0x61106ec4]
mov eax, dword [esi + 0x15c]
test eax, eax
je 0x610158b4
test cl, 1
jne 0x61015922
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 0x61015910
cmp byte [ebp - 0x11], 0
je 0x61015811
test ebx, ebx
je 0x61015910
cmp esi, 0x6110752c
je 0x61015910
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 [0x6110c854], 1
jne 0x61015987
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], 0x6110c854
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 0x61015790
test byte [0x6110c854], 1
je 0x610157a2
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], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610157a2
test byte [0x6110c854], 1
jne 0x61015880
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0xc]
jmp 0x61015796
mov ebx, dword [ebp - 0xc]
mov eax, 0x6110752c
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 0x610157f9
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 [0x61106ec4]
jmp 0x610157d1
xor eax, eax
jmp 0x61015870
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], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101586e