Function at 0x450540
Capabilities:
Query environment variable

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x453c38
push eax
mov dword fs:[0], esp
sub esp, 0x16c
push ebx
push esi
push str.CRYSTAL
call dword [sym.imp.MSVCR80.dll_getenv]
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x4505ca
cmp byte [esi], bl
je 0x4505ca
push 0x10
call fcn.00407a16
add esp, 4
mov dword [esp + 8], eax
cmp eax, ebx
mov dword [esp + 0x17c], ebx
je 0x4505b1
push 1
push esi
mov ecx, eax
call fcn.00448870
pop esi
pop ebx
mov ecx, dword [esp + 0x16c]
mov dword fs:[0], ecx
add esp, 0x178
ret
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x16c]
mov dword fs:[0], ecx
add esp, 0x178
ret
push 0x10
call fcn.00407a16
mov esi, eax
add esp, 4
mov dword [esp + 8], esi
cmp esi, ebx
mov dword [esp + 0x17c], 1
je 0x450610
mov eax, 4
cmp eax, ebx
mov dword [esi], ebx
mov dword [esi + 4], eax
mov dword [esi + 8], eax
je 0x45060b
imul eax, eax, 0x7c
push eax
call fcn.00415f80
add esp, 4
mov dword [esi + 0xc], eax
jmp 0x450612
mov dword [esi + 0xc], ebx
jmp 0x450612
xor esi, esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], 0x40
mov dword [esp + 0x58], 0x46111c
mov dword [esp + 0x170], ebx
lea eax, [esp + 0x58]
push eax
mov ecx, 0x80000001
mov dword [esp + 0x180], 2
call fcn.004500b0
add esp, 4
test al, al
je 0x450691
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x18]
lea ecx, [esp + 0x58]
call eax
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.00448870
push 1
push eax
mov ecx, esi
mov byte [esp + 0x184], 3
call fcn.004487e0
lea ecx, [esp + 0xc]
mov byte [esp + 0x17c], 2
call fcn.00428780
lea ecx, [esp + 0x58]
push ecx
mov ecx, 0x80000002
call fcn.004500b0
add esp, 4
test al, al
je 0x4506e2
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x18]
lea ecx, [esp + 0x58]
call eax
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.00448870
push 1
push eax
mov ecx, esi
mov byte [esp + 0x184], 4
call fcn.004487e0
lea ecx, [esp + 0xc]
mov byte [esp + 0x17c], 2
call fcn.00428780
cmp dword [esi], ebx
mov dword [esp + 0x17c], 0xffffffff
mov dword [esp + 0x58], 0x46111c
lea ecx, [esp + 0x58]
jbe 0x450707
call fcn.0041e9c0
jmp 0x4507f0
call fcn.0041e9c0
push 1
push ebx
push ebx
push 0x457e8c
mov ecx, esi
call fcn.004486a0
push 0x104
lea ecx, [esp + 0x5c]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x58]
push 0x5c
push edx
call dword [sym.imp.MSVCR80.dll_strrchr]
add esp, 8
cmp eax, ebx
je 0x450744
mov byte [eax + 1], bl
push 1
push ebx
push ebx
lea eax, [esp + 0x64]
push eax
mov ecx, esi
call fcn.004486a0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], 0x40
mov dword [esp + 0x54], ebx
mov dword [esp + 0x1c], 0x455778
lea ecx, [esp + 0x1c]
push ecx
push 0x26
mov dword [esp + 0x184], 5
call fcn.0044ff50
add esp, 8
test al, al
je 0x4507c4
push 0x5c
lea ecx, [esp + 0x20]
call fcn.0041e0b0
push 0xffffffffffffffff
push 0x45a794
mov ecx, eax
call fcn.0041e020
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x18]
push 1
push ebx
push ebx
lea ecx, [esp + 0x28]
call eax
push eax
mov ecx, esi
call fcn.004486a0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x17c], 0xffffffff
mov dword [esp + 0x1c], 0x45569c
call fcn.0041e9c0
push 1
push ebx
push ebx
push str.C:Program_Filescrystalspace
mov ecx, esi
call fcn.004486a0
mov ecx, dword [esp + 0x174]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x178
ret