Function at 0x4a78cd
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x24
mov dword [ebp - 8], 0
cmp dword [ebp + 8], 0
je 0x4a7c65
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x4a7c65
mov eax, dword [ebp + 8]
cmp byte [eax], 0x2f
je 0x4a7930
sub esp, 0xc
mov eax, dword [ebp + 8]
movsx eax, byte [eax]
push eax
call sub.msvcrt.dll_isalpha
add esp, 0x10
test eax, eax
je 0x4a7946
mov eax, dword [ebp + 8]
inc eax
cmp byte [eax], 0x3a
jne 0x4a7946
mov eax, dword [ebp + 8]
add eax, 2
cmp byte [eax], 0x2f
je 0x4a7930
mov eax, dword [ebp + 8]
add eax, 2
cmp byte [eax], 0x5c
je 0x4a7930
jmp 0x4a7946
sub esp, 0xc
push dword [ebp + 8]
call fcn.004a74f0
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x4a7c53
cmp dword [ebp + 0xc], 0
je 0x4a7c53
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0
jne 0x4a7a91
sub esp, 0xc
push str.LANGUAGE
call sub.msvcrt.dll_getenv
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4a7a91
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0
je 0x4a7a91
mov dword [ebp - 0x1c], 1
sub esp, 0xc
push dword [ebp - 0x18]
call sub.msvcrt.dll_strlen
add esp, 4
inc eax
push eax
call sub.msvcrt.dll_malloc
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4a79be
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
sub esp, 8
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call sub.msvcrt.dll_strcpy
add esp, 0x10
sub esp, 8
push 0x3a
push dword [ebp - 0x10]
call sub.msvcrt.dll_strchr
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4a79ee
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
sub esp, 0xc
push 0x109
call sub.msvcrt.dll_malloc
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4a7a20
sub esp, 4
push 0x104
push dword [ebp - 0xc]
push 0
call sub.KERNEL32.dll_GetModuleFileNameA
add esp, 4
test eax, eax
jne 0x4a7a48
sub esp, 0xc
push dword [ebp - 0x10]
call sub.msvcrt.dll_free
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
sub esp, 8
push 0x5c
push dword [ebp - 0xc]
call sub.msvcrt.dll_strrchr
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x4a7a89
sub esp, 0xc
push dword [ebp - 0x10]
call sub.msvcrt.dll_free
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
jmp 0x4a7af6
sub esp, 4
push str.Install_Directory
push dword [ebp + 0xc]
push 0x4f8e7e
call fcn.004a8392
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4a7abe
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
sub esp, 4
push str.Lang
push dword [ebp + 0xc]
push 0
call fcn.004a8392
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4a7af6
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
sub esp, 8
push 0x2e
push dword [ebp - 0x10]
call sub.msvcrt.dll_strchr
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4a7b15
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_strlen
add esp, 4
mov ebx, eax
push dword [ebp + 8]
call sub.msvcrt.dll_strlen
add esp, 4
add ebx, eax
push dword [ebp - 0x10]
call sub.msvcrt.dll_strlen
add esp, 4
lea eax, [ebx + eax]
add eax, 0xa
push eax
call sub.msvcrt.dll_malloc
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4a7b7d
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_free
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x10]
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
sub esp, 8
push 0x4f8e96
sub esp, 0xc
push dword [ebp - 0x10]
sub esp, 0xc
push str..nls_
sub esp, 0xc
push dword [ebp + 8]
sub esp, 0xc
push 0x4f8ea0
sub esp, 0xc
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call fcn.004a06ff
add esp, 0x14
push eax
call fcn.004a06ff
add esp, 0x14
push eax
call fcn.004a06ff
add esp, 0x14
push eax
call fcn.004a06ff
add esp, 0x14
push eax
call fcn.004a06ff
add esp, 0x14
push eax
call sub.msvcrt.dll_strcpy
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_free
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x10]
call sub.msvcrt.dll_free
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0
je 0x4a7c1e
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x2f
jne 0x4a7c17
mov eax, dword [ebp - 0x18]
mov byte [eax], 0x5c
lea eax, [ebp - 0x18]
inc dword [eax]
jmp 0x4a7c01
sub esp, 0xc
push dword [ebp - 0x14]
call fcn.004a74f0
add esp, 0x10
mov dword [ebp - 8], eax
sub esp, 0xc
push dword [ebp - 0x14]
call sub.msvcrt.dll_free
add esp, 0x10
cmp dword [ebp - 8], 0
jne 0x4a7c53
cmp dword [ebp - 0x1c], 1
jne 0x4a7c53
lea eax, [ebp - 0x1c]
inc dword [eax]
jmp 0x4a7957
cmp dword [ebp - 8], 0
jne 0x4a7c65
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4a7cec
cmp dword [0x4fdea0], 0
je 0x4a7cdd
sub esp, 0xc
mov eax, dword [0x4fdea0]
push dword [eax]
call sub.msvcrt.dll_free
add esp, 0x10
sub esp, 0xc
mov eax, dword [0x4fdea0]
push dword [eax + 0xc]
call sub.msvcrt.dll_free
add esp, 0x10
mov eax, dword [0x4fdea0]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x4a7cc2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
sub esp, 0xc
push dword [ebp - 0x1c]
call sub.msvcrt.dll_free
add esp, 0x10
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
jmp 0x4a7c9e
sub esp, 0xc
push dword [0x4fdea0]
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [0x4fdea0], 0
mov eax, dword [ebp - 8]
mov dword [0x4fdea0], eax
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 4]
leave
ret