Function at 0x61cc4390
Capabilities:
Query environment variable

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x61cc46ec
call sym.__errno
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov dword [esp], sym.libintl_8.dll__nl_state_lock
call sym.libintl_8.dll_libintl_rwlock_rdlock
mov eax, dword [ebp + 8]
test eax, eax
je 0x61cc4870
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call sym._strlen
lea ecx, [eax + 1]
add eax, 0x37
and eax, 0xfffffff0
mov dword [ebp - 0x24], ecx
call fcn.61ccab68
mov dword [esp + 8], ecx
lea ebx, [esp + 0x23]
mov edx, dword [ebp + 0xc]
and ebx, 0xfffffff0
lea eax, [ebx + 0x18]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
mov dword [ebx + 4], eax
mov eax, dword [0x61cce0f0]
mov dword [ebx], ecx
test eax, eax
je 0x61cc46f4
mov edx, dword [sym.libintl_8.dll_libintl_nl_domain_bindings]
test edx, edx
mov dword [ebp - 0x14], edx
jmp 0x61cc4452
mov eax, dword [ebp - 0x14]
add eax, 0xc
mov dword [esp + 4], eax
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sym._strcmp
test eax, eax
je 0x61cc487d
jl 0x61cc4947
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 0x14], eax
jne 0x61cc4425
mov dword [ebp - 0x1c], sym.libintl_8.dll_libintl_nl_default_dirname
cmp dword [ebp + 0x1c], 3
mov dword [ebp - 0x28], str.LC_MONETARY
je 0x61cc4488
jg 0x61cc47fa
cmp dword [ebp + 0x1c], 1
mov dword [ebp - 0x28], str.LC_COLLATE
je 0x61cc4488
jle 0x61cc495f
mov dword [ebp - 0x28], str.LC_CTYPE
mov edx, dword [ebp - 0x28]
mov dword [esp + 4], edx
mov ecx, dword [ebp + 0x1c]
mov dword [esp], ecx
call sym.libintl_8.dll__nl_locale_name_posix
mov dword [ebp - 0x2c], 0
test eax, eax
mov ebx, eax
je 0x61cc49ff
cld
mov ecx, 2
mov esi, ebx
mov edi, 0x61ccc0f9
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
mov ecx, ebx
jne 0x61cc4831
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._strlen
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x28]
mov dword [esp], edx
call sym._strlen
mov ecx, dword [ebp - 0x30]
lea eax, [eax + ecx + 0x23]
and eax, 0xfffffff0
call fcn.61ccab68
mov edx, dword [ebp - 0x28]
lea eax, [esp + 0x23]
and eax, 0xfffffff0
mov dword [ebp - 0x34], eax
call sym._stpcpy_1
mov edx, 0x61ccc0fb
call sym._stpcpy_1
mov edx, dword [ebp - 0x30]
mov dword [esp], edx
mov edx, dword [ebp + 8]
call sym._mempcpy
mov edx, 0x61ccc0fd
call sym._stpcpy_1
mov ecx, dword [ebp - 0x18]
mov dword [esp], ecx
call sym._strlen
add eax, 0x1f
and eax, 0xfffffff0
call fcn.61ccab68
lea eax, [esp + 0x23]
and eax, 0xfffffff0
mov dword [ebp - 0x38], eax
lea esi, [esi]
mov edx, dword [ebp - 0x18]
movzx ecx, byte [edx]
cmp cl, 0x3a
jne 0x61cc456e
nop
lea esi, [esi]
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax]
cmp cl, 0x3a
je 0x61cc4560
test cl, cl
jne 0x61cc4703
mov edx, dword [ebp - 0x38]
mov byte [edx], 0x43
mov byte [edx + 1], 0
cld
mov esi, dword [ebp - 0x38]
mov ecx, 2
mov edi, 0x61ccc0f9
repe cmpsb byte [esi], byte es:[edi]
je 0x61cc4982
mov esi, dword [ebp - 0x38]
mov edi, str.POSIX
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
je 0x61cc4982
mov eax, dword [ebp - 0x14]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x34]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x38]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym.libintl_8.dll__nl_find_domain
test eax, eax
mov esi, eax
je 0x61cc4550
lea edx, [ebp - 0x10]
mov eax, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.libintl_8.dll__nl_find_msg
test eax, eax
mov edi, eax
je 0x61cc47a5
cmp edi, 0xffffffff
je 0x61cc4982
test edi, edi
je 0x61cc4550
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
lea eax, [edx + ecx + 0x19]
mov dword [esp], eax
call sym._malloc
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x61cc46c9
mov edx, dword [ebp - 0x24]
add eax, 0x18
mov dword [esp], edx
mov edx, dword [ebp + 0xc]
call sym._mempcpy
mov ebx, eax
mov eax, dword [ebp - 0x30]
inc eax
mov dword [esp + 8], eax
mov ecx, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym._memcpy
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 4], edx
mov dword [eax], ebx
mov eax, dword [sym.libintl_8.dll__nl_msg_cat_cntr]
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x10], edi
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x10]
mov dword [ecx + 0x14], eax
mov dword [esp], 0x61ccb120
call sym.libintl_8.dll_libintl_rwlock_wrlock
mov eax, sym._transcmp
mov dword [esp + 8], eax
mov eax, 0x61cce0e0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call sym._tsearch
mov dword [esp], 0x61ccb120
mov ebx, eax
call sym.libintl_8.dll_libintl_rwlock_unlock
test ebx, ebx
je 0x61cc4a68
mov edx, dword [ebp - 0x3c]
cmp dword [ebx], edx
jne 0x61cc4a68
call sym.__errno
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jne 0x61cc4a12
mov dword [esp], sym.libintl_8.dll__nl_state_lock
call sym.libintl_8.dll_libintl_rwlock_unlock
mov eax, edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xffffffff
mov dword [0x61cce0f0], eax
jmp 0x61cc4418
mov ebx, dword [ebp - 0x38]
cmp cl, 0x3a
jmp 0x61cc472b
inc dword [ebp - 0x18]
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax]
test cl, cl
setne al
xor edx, edx
cmp cl, 0x3a
setne dl
test eax, edx
jne 0x61cc4710
mov byte [ebx], 0
cmp dword [0x61cce0f0], 1
jne 0x61cc4580
mov ecx, 0x2f
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x38]
mov dword [esp], edx
call sym._strchr
test eax, eax
jne 0x61cc4550
mov edx, 0x5c
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x38]
mov dword [esp], ecx
call sym._strchr
test eax, eax
jne 0x61cc4550
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx]
sub al, 0x41
cmp al, 0x19
setbe dl
sub al, 0x20
cmp al, 0x19
setbe al
or eax, edx
test al, 1
je 0x61cc4580
mov ecx, dword [ebp - 0x38]
cmp byte [ecx + 1], 0x3a
jne 0x61cc4580
jmp 0x61cc4550
mov eax, dword [esi + 0x10]
xor ebx, ebx
test eax, eax
je 0x61cc4550
jmp 0x61cc47c1
inc ebx
mov eax, dword [esi + ebx*4 + 0x10]
test eax, eax
je 0x61cc460e
lea edx, [ebp - 0x10]
mov eax, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov eax, dword [esi + ebx*4 + 0x10]
mov dword [esp], eax
call sym.libintl_8.dll__nl_find_msg
test eax, eax
mov edi, eax
je 0x61cc47b4
mov esi, dword [esi + ebx*4 + 0x10]
jmp 0x61cc4605
cmp dword [ebp + 0x1c], 5
mov dword [ebp - 0x28], str.LC_TIME
je 0x61cc4488
jl 0x61cc4953
cmp dword [ebp + 0x1c], 0x6c1
mov dword [ebp - 0x28], str.LC_MESSAGES
je 0x61cc4488
mov dword [ebp - 0x28], str.LC_XXX
jmp 0x61cc4488
mov dword [esp], str.LANGUAGE
call sym._getenv
test eax, eax
je 0x61cc484c
cmp byte [eax], 0
mov ecx, eax
jne 0x61cc44ca
mov esi, dword [ebp - 0x2c]
test esi, esi
jne 0x61cc485a
mov ecx, ebx
jmp 0x61cc44ca
call sym.libintl_8.dll__nl_language_preferences_default
test eax, eax
mov ecx, eax
jne 0x61cc44ca
mov ecx, ebx
jmp 0x61cc44ca
mov eax, dword [sym.libintl_8.dll_libintl_nl_current_default_domain]
mov dword [ebp + 8], eax
jmp 0x61cc43c7
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x61cc4454
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 4]
mov dword [ebp - 0x1c], edx
movzx ecx, byte [edx]
cmp cl, 0x2f
setne al
xor edx, edx
cmp cl, 0x5c
setne dl
test eax, edx
je 0x61cc445b
sub cl, 0x41
cmp cl, 0x19
seta al
sub cl, 0x20
xor edx, edx
cmp cl, 0x19
seta dl
test eax, edx
je 0x61cc4970
mov eax, dword [ebp - 0x1c]
mov esi, 0x105
mov dword [esp], eax
call sym._strlen
lea edi, [eax + 1]
jmp 0x61cc48f1
call sym.__errno
cmp dword [eax], 0x22
jne 0x61cc4982
mov eax, esi
shr eax, 1
lea esi, [esi + eax + 0x20]
lea eax, [esi + edi + 0x1e]
and eax, 0xfffffff0
call fcn.61ccab68
lea ebx, [esp + 0x23]
and ebx, 0xfffffff0
call sym.__errno
mov dword [eax], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._getcwd
test eax, eax
je 0x61cc48db
mov dword [esp], ebx
xor eax, eax
mov dword [esp + 4], eax
call sym._strchr
mov edx, 0x61ccc0fb
call sym._stpcpy_1
mov edx, dword [ebp - 0x1c]
call sym._stpcpy_1
mov dword [ebp - 0x1c], ebx
jmp 0x61cc445b
mov dword [ebp - 0x14], 0
jmp 0x61cc4454
mov dword [ebp - 0x28], str.LC_NUMERIC
jmp 0x61cc4488
mov dword [ebp - 0x28], 0x61ccc136
mov edi, dword [ebp + 0x1c]
test edi, edi
jmp 0x61cc481f
mov ecx, dword [ebp - 0x1c]
cmp byte [ecx + 1], 0x3a
jne 0x61cc48c6
jmp 0x61cc445b
mov dword [esp], sym.libintl_8.dll__nl_state_lock
call sym.libintl_8.dll_libintl_rwlock_unlock
cmp dword [0x61cce0f0], 1
je 0x61cc49ac
mov dword [esp], str.GETTEXT_LOG_UNTRANSLATED
call sym._getenv
test eax, eax
je 0x61cc49ac
cmp byte [eax], 0
jne 0x61cc49d9
call sym.__errno
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x61cc46ec
cmp dword [ebp + 0x18], 1
je 0x61cc46ec
mov eax, dword [ebp + 0x10]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x10], ecx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], ecx
mov edx, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.libintl_8.dll__nl_log_untranslated
jmp 0x61cc49ac
call sym.libintl_8.dll__nl_locale_name_default
mov dword [ebp - 0x2c], 1
mov ebx, eax
jmp 0x61cc44ab
mov ebx, dword [esi + 8]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x40], ecx
call sym._plural_eval
mov esi, eax
xor eax, eax
cmp dword [ebx + 0x88], esi
seta al
neg eax
and esi, eax
dec esi
mov eax, edi
cmp esi, 0xffffffff
je 0x61cc4a61
mov edx, dword [ebp - 0x40]
lea ebx, [edi + edx]
mov dword [esp], eax
xor ecx, ecx
mov dword [esp + 4], ecx
call sym._strchr
inc eax
cmp ebx, eax
jbe 0x61cc4a78
dec esi
cmp esi, 0xffffffff
jne 0x61cc4a48
mov edi, eax
jmp 0x61cc46de
mov ecx, dword [ebp - 0x3c]
mov dword [esp], ecx
call sym._free
jmp 0x61cc46c9
mov eax, edi
mov edi, eax
jmp 0x61cc46de