Function at 0x44bfad
Capabilities:
Query environment variable

Disassembly:
push ebp
mov eax, 0x2340
mov ebp, esp
push edi
push esi
push ebx
call fcn.00459430
lea eax, [ebp - 0x203c]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x10]
call sub.msvcrt.dll__fstat
pop ebx
inc eax
pop esi
je 0x44cbb1
mov eax, dword [ebp - 0x2028]
cmp eax, 0x2000
ja 0x44bff3
lea edx, [ebp - 0x200c]
mov dword [ebp - 0x2308], edx
jmp 0x44c000
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [ebp - 0x2308], eax
cmp dword [ebp - 0x2308], 0
je 0x44cbb1
mov dword [ebp - 0x2318], 0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x2324], 0
add ecx, 0x9c
add esi, 0x6c
mov dword [ebp - 0x2314], ecx
mov dword [ebp - 0x22e0], 0
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 1
pop edx
je 0x44c040
test eax, eax
je 0x44cb97
mov dword [ebp - 0x2338], 0
lea ebx, [ebp - 0xc]
mov dword [ebp - 0x234c], ebx
cmp dword [ebp - 0x230c], 8
jne 0x44c2b1
push dword [ebp - 0x2308]
push str.include
call sub.msvcrt.dll_strcmp
pop ebx
test eax, eax
pop edi
jne 0x44c26b
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
sub eax, 7
cmp eax, 1
pop ecx
ja 0x44cb11
mov dword [ebp - 0x233c], 0
mov esi, dword [ebp - 0x2308]
xor ebx, ebx
mov dword [ebp - 0x2340], 0
cmp byte [esi], 0
je 0x44c15e
cmp byte [esi], 0x25
jne 0x44c15a
inc esi
movsx eax, byte [esi]
cmp eax, 0x48
je 0x44c10a
jg 0x44c103
cmp eax, 0x25
je 0x44c15a
jmp 0x44c15b
cmp eax, 0x4c
je 0x44c128
jmp 0x44c15b
push str.HOME
call sub.msvcrt.dll_getenv
mov dword [ebp - 0x233c], eax
test eax, eax
pop edx
je 0x44c15b
cld
mov edi, dword [ebp - 0x233c]
jmp 0x44c14b
push str.Compose
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
call fcn.004347e3
pop ecx
test eax, eax
mov dword [ebp - 0x2340], eax
pop edi
je 0x44c15b
cld
mov edi, dword [ebp - 0x2340]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea ebx, [ecx + ebx - 1]
jmp 0x44c15b
inc ebx
inc esi
jmp 0x44c0e7
lea eax, [ebx + 1]
push eax
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x2344], eax
test eax, eax
pop edx
mov ebx, eax
je 0x44cb11
mov esi, dword [ebp - 0x2308]
cmp byte [esi], 0
je 0x44c225
movzx eax, byte [esi]
lea esi, [esi + 1]
cmp al, 0x25
jne 0x44c21d
movsx eax, byte [esi]
cmp eax, 0x48
je 0x44c1b3
jg 0x44c1a6
cmp eax, 0x25
je 0x44c1ad
jmp 0x44c217
cmp eax, 0x4c
je 0x44c1e0
jmp 0x44c217
mov byte [ebx], 0x25
inc ebx
jmp 0x44c217
cmp dword [ebp - 0x233c], 0
je 0x44c217
push dword [ebp - 0x233c]
push ebx
call sub.msvcrt.dll_strcpy
pop ecx
cld
or ecx, 0xffffffff
xor eax, eax
pop edi
mov edi, dword [ebp - 0x233c]
repne scasb al, byte es:[edi]
not ecx
lea ebx, [ecx + ebx - 1]
jmp 0x44c217
cmp dword [ebp - 0x2340], 0
je 0x44c217
push dword [ebp - 0x2340]
push ebx
call sub.msvcrt.dll_strcpy
pop eax
cld
mov edi, dword [ebp - 0x2340]
xor eax, eax
or ecx, 0xffffffff
pop edx
repne scasb al, byte es:[edi]
not ecx
lea ebx, [ecx + ebx - 1]
push dword [ebp - 0x2340]
call sub.msvcrt.dll_free
pop edi
inc esi
jmp 0x44c17e
mov byte [ebx], al
inc ebx
jmp 0x44c17e
mov byte [ebx], 0
mov edi, dword [ebp - 0x2344]
test edi, edi
je 0x44cb11
push 0x4a4303
push edi
call fcn.00414199
pop edx
mov ebx, eax
pop ecx
push edi
call sub.msvcrt.dll_free
pop eax
test ebx, ebx
je 0x44cb11
push dword [ebp + 0xc]
push ebx
call fcn.0044bfad
pop edi
pop eax
push ebx
call sub.msvcrt.dll_fclose
pop esi
jmp 0x44c00d
push dword [ebp - 0x2308]
push str.None
call sub.msvcrt.dll_strcmp
pop ecx
test eax, eax
pop ebx
jne 0x44c2b1
mov dword [ebp - 0x2310], 0
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
mov edi, 0xf
call fcn.0044bce8
pop edx
mov dword [ebp - 0x230c], eax
jmp 0x44c3e4
mov dword [ebp - 0x2310], 0
xor edi, edi
cmp dword [ebp - 0x230c], 5
mov dword [ebp - 0x231c], 0
jne 0x44c2f6
mov dword [ebp - 0x231c], 1
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
pop ebx
mov dword [ebp - 0x230c], eax
cmp dword [ebp - 0x230c], 6
sete al
cmp dword [ebp - 0x230c], 8
sete dl
or eax, edx
test al, 1
je 0x44c3d6
cmp dword [ebp - 0x230c], 6
mov dword [ebp - 0x2320], 0
jne 0x44c356
mov dword [ebp - 0x2320], 1
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 8
pop ecx
jne 0x44cb11
cmp dword [str.Ctrl], 0
mov ebx, 0x467b30
je 0x44cb11
push dword [ebx]
push dword [ebp - 0x2308]
call sub.msvcrt.dll_strcmp
pop ecx
test eax, eax
pop edx
je 0x44c383
add ebx, 8
cmp dword [ebx], 0
jmp 0x44c362
mov eax, dword [ebx + 4]
test eax, eax
je 0x44cb11
or edi, eax
cmp dword [ebp - 0x2320], 0
je 0x44c3a3
not eax
and dword [ebp - 0x2310], eax
jmp 0x44c3a9
or dword [ebp - 0x2310], eax
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
pop edx
cmp eax, 6
sete dl
mov dword [ebp - 0x230c], eax
cmp eax, 8
sete al
jmp 0x44c30a
cmp dword [ebp - 0x231c], 0
je 0x44c3e4
mov edi, 0xf
cmp dword [ebp - 0x230c], 3
jne 0x44cb11
lea edx, [ebp - 0x22e0]
mov eax, dword [ebp + 8]
push edx
mov edx, dword [ebp - 0x2308]
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 8
pop ebx
jne 0x44cb11
mov edx, dword [ebp - 0x2308]
lea ecx, [ebp - 0x22e0]
mov eax, dword [ebp + 8]
push ecx
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 4
pop ecx
jne 0x44cb11
push dword [ebp - 0x2308]
call fcn.00450f36
pop edx
test eax, eax
je 0x44cb1e
inc dword [ebp - 0x2338]
mov ebx, dword [ebp - 0x234c]
mov dword [ebx - 0x22b8], eax
mov eax, dword [ebp - 0x2310]
mov dword [ebx - 0x22c0], edi
mov dword [ebx - 0x22bc], eax
add ebx, 0xc
cmp dword [ebp - 0x2338], 9
mov dword [ebp - 0x234c], ebx
jg 0x44cb1e
lea edx, [ebp - 0x22e0]
mov eax, dword [ebp + 8]
push edx
mov edx, dword [ebp - 0x2308]
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 2
pop edi
jne 0x44c07c
mov edx, dword [ebp - 0x2308]
lea ecx, [ebp - 0x22e0]
mov eax, dword [ebp + 8]
push ecx
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 7
pop ebx
jne 0x44c5db
cld
mov edi, dword [ebp - 0x2308]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ebx, ecx
not ebx
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
add eax, ebx
cmp eax, edx
jle 0x44c551
test edx, edx
mov eax, 0x400
je 0x44c536
push edx
fnstcw word [ebp - 0x22fe]
fild dword [esp]
add esp, 4
movzx eax, word [ebp - 0x22fe]
fmul dword [0x4a430c]
or ah, 0xc
mov word [ebp - 0x2300], ax
fldcw word [ebp - 0x2300]
fistp dword [ebp - 0x2304]
fldcw word [ebp - 0x22fe]
mov eax, dword [ebp - 0x2304]
mov dword [esi + 0x1c], eax
push eax
push dword [esi + 4]
call sub.msvcrt.dll_realloc
pop edx
test eax, eax
pop ecx
mov dword [esi + 4], eax
je 0x44cb1e
jmp 0x44c4e5
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 4]
add edx, eax
mov dword [ebp - 0x2328], edx
add eax, ebx
mov dword [esi + 0x18], eax
push dword [ebp - 0x2308]
push edx
call sub.msvcrt.dll_strcpy
pop ebx
lea ecx, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
mov eax, dword [ebp + 8]
pop edi
push ecx
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 8
pop ecx
jne 0x44c5c9
push dword [ebp - 0x2308]
call fcn.00450f36
mov dword [ebp - 0x2324], eax
test eax, eax
pop edx
je 0x44cb1e
mov edx, dword [ebp - 0x2308]
lea ebx, [ebp - 0x22e0]
mov eax, dword [ebp + 8]
push ebx
call fcn.0044bce8
pop edi
mov dword [ebp - 0x230c], eax
cmp dword [ebp - 0x230c], 1
jbe 0x44c7d3
jmp 0x44cb1e
cmp dword [ebp - 0x230c], 8
jne 0x44cb11
push dword [ebp - 0x2308]
call fcn.00450f36
mov dword [ebp - 0x2324], eax
test eax, eax
pop ebx
je 0x44cb1e
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
mov dword [ebp - 0x230c], eax
cmp eax, 1
pop ecx
ja 0x44cb1e
push dword [ebp - 0x2324]
lea ebx, [ebp - 0x22f0]
lea edi, [ebp - 0x22fc]
call fcn.00443fe0
mov dword [ebp - 0x22e4], eax
lea ecx, [ebp - 0x22ec]
lea eax, [ebp - 0x22e4]
mov dword [esp], 1
lea edx, [ebp - 0x22dc]
push ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x22fc], eax
lea eax, [ebp - 0x22e8]
push ebx
xor ebx, ebx
mov dword [ebp - 0x22ec], eax
lea eax, [ebp - 0x22f4]
push eax
mov dword [ebp - 0x22f4], edx
lea edx, [ebp - 0x22f8]
push edx
push edi
push dword [ecx + 0x60]
mov dword [ebp - 0x22f8], 1
mov dword [ebp - 0x22f0], 6
call fcn.0042f25b
add esp, 0x1c
test eax, eax
jne 0x44c736
push 1
lea eax, [ebp - 0x204c]
lea edx, [ebp - 0x22ec]
mov dword [ebp - 0x22f4], eax
mov eax, 6
lea ebx, [ebp - 0x22dc]
sub eax, dword [ebp - 0x22f0]
push edx
lea ecx, [ebp - 0x22f0]
mov dword [ebp - 0x22fc], ebx
lea ebx, [ebp - 0x22f4]
push ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x22f8], eax
mov eax, dword [ebp - 0x22e8]
push ebx
xor ebx, ebx
mov dword [ebp - 0x22ec], eax
lea eax, [ebp - 0x22f8]
push eax
push edi
push dword [edx + 0x54]
mov dword [ebp - 0x22f0], 7
call fcn.0042f25b
add esp, 0x1c
test eax, eax
jne 0x44c736
mov al, 7
sub eax, dword [ebp - 0x22f0]
mov ebx, eax
mov byte [ebp + eax - 0x204c], 0
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
add eax, ebx
inc eax
cmp eax, edx
jle 0x44c7a3
test edx, edx
mov eax, 0x400
je 0x44c788
push edx
fnstcw word [ebp - 0x22fe]
fild dword [esp]
add esp, 4
movzx eax, word [ebp - 0x22fe]
fmul dword [0x4a430c]
or ah, 0xc
mov word [ebp - 0x2300], ax
fldcw word [ebp - 0x2300]
fistp dword [ebp - 0x2304]
fldcw word [ebp - 0x22fe]
mov eax, dword [ebp - 0x2304]
mov dword [esi + 0x1c], eax
push eax
push dword [esi + 4]
call sub.msvcrt.dll_realloc
pop edi
test eax, eax
pop edx
mov dword [esi + 4], eax
je 0x44cb11
jmp 0x44c736
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 4]
add ecx, eax
mov dword [ebp - 0x2328], ecx
lea eax, [eax + ebx + 1]
mov dword [esi + 0x18], eax
lea eax, [ebp - 0x204c]
push ebx
push eax
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x2328]
add esp, 0xc
mov byte [eax + ebx], 0
push 0x7f
lea eax, [ebp - 0x214c]
push dword [ebp - 0x2328]
push eax
call fcn.0043e9a4
add esp, 0xc
cmp eax, 0x7f
mov ebx, eax
jne 0x44c7fa
mov word [ebp - 0x204e], 0
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
add eax, ebx
inc eax
cmp eax, edx
jle 0x44c869
test edx, edx
mov eax, 0x200
je 0x44c84c
push edx
fnstcw word [ebp - 0x22fe]
fild dword [esp]
add esp, 4
movzx eax, word [ebp - 0x22fe]
fmul dword [0x4a430c]
or ah, 0xc
mov word [ebp - 0x2300], ax
fldcw word [ebp - 0x2300]
fistp dword [ebp - 0x2304]
fldcw word [ebp - 0x22fe]
mov eax, dword [ebp - 0x2304]
mov dword [esi + 0x24], eax
add eax, eax
push eax
push dword [esi + 8]
call sub.msvcrt.dll_realloc
pop edx
test eax, eax
pop ecx
mov dword [esi + 8], eax
je 0x44cb11
jmp 0x44c7fa
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 8]
lea edx, [edx + eax*2]
mov dword [ebp - 0x232c], edx
lea eax, [eax + ebx + 1]
lea edx, [ebp - 0x214c]
mov dword [esi + 0x20], eax
lea eax, [ebx + ebx + 2]
push eax
push edx
push dword [ebp - 0x232c]
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x224c]
push 0xff
push dword [ebp - 0x2328]
push eax
call fcn.0043eb56
add esp, 0xc
cmp eax, 0xff
mov ebx, eax
jne 0x44c8c5
mov word [ebp - 0x1f4e], 0
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
add eax, ebx
inc eax
cmp eax, edx
jle 0x44c932
test edx, edx
mov eax, 0x400
je 0x44c917
push edx
fnstcw word [ebp - 0x22fe]
fild dword [esp]
add esp, 4
movzx eax, word [ebp - 0x22fe]
fmul dword [0x4a430c]
or ah, 0xc
mov word [ebp - 0x2300], ax
fldcw word [ebp - 0x2300]
fistp dword [ebp - 0x2304]
fldcw word [ebp - 0x22fe]
mov eax, dword [ebp - 0x2304]
mov dword [esi + 0x2c], eax
push eax
push dword [esi + 0xc]
call sub.msvcrt.dll_realloc
pop ecx
test eax, eax
pop edi
mov dword [esi + 0xc], eax
je 0x44cb11
jmp 0x44c8c5
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0xc]
add edx, eax
mov dword [ebp - 0x2330], edx
lea eax, [eax + ebx + 1]
lea edx, [ebp - 0x224c]
mov dword [esi + 0x28], eax
lea eax, [ebx + 1]
push eax
push edx
push dword [ebp - 0x2330]
call sub.msvcrt.dll_memcpy
mov dword [ebp - 0x2334], 0
mov ecx, dword [ebp - 0x2338]
add esp, 0xc
cmp dword [ebp - 0x2334], ecx
jge 0x44cb39
lea ebx, [ebp - 0xc]
mov dword [ebp - 0x2348], ebx
mov eax, dword [ebp - 0x2314]
mov edx, dword [eax]
test edx, edx
je 0x44c9e7
imul ecx, edx, 0x24
mov edi, dword [esi]
mov ebx, dword [ebp - 0x2348]
mov eax, dword [ecx + edi + 0x10]
cmp dword [ebx - 0x22b8], eax
jne 0x44c9c0
mov eax, dword [ecx + edi + 0xc]
cmp dword [ebx - 0x22bc], eax
jne 0x44c9c0
mov eax, dword [ecx + edi + 8]
cmp dword [ebx - 0x22c0], eax
je 0x44c9c8
imul eax, edx, 0x24
mov edx, dword [eax + edi]
jmp 0x44c98d
test edx, edx
je 0x44c9e7
imul edx, edx, 0x24
mov eax, dword [esi]
add edx, eax
mov dword [ebp - 0x2318], edx
add edx, 4
mov dword [ebp - 0x2314], edx
jmp 0x44caf0
mov ebx, dword [esi + 0x14]
cmp dword [esi + 0x10], ebx
jl 0x44ca7d
test ebx, ebx
mov edi, dword [esi]
mov eax, 0x100
je 0x44ca3a
push ebx
fnstcw word [ebp - 0x22fe]
fild dword [esp]
add esp, 4
movzx eax, word [ebp - 0x22fe]
fmul dword [0x4a430c]
or ah, 0xc
mov word [ebp - 0x2300], ax
fldcw word [ebp - 0x2300]
fistp dword [ebp - 0x2304]
fldcw word [ebp - 0x22fe]
mov eax, dword [ebp - 0x2304]
mov dword [esi + 0x14], eax
imul eax, eax, 0x24
push eax
push dword [esi]
call sub.msvcrt.dll_realloc
pop ecx
test eax, eax
pop edx
mov edx, eax
mov dword [esi], eax
je 0x44cb11
cmp dword [ebp - 0x2314], edi
jb 0x44c9e7
imul eax, ebx, 0x24
lea eax, [edi + eax]
cmp dword [ebp - 0x2314], eax
jae 0x44c9e7
sub edx, edi
add dword [ebp - 0x2314], edx
jmp 0x44c9e7
imul edx, dword [esi + 0x10], 0x24
mov ebx, dword [ebp - 0x2348]
mov ecx, dword [esi]
mov eax, dword [ebx - 0x22b8]
add edx, ecx
mov dword [ebp - 0x2318], edx
mov ecx, dword [ebp - 0x2318]
mov dword [edx + 0x10], eax
mov eax, dword [ebx - 0x22bc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx - 0x22c0]
mov dword [edx + 4], 0
mov dword [edx + 8], eax
mov edx, dword [ebp - 0x2314]
mov eax, dword [edx]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx], eax
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov eax, dword [esi + 0x10]
add ecx, 4
mov dword [ebp - 0x2314], ecx
mov dword [edx], eax
inc dword [esi + 0x10]
inc dword [ebp - 0x2334]
mov ebx, dword [ebp - 0x2338]
add dword [ebp - 0x2348], 0xc
cmp dword [ebp - 0x2334], ebx
jl 0x44c985
jmp 0x44cb39
cmp dword [ebp - 0x230c], 1
jbe 0x44c00d
lea eax, [ebp - 0x22e0]
mov edx, dword [ebp - 0x2308]
push eax
mov eax, dword [ebp + 8]
call fcn.0044bce8
pop edx
cmp eax, 1
jmp 0x44cb18
mov ebx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x2318]
sub dword [ebp - 0x232c], ebx
sub dword [ebp - 0x2328], eax
sar dword [ebp - 0x232c], 1
mov ecx, dword [ebp - 0x2328]
mov eax, dword [ebp - 0x232c]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x2318]
mov dword [edx + 0x18], eax
mov edx, dword [esi + 0xc]
mov eax, dword [ebp - 0x2324]
sub dword [ebp - 0x2330], edx
cmp dword [ebp - 0x2338], 0
mov dword [ecx + 0x20], eax
mov ebx, dword [ebp - 0x2330]
mov dword [ecx + 0x1c], ebx
jns 0x44c00d
lea eax, [ebp - 0x200c]
cmp dword [ebp - 0x2308], eax
je 0x44cbb1
push dword [ebp - 0x2308]
call sub.msvcrt.dll_free
pop edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret