Function at 0x6861f580
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x6861f5d0
mov edx, 0x3d
mov dword [esp + 4], edx
mov dword [esp], ebx
call sym._strchr
test eax, eax
je 0x6861f600
mov edi, str.strchr__variable_____NULL
mov esi, str.g_setenv_utf8
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], 0x686993b9
call sym.libglib_2.0_0.dll_g_return_if_fail_warning
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str.g_setenv_utf8
mov edx, str.variable___NULL
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], 0x686993b9
call sym.libglib_2.0_0.dll_g_return_if_fail_warning
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
mov edi, 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call sym.libglib_2.0_0.dll_g_utf8_validate
test eax, eax
je 0x6861f744
mov eax, dword [ebp + 0xc]
xor esi, esi
mov ecx, 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.libglib_2.0_0.dll_g_utf8_validate
test eax, eax
je 0x6861f770
mov edx, dword [ebp + 0x10]
test edx, edx
jne 0x6861f65f
mov dword [esp], ebx
call sym.libglib_2.0_0.dll_g_getenv_utf8
mov edx, eax
mov eax, 1
test edx, edx
jne 0x6861f5c5
xor eax, eax
xor edi, edi
xor esi, esi
mov ecx, 0xffffffff
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
xor esi, esi
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call sym.libglib_2.0_0.dll_g_utf8_to_utf16
xor edx, edx
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 8], esi
mov edi, eax
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym.libglib_2.0_0.dll_g_utf8_to_utf16
xor edx, edx
mov dword [esp + 0xc], edx
mov dword [esp], ebx
xor ebx, ebx
mov esi, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, 0x686994af
mov dword [esp + 4], eax
call sym.libglib_2.0_0.dll_g_strconcat
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov edx, eax
xor eax, eax
mov dword [esp], edx
mov dword [ebp - 0x1c], edx
mov dword [esp + 0xc], eax
call sym.libglib_2.0_0.dll_g_utf8_to_utf16
mov edx, dword [ebp - 0x1c]
mov dword [esp], edx
mov ebx, eax
call sym.libglib_2.0_0.dll_g_free
mov dword [esp], ebx
call sym.__wputenv
mov dword [esp], ebx
call sym.libglib_2.0_0.dll_g_free
mov dword [esp + 4], esi
mov dword [esp], edi
call sym._SetEnvironmentVariableW_8
sub esp, 8
test eax, eax
setne dl
movzx eax, dl
mov dword [ebp - 0x1c], eax
mov dword [esp], edi
call sym.libglib_2.0_0.dll_g_free
mov dword [esp], esi
call sym.libglib_2.0_0.dll_g_free
mov eax, dword [ebp - 0x1c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, str.g_utf8_validate__variable___1__NULL_
mov ecx, str.g_setenv_utf8
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], 0x686993b9
call sym.libglib_2.0_0.dll_g_return_if_fail_warning
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str.g_setenv_utf8
mov edx, str.g_utf8_validate__value___1__NULL_
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], 0x686993b9
call sym.libglib_2.0_0.dll_g_return_if_fail_warning
xor eax, eax
jmp 0x6861f5c5