Function at 0x4249b0
Capabilities:
Query environment variable

Disassembly:
push 0xffffffffffffffff
push 0x46b5ba
mov eax, dword fs:[0]
push eax
mov eax, 0x1088
call fcn.00459b10
mov eax, dword [0x488e40]
xor eax, esp
mov dword [esp + 0x1080], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x488e40]
xor eax, esp
push eax
lea eax, [esp + 0x109c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x10ac]
mov dword [esp + 0x24], eax
mov dword [eax], 0
lea eax, [esp + 0x34]
mov esi, ecx
push eax
push esi
mov dword [esp + 0x34], esi
call fcn.004181c0
add esp, 8
test al, al
jne 0x424a60
push esi
push str.Error_opening___s_.
mov esi, 0x840
lea edi, [esp + 0x5c]
call fcn.00416ab0
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, edi
call fcn.00417350
add esp, 4
push 0
mov esi, eax
push 0x10
push esi
call fcn.00441f2b
test esi, esi
je 0x424a59
push esi
call fcn.00454dd4
add esp, 4
xor al, al
jmp 0x424d24
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [str.UserDir]
mov dword [esp + 0x20], 0
mov ebp, ecx
lea ebx, [edx + ecx]
mov dword [esp + 0x1c], 1
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x424a85
sub eax, esi
mov edi, eax
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0x30], edi
mov byte [esp + 0x1b], dl
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x50], al
jae 0x424de8
cmp ebp, ebx
jae 0x424ad7
movsx eax, byte [ebp]
push eax
call fcn.00454c57
add esp, 4
test eax, eax
je 0x424ad7
cmp byte [ebp], 0xa
jne 0x424ad0
add dword [esp + 0x1c], 1
add ebp, 1
cmp ebp, ebx
jb 0x424ab4
cmp ebp, ebx
lea esi, [esp + 0x54]
jae 0x424b02
nop
lea ecx, [esp + 0x893]
cmp esi, ecx
jae 0x424b02
mov al, byte [ebp]
cmp al, 0xd
je 0x424b02
cmp al, 0xa
je 0x424b02
mov byte [esi], al
add ebp, 1
add esi, 1
cmp ebp, ebx
jb 0x424ae0
mov byte [esi], 0
sub esi, 1
lea edx, [esp + 0x54]
cmp esi, edx
jb 0x424b2e
movsx eax, byte [esi]
push eax
call fcn.00454c57
add esp, 4
test eax, eax
je 0x424b2e
mov byte [esi], 0
sub esi, 1
lea ecx, [esp + 0x54]
cmp esi, ecx
jae 0x424b10
mov al, byte [esp + 0x54]
test al, al
je 0x424ddc
cmp al, 0x2f
je 0x424ddc
cmp al, 0x23
je 0x424ddc
cmp al, 0x3a
je 0x424ddc
cmp al, 0x3b
je 0x424ddc
cmp al, 0x27
je 0x424ddc
mov edx, dword [str.UserDir]
push edi
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.0045657b
add esp, 0xc
test eax, eax
jne 0x424c77
movsx ecx, byte [esp + edi + 0x54]
push ecx
call fcn.00454c57
add esp, 4
test eax, eax
jne 0x424b9c
cmp byte [esp + edi + 0x54], 0x2c
jne 0x424c77
movsx edx, byte [esp + edi + 0x55]
lea esi, [esp + edi + 0x55]
push edx
call fcn.00454c57
add esp, 4
test eax, eax
je 0x424bc6
movsx eax, byte [esi + 1]
add esi, 1
push eax
call fcn.00454c57
add esp, 4
test eax, eax
jne 0x424bb2
cmp byte [esi], 0
je 0x424ca5
push 0x800
lea ecx, [esp + 0x898]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
test eax, eax
push 0xc
je 0x424c1b
call fcn.0042f8c1
add esp, 4
mov dword [esp + 0x28], eax
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x10a4], ecx
je 0x424c4c
push ecx
lea edx, [esp + 0x898]
mov edi, eax
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
call fcn.00425110
jmp 0x424c4e
call fcn.0042f8c1
add esp, 4
mov dword [esp + 0x28], eax
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x10a4], 1
je 0x424c4c
push ecx
mov edx, esi
mov edi, eax
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
call fcn.00425110
jmp 0x424c4e
xor eax, eax
mov edi, eax
test edi, edi
mov dword [esp + 0x10a4], 0xffffffff
jne 0x424dc6
push eax
push eax
push 1
push 0xc0000017
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov esi, 1
lea esp, [esp]
mov eax, dword [esi*4 + 0x48a5fc]
push eax
lea edx, [esp + 0x58]
push edx
call fcn.00454706
add esp, 8
test eax, eax
je 0x424d4c
add esi, 1
cmp esi, 9
jl 0x424c80
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push ecx
push edx
push str.Error_found_in___s__at_line__u.
mov esi, 0x840
lea edi, [esp + 0x60]
call fcn.00416ab0
add esp, 0xc
push 0
push 0x10
mov eax, edi
push eax
call fcn.00441f2b
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00424df0
mov ecx, dword [esp + 0x40]
mov bl, byte [esp + 0x1f]
add esp, 4
test ecx, ecx
je 0x424cf9
push ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x38]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x424d12
push eax
call esi
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x424d22
cmp eax, 0xffffffff
je 0x424d22
push eax
call esi
mov al, bl
mov ecx, dword [esp + 0x109c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1080]
xor ecx, esp
call fcn.00454016
add esp, 0x1094
ret
cmp byte [esp + esi + 0x48], 0
jne 0x424ca5
push 0xc
call fcn.0042f8c1
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x10a4], 2
je 0x424d96
test esi, esi
mov dword [eax], 0
mov dword [eax + 4], esi
mov dword [eax + 8], 0
jl 0x424d98
push esi
xor edx, edx
xor ecx, ecx
mov edi, eax
call fcn.00425110
jmp 0x424d98
xor eax, eax
test eax, eax
mov dword [esp + 0x10a4], 0xffffffff
mov edi, eax
jne 0x424db8
push eax
push eax
push 1
push 0xc0000017
call dword [sym.imp.KERNEL32.dll_RaiseException]
cmp esi, 9
mov byte [esp + esi + 0x48], 1
jge 0x424ca5
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x424dd2
mov eax, dword [esp + 0x24]
mov dword [eax], edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x30]
cmp ebp, ebx
jb 0x424ab4
mov ecx, dword [esp + 0x3c]
mov bl, 1
jmp 0x424ce6