Function at 0x40d990
Capabilities:
Get common file path
Query environment variable
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x8040
call fcn.00401050
xor ebx, ebx
sub esp, eax
mov edi, edx
mov eax, dword [esp + eax]
mov word [ebp - 0x800e], bx
mov dword [ebp - 0x8018], eax
mov dword [ebp - 0x8012], 0x3a0025
test byte [0x423030], 8
jne 0x40dc20
mov eax, dword [ebp - 0x8018]
mov word [ebp - 0x8012], di
lea esi, [eax + 2]
lea eax, [ebp - 0x8012]
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcspbrk]
mov ebx, eax
test eax, eax
je 0x40dbd0
movzx eax, word [eax]
cmp ax, 0x20
je 0x40dbd0
cmp ax, 0x3a
je 0x40e1d0
mov ecx, dword [ebp - 0x8018]
mov edx, ebx
sub edx, ecx
mov dword [esp + 4], ecx
lea eax, [edx + 2]
mov dword [ebp - 0x801c], edx
mov dword [esp + 8], eax
lea eax, [ebp - 0x800c]
mov dword [esp], eax
call sym._memcpy
mov edx, dword [ebp - 0x801c]
xor eax, eax
mov dword [esp + 4], 0x3a
sar edx, 1
mov word [ebp + edx*2 - 0x800a], ax
lea eax, [ebp - 0x800a]
mov dword [ebp - 0x801c], edx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
xor edx, edx
test eax, eax
mov word [ebp - 0x8024], dx
mov edx, dword [ebp - 0x801c]
mov dword [ebp - 0x8020], eax
je 0x40da94
movzx ecx, word [eax + 2]
mov dword [eax], 0x25
mov word [ebp - 0x8024], cx
cmp di, 0x21
jne 0x40dab3
mov eax, 0x25
mov word [ebp - 0x800c], ax
mov eax, 0x25
mov word [ebp + edx*2 - 0x800c], ax
test byte [0x423030], 8
jne 0x40e198
cmp word [ebp - 0x800c], 0x25
je 0x40dc70
lea eax, [ebp - 0x400c]
mov dword [esp + 8], 0x2000
mov dword [ebp - 0x801c], eax
mov dword [esp + 4], eax
lea eax, [ebp - 0x800c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsW]
sub esp, 0xc
mov edi, eax
lea esi, [esi]
test edi, edi
je 0x40dc60
mov eax, dword [ebp - 0x801c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x800c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
sub esp, 8
test eax, eax
jne 0x40de40
mov eax, dword [ebp - 0x8020]
lea esi, [ebx + 2]
test eax, eax
je 0x40e440
movzx ecx, word [ebp - 0x8024]
mov edi, 0x3a
mov word [eax], di
mov word [eax + 2], cx
mov eax, dword [0x4231c8]
test eax, eax
je 0x40dbc3
cmp word [ebp - 0x800c], 0
lea eax, [ebp - 0x800c]
je 0x40e74a
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40db70
lea edi, [ebp - 0x800c]
sub eax, edi
sar eax, 1
dec eax
xor ebx, ebx
lea ecx, [ebp - 0x800a]
cmp dword [ebp - 0x8020], ecx
mov dword [esp + 0xc], 0xffffffff
mov word [ebp + eax*2 - 0x800c], bx
mov eax, dword [ebp - 0x8020]
je 0x40dbad
add eax, 2
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x8018]
mov dword [esp + 8], eax
mov dword [esp], esi
call sym._WCMD_strsubstW
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [0x4231c8]
test ecx, ecx
je 0x40dbc3
mov eax, dword [ebp - 0x8018]
cmp word [eax + 2], 0
je 0x40e490
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40dbf0
sub eax, esi
add eax, 2
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x8018]
mov dword [esp + 8], eax
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_memmove]
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._wine_dbgstr_wn.constprop.0_2
movzx edx, di
mov dword [esp + 0xc], str.Expanding:__s___c__n
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_expand_envvar
mov dword [esp + 4], 0x423030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x40d9ce
lea esp, [ebp - 0xc]
lea esi, [ebx + 2]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x800c]
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40dc80
lea ecx, [ebp - 0x800c]
sub eax, ecx
cmp eax, 2
jle 0x40dca5
cmp word [ebp + eax - 0x800e], 0x25
je 0x40e1f0
lea eax, [ebp - 0x800c]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40dcb0
lea ecx, [ebp - 0x800c]
sub eax, ecx
cmp eax, 2
jle 0x40dcd5
cmp word [ebp + eax - 0x800e], 0x25
je 0x40e49a
lea eax, [ebp - 0x800c]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40dce0
lea ecx, [ebp - 0x800c]
sub eax, ecx
cmp eax, 2
jle 0x40dd05
cmp word [ebp + eax - 0x800e], 0x25
je 0x40e522
lea eax, [ebp - 0x800c]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40dd10
lea ecx, [ebp - 0x800c]
sub eax, ecx
cmp eax, 2
jle 0x40dd35
cmp word [ebp + eax - 0x800e], 0x25
je 0x40e76b
lea eax, [ebp - 0x800c]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40dd40
lea ecx, [ebp - 0x800c]
sub eax, ecx
cmp eax, 2
jle 0x40dace
cmp word [ebp + eax - 0x800e], 0x25
jne 0x40dace
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x437250
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800a]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
jne 0x40dace
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x437250
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40dace
call dword [sym.imp.ucrtbase.dll_rand]
mov dword [esp + 4], 0x437230
cdq
shr edx, 0x11
add eax, edx
and eax, 0x7fff
sub eax, edx
mov dword [esp + 8], eax
lea eax, [ebp - 0x400c]
mov dword [ebp - 0x801c], eax
mov edi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_wsprintfW]
cmp word [ebp - 0x400c], 0
je 0x40dc60
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40de20
lea esi, [esi]
sub edi, dword [ebp - 0x801c]
sar edi, 1
jmp 0x40db00
mov ecx, dword [ebp - 0x8020]
test ecx, ecx
je 0x40e594
mov eax, dword [ebp - 0x8020]
movzx ecx, word [ebp - 0x8024]
mov edx, 0x3a
mov word [eax], dx
mov word [eax + 2], cx
cmp cx, 0x7e
je 0x40e368
mov eax, dword [ebp - 0x8020]
mov dword [esp + 4], 0x43725e
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_wcsstr]
mov dword [ebp - 0x8034], eax
call eax
mov edi, eax
test eax, eax
je 0x40dbc3
cmp word [ebx + 2], 0
lea esi, [ebx + 2]
je 0x40e7c8
mov ebx, esi
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x40deb0
sub ebx, esi
add ebx, 2
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
mov dword [esp], ebx
mov dword [ebp - 0x8024], eax
call eax
mov dword [ebp - 0x8038], eax
test eax, eax
je 0x40e97f
mov eax, dword [ebp - 0x8038]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
cmp word [ebp - 0x800c], 0
je 0x40e812
lea eax, [ebp - 0x800c]
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40df10
lea esi, [ebp - 0x800c]
sub eax, esi
sar eax, 1
dec eax
xor edx, edx
xor ecx, ecx
mov word [ebp + eax*2 - 0x800c], dx
mov word [edi], cx
cmp word [ebp - 0x400c], 0
je 0x40e7e3
mov eax, dword [ebp - 0x801c]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40df50
sub eax, dword [ebp - 0x801c]
lea ebx, [eax + 2]
mov eax, dword [ebp - 0x8024]
mov dword [esp], ebx
call eax
mov dword [ebp - 0x8030], eax
test eax, eax
je 0x40e97f
mov esi, dword [ebp - 0x801c]
mov eax, dword [ebp - 0x8030]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40dfa0
sub eax, dword [ebp - 0x801c]
sar eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8030]
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_CharUpperBuffW]
mov dword [ebp - 0x8028], eax
call eax
mov eax, dword [ebp - 0x8020]
sub esp, 8
cmp word [eax + 2], 0
lea esi, [eax + 2]
je 0x40e7d9
mov ebx, esi
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x40dfe8
sub ebx, esi
add ebx, 2
mov dword [esp], ebx
mov eax, dword [ebp - 0x8024]
call eax
mov dword [ebp - 0x8024], eax
test eax, eax
je 0x40e97f
mov eax, dword [ebp - 0x8024]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0x8020]
cmp word [eax + 2], 0
je 0x40e7d2
mov eax, esi
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40e040
sub eax, esi
sar eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8024]
lea esi, [edi + 2]
mov dword [ebp - 0x802c], esi
mov dword [esp], eax
mov eax, dword [ebp - 0x8028]
call eax
mov eax, dword [ebp - 0x8020]
sub esp, 8
cmp word [eax + 2], 0x2a
je 0x40e5ae
mov eax, dword [ebp - 0x8018]
xor esi, esi
mov ebx, dword [ebp - 0x8030]
mov word [eax], si
mov esi, eax
lea esi, [esi]
mov eax, dword [ebp - 0x8024]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8034]
call eax
mov ecx, eax
mov dword [ebp - 0x8020], eax
mov eax, ebx
sub eax, dword [ebp - 0x8030]
add eax, dword [ebp - 0x801c]
test ecx, ecx
je 0x40e2d0
mov ecx, dword [ebp - 0x8020]
sub ecx, ebx
mov edx, ecx
mov dword [ebp - 0x8028], ecx
mov ecx, esi
sar edx, 1
inc edx
cmp edx, 1
ja 0x40e100
jmp 0x40e2be
dec edx
add ecx, 2
add eax, 2
mov word [ecx - 2], bx
cmp edx, 1
je 0x40e108
movzx ebx, word [eax]
test bx, bx
jne 0x40e0f0
xor ebx, ebx
mov word [ecx], bx
add esi, dword [ebp - 0x8028]
cmp word [esi], 0
mov edx, esi
je 0x40e129
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x40e120
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [edi + eax + 2]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40e130
cmp word [edi + 2], 0
je 0x40e161
mov eax, dword [ebp - 0x802c]
nop
add eax, 2
cmp word [eax], 0
jne 0x40e150
sub eax, dword [ebp - 0x802c]
add esi, eax
mov ebx, dword [ebp - 0x8024]
cmp word [ebx], 0
je 0x40e480
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x40e178
sub ebx, dword [ebp - 0x8024]
add ebx, dword [ebp - 0x8020]
jmp 0x40e098
lea eax, [ebp - 0x800c]
call sym._wine_dbgstr_wn.constprop.0_2
mov dword [esp + 0xc], str.Retrieving_contents_of__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_expand_envvar
mov dword [esp + 4], 0x423030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x40dac0
movzx eax, di
mov dword [esp + 4], eax
lea eax, [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
cmovne ebx, eax
jmp 0x40da12
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], str.ERRORLEVEL
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800a]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
je 0x40e248
cmp word [ebp - 0x800c], 0x25
je 0x40dca5
jmp 0x40dace
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.ERRORLEVEL
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e230
mov eax, dword [0x423344]
mov dword [esp + 4], 0x437230
mov dword [esp + 8], eax
lea eax, [ebp - 0x400c]
mov dword [ebp - 0x801c], eax
mov edi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_wsprintfW]
cmp word [ebp - 0x400c], 0
je 0x40dc60
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40e2a8
sub edi, dword [ebp - 0x801c]
sar edi, 1
jmp 0x40db00
test edx, edx
je 0x40e10d
jmp 0x40e108
cmp word [esi], 0
mov ecx, esi
je 0x40e2e9
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x40e2e0
xor edx, edx
lea esi, [esi]
nop
movzx ebx, word [eax + edx]
mov word [ecx + edx], bx
add edx, 2
test bx, bx
jne 0x40e2f0
jmp 0x40e30b
add esi, 2
cmp word [esi], 0
jne 0x40e308
mov ecx, dword [ebp - 0x8038]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x40e320
mov eax, dword [ebp - 0x8038]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x8030]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x8024]
mov dword [esp], eax
call ebx
mov esi, dword [ebp - 0x8018]
jmp 0x40dbc3
mov esi, eax
mov dword [esp + 4], 0x2c
add esi, 4
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcschr]
mov ecx, dword [sym.imp.ucrtbase.dll_wcstol]
mov dword [esp], esi
mov dword [ebp - 0x8024], eax
mov dword [ebp - 0x8020], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
call ecx
mov edx, dword [ebp - 0x8024]
mov ecx, dword [ebp - 0x8020]
mov esi, eax
test edx, edx
je 0x40e4f8
add edx, 2
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], edx
call ecx
mov ecx, eax
lea eax, [edi - 1]
mov dword [ebp - 0x8020], eax
test esi, esi
js 0x40e72e
cmp edi, esi
mov eax, dword [ebp - 0x801c]
cmovle esi, edi
lea edx, [eax + esi*2]
mov eax, edx
sub eax, dword [ebp - 0x801c]
add ebx, 2
sar eax, 1
neg eax
test ecx, ecx
jns 0x40e580
add ecx, dword [ebp - 0x8020]
add eax, ecx
cmp edi, eax
jl 0x40e421
test eax, eax
mov edi, 0
cmovns edi, eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov esi, dword [ebp - 0x8018]
mov dword [esp + 4], ebx
mov dword [esp], esi
call sym._WCMD_strsubstW
jmp 0x40dbc3
mov ecx, dword [0x4231c8]
test ecx, ecx
je 0x40dbc3
cmp dword [ebp - 0x8018], esi
je 0x40dbc3
cmp word [ebx + 2], 0
je 0x40e490
mov eax, esi
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40e468
jmp 0x40dbf9
mov ebx, dword [ebp - 0x8020]
jmp 0x40e098
mov eax, 2
jmp 0x40dbfe
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x437236
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800a]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
je 0x40e69d
cmp word [ebp - 0x800c], 0x25
jne 0x40dace
jmp 0x40dcd5
test eax, eax
js 0x40e754
cmp edi, eax
mov eax, dword [ebp - 0x801c]
cmovle esi, edi
lea eax, [eax + esi*2]
mov dword [esp + 0xc], 0xffffffff
add ebx, 2
mov dword [esp + 8], eax
jmp 0x40e429
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x437240
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800a]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
je 0x40e81c
cmp word [ebp - 0x800c], 0x25
jne 0x40dace
jmp 0x40dd05
add eax, dword [ebp - 0x8020]
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0xc], eax
jmp 0x40e425
mov eax, dword [ebp - 0x801c]
mov dword [esp + 0xc], 0xffffffff
add ebx, 2
mov dword [esp + 8], eax
jmp 0x40e429
mov eax, dword [ebp - 0x8024]
lea ebx, [eax + 2]
mov eax, dword [ebp - 0x8030]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x8034]
call eax
mov ecx, eax
xor eax, eax
test ecx, ecx
je 0x40e8a6
mov esi, dword [ebp - 0x8018]
nop
movzx edx, word [edi + eax + 2]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x40e5e0
mov eax, dword [ebp - 0x8024]
sub ecx, dword [ebp - 0x8030]
cmp word [eax + 2], 0
mov eax, ebx
je 0x40e619
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40e610
sub eax, ebx
add eax, ecx
mov ecx, dword [ebp - 0x8018]
add eax, dword [ebp - 0x801c]
cmp word [ecx], 0
je 0x40e969
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x40e638
xor edx, edx
lea esi, [esi]
nop
movzx ebx, word [eax + edx]
mov word [ecx + edx], bx
add edx, 2
test bx, bx
jne 0x40e648
mov edx, dword [ebp - 0x8018]
cmp word [edx], 0
je 0x40e95e
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x40e670
mov ebx, dword [ebp - 0x8038]
xor eax, eax
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40e688
jmp 0x40e330
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x437236
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e4de
lea eax, [ebp - 0x400c]
mov dword [esp + 0x14], 0x2000
mov dword [ebp - 0x801c], eax
mov edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_GetDateFormatW]
sub esp, 0x18
cmp word [ebp - 0x400c], 0
je 0x40dc60
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40e718
sub edi, dword [ebp - 0x801c]
sar edi, 1
jmp 0x40db00
mov eax, 0
add esi, dword [ebp - 0x8020]
cmovs esi, eax
mov eax, dword [ebp - 0x801c]
lea edx, [eax + esi*2]
jmp 0x40e3f4
mov eax, 0xffffffff
jmp 0x40db84
lea eax, [edi + eax - 1]
mov esi, dword [ebp - 0x801c]
test eax, eax
cmovs eax, edx
lea eax, [esi + eax*2]
jmp 0x40e50e
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x43724a
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800a]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
je 0x40e8f8
cmp word [ebp - 0x800c], 0x25
je 0x40dd35
jmp 0x40dace
mov ebx, 2
jmp 0x40debe
xor eax, eax
jmp 0x40e04d
mov ebx, 2
jmp 0x40dff6
mov dword [esp], 2
mov eax, dword [ebp - 0x8024]
call eax
mov dword [ebp - 0x8030], eax
test eax, eax
je 0x40e97f
mov eax, dword [ebp - 0x8030]
xor edx, edx
mov word [eax], dx
xor eax, eax
jmp 0x40dfb1
mov eax, 0xffffffff
jmp 0x40df24
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x437240
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e566
lea eax, [ebp - 0x400c]
mov dword [esp + 0x14], 0x2000
mov dword [ebp - 0x801c], eax
mov edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
sub esp, 0x18
cmp word [ebp - 0x400c], 0
je 0x40dc60
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40e898
jmp 0x40de30
mov ecx, dword [ebp - 0x8018]
mov ebx, dword [ebp - 0x801c]
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x40e8b2
mov edx, dword [ebp - 0x8018]
cmp word [edx], 0
je 0x40e974
add edx, 2
cmp word [edx], 0
jne 0x40e8d2
mov ebx, dword [ebp - 0x8038]
xor eax, eax
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40e8e3
jmp 0x40e330
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x43724a
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e7af
lea eax, [ebp - 0x400c]
mov dword [esp], 0x2000
mov dword [ebp - 0x801c], eax
mov edi, eax
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
cmp word [ebp - 0x400c], 0
je 0x40dc60
add edi, 2
cmp word [edi], 0
jne 0x40e950
jmp 0x40de30
mov edx, dword [ebp - 0x8018]
jmp 0x40e679
mov ecx, dword [ebp - 0x8018]
jmp 0x40e641
mov edx, dword [ebp - 0x8018]
jmp 0x40e8db
test byte [0x423030], 2
jne 0x40e995
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.xalloc
mov dword [esp + 4], 0x423030
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_3
jmp 0x40e988