Function at 0x404250
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44c226
mov eax, dword fs:[0]
push eax
sub esp, 0x234
mov eax, dword [0x4672b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push 0x208
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x218]
push 0
push eax
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x234], 1
call fcn.0042a3f0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea eax, [ebp - 0x218]
push eax
push str.EXEPRESS_EXECUTABLE_PATH
call esi
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0042a3f0
mov eax, dword [ebx + 0x14]
add eax, 0xc04
push eax
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.0042f9f7
add esp, 0x18
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea eax, [ebp - 0x218]
push eax
push str.EXEPRESS_EXTRACT_PATH
call esi
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0042a3f0
add esp, 0xc
mov ecx, 0x450d50
cmp byte [0x469ccc], 0
mov eax, 0x450d4c
cmove eax, ecx
push eax
push 0x450d54
call esi
mov eax, dword [ebx + 0x14]
add eax, 0x121c
cmp word [eax], 0
je 0x404488
lea ecx, [ebp - 0x218]
push ecx
push eax
call fcn.0041f2f0
add esp, 8
test eax, eax
je 0x404488
xor eax, eax
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x218]
mov dword [ebp - 0x21c], 0
push eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
call fcn.00408a60
mov dword [ebp - 4], 0
lea eax, [ebp - 0x230]
mov esi, dword [0x46a110]
push eax
push esi
push dword [0x46a10c]
lea eax, [ebp - 0x238]
push eax
call fcn.00403180
add esp, 0x10
mov edi, dword [eax]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.00403400
cmp edi, esi
jne 0x404488
cmp byte [0x469ccc], 0
je 0x404450
mov eax, dword [ebx + 0x14]
cmp word [eax + 0x82c], 0
je 0x404450
push 0x450d80
add eax, 0x1424
push 0x104
push eax
call fcn.0042fd02
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 0x82c]
add eax, 0x1424
push ecx
push 0x104
push eax
call fcn.0042fd02
add esp, 0x18
push dword [ebp - 0x23c]
mov ecx, dword [ebx + 0x14]
push 1
push 0
lea eax, [ecx + 0x1424]
push eax
lea eax, [ebp - 0x218]
push eax
movzx eax, byte [ecx + 0x162c]
push eax
call fcn.0041d070
xor ecx, ecx
add esp, 0x18
test eax, eax
setns cl
mov dword [ebp - 0x234], ecx
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x23c], 0
cmp dword [eax + 0x2f86c], 0
jle 0x40463b
xor ecx, ecx
mov dword [ebp - 0x238], ecx
nop word [eax + eax]
lea edx, [ebp - 0x218]
add ecx, 0x2f870
push edx
add eax, ecx
push eax
call fcn.0041f2f0
add esp, 8
test eax, eax
je 0x40460d
xor eax, eax
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x218]
mov dword [ebp - 0x21c], 0
push eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
call fcn.00408a60
mov dword [ebp - 4], 1
mov esi, dword [0x46a10c]
mov ebx, dword [0x46a110]
mov edi, dword [ebp - 0x230]
cmp esi, ebx
je 0x40456a
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
mov ecx, esi
cmovae eax, edi
cmp dword [esi + 0x14], 8
jb 0x40454a
mov ecx, dword [esi]
push dword [ebp - 0x220]
push eax
push dword [esi + 0x10]
push ecx
call fcn.00403040
add esp, 0x10
test al, al
jne 0x404568
add esi, 0x18
cmp esi, ebx
jne 0x404530
cmp esi, ebx
sete bl
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21c]
cmp eax, 8
jb 0x4045ae
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x4045a4
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40467e
push ecx
push edi
call fcn.00428dde
add esp, 8
xor eax, eax
mov dword [ebp - 0x220], 0
test bl, bl
mov dword [ebp - 0x21c], 7
mov ebx, dword [ebp - 0x240]
mov word [ebp - 0x230], ax
je 0x40460d
mov ecx, dword [ebp - 0x238]
add ecx, dword [ebx + 0x14]
push eax
push 1
push eax
lea eax, [ecx + 0x2fa78]
push eax
lea eax, [ebp - 0x218]
push eax
movzx eax, byte [ecx + 0x2fc80]
push eax
call fcn.0041d070
xor ecx, ecx
add esp, 0x18
test eax, eax
setns cl
and dword [ebp - 0x234], ecx
mov edx, dword [ebp - 0x23c]
mov eax, dword [ebx + 0x14]
inc edx
mov ecx, dword [ebp - 0x238]
add ecx, 0x412
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x238], ecx
cmp edx, dword [eax + 0x2f86c]
jl 0x4044b0
mov esi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push 0
push str.EXEPRESS_EXECUTABLE_PATH
call esi
push 0
push str.EXEPRESS_EXTRACT_PATH
call esi
push 0
push 0x450d54
call esi
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00428d9d
mov esp, ebp
pop ebp
ret
call fcn.0042fc66
int3