Function at 0x40d6c0
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, 0x8068
call fcn.00401050
xor ebx, ebx
sub esp, eax
mov edi, edx
mov eax, dword [esp + eax]
mov word [ebp - 0x801a], bx
mov dword [ebp - 0x802c], eax
mov dword [ebp - 0x801e], 0x3a0025
test byte [0x423030], 8
jne 0x40d950
mov eax, dword [ebp - 0x802c]
mov word [ebp - 0x801e], di
lea esi, [eax + 2]
lea eax, [ebp - 0x801e]
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcspbrk]
mov ebx, eax
test eax, eax
je 0x40d900
movzx eax, word [eax]
cmp ax, 0x20
je 0x40d900
cmp ax, 0x3a
je 0x40df00
mov ecx, dword [ebp - 0x802c]
mov edx, ebx
sub edx, ecx
mov dword [esp + 4], ecx
lea eax, [edx + 2]
mov dword [ebp - 0x8030], edx
mov dword [esp + 8], eax
lea eax, [ebp - 0x8018]
mov dword [esp], eax
call sym._memcpy
mov edx, dword [ebp - 0x8030]
xor eax, eax
mov dword [esp + 4], 0x3a
sar edx, 1
mov word [ebp + edx*2 - 0x8016], ax
lea eax, [ebp - 0x8016]
mov dword [ebp - 0x8030], edx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
xor edx, edx
test eax, eax
mov word [ebp - 0x8038], dx
mov edx, dword [ebp - 0x8030]
mov dword [ebp - 0x8034], eax
je 0x40d7c7
movzx ecx, word [eax + 2]
mov word [eax], di
mov word [ebp - 0x8038], cx
xor ecx, ecx
mov word [eax + 2], cx
cmp di, 0x21
jne 0x40d7e6
mov eax, 0x25
mov word [ebp - 0x8018], ax
mov eax, 0x25
mov word [ebp + edx*2 - 0x8018], ax
test byte [0x423030], 8
jne 0x40dec8
cmp word [ebp - 0x8018], 0x25
je 0x40d9a0
lea eax, [ebp - 0x4018]
mov dword [esp + 8], 0x2000
mov dword [ebp - 0x8030], eax
mov dword [esp + 4], eax
lea eax, [ebp - 0x8018]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsW]
sub esp, 0xc
mov edi, eax
lea esi, [esi]
test edi, edi
je 0x40d990
mov eax, dword [ebp - 0x8030]
mov dword [esp + 4], eax
lea eax, [ebp - 0x8018]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
sub esp, 8
test eax, eax
jne 0x40db70
mov eax, dword [ebp - 0x8034]
lea esi, [ebx + 2]
test eax, eax
je 0x40e170
movzx ecx, word [ebp - 0x8038]
mov edi, 0x3a
mov word [eax], di
mov word [eax + 2], cx
mov eax, dword [0x4231c8]
test eax, eax
je 0x40d8f3
cmp word [ebp - 0x8018], 0
lea eax, [ebp - 0x8018]
je 0x40e47a
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40d8a0
lea ecx, [ebp - 0x8018]
sub eax, ecx
sar eax, 1
dec eax
xor ebx, ebx
lea ecx, [ebp - 0x8016]
cmp dword [ebp - 0x8034], ecx
mov dword [esp + 0xc], 0xffffffff
mov word [ebp + eax*2 - 0x8018], bx
mov eax, dword [ebp - 0x8034]
je 0x40d8dd
add eax, 2
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x802c]
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 0x40d8f3
mov eax, dword [ebp - 0x802c]
cmp word [eax + 2], 0
je 0x40e1c0
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40d920
sub eax, esi
add eax, 2
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x802c]
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 0x40d6fe
lea esp, [ebp - 0xc]
lea esi, [ebx + 2]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x8018]
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40d9b0
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x40d9d5
cmp word [ebp + eax - 0x801a], 0x25
je 0x40df20
lea eax, [ebp - 0x8018]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40d9e0
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x40da05
cmp word [ebp + eax - 0x801a], 0x25
je 0x40e1ca
lea eax, [ebp - 0x8018]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40da10
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x40da35
cmp word [ebp + eax - 0x801a], 0x25
je 0x40e252
lea eax, [ebp - 0x8018]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40da40
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x40da65
cmp word [ebp + eax - 0x801a], 0x25
je 0x40e49b
lea eax, [ebp - 0x8018]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40da70
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x40d801
cmp word [ebp + eax - 0x801a], 0x25
jne 0x40d801
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x437234
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
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 0x40d801
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x437234
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40d801
call dword [sym.imp.ucrtbase.dll_rand]
mov dword [esp + 4], 0x437214
cdq
shr edx, 0x11
add eax, edx
and eax, 0x7fff
sub eax, edx
mov dword [esp + 8], eax
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8030], eax
mov edi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_wsprintfW]
cmp word [ebp - 0x4018], 0
je 0x40d990
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40db50
lea esi, [esi]
sub edi, dword [ebp - 0x8030]
sar edi, 1
jmp 0x40d830
mov ecx, dword [ebp - 0x8034]
test ecx, ecx
je 0x40e2c4
mov eax, dword [ebp - 0x8034]
movzx ecx, word [ebp - 0x8038]
mov edx, 0x3a
mov word [eax], dx
mov word [eax + 2], cx
cmp cx, 0x7e
je 0x40e098
mov eax, dword [ebp - 0x8034]
mov dword [esp + 4], 0x437242
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_wcsstr]
mov dword [ebp - 0x8048], eax
call eax
mov edi, eax
test eax, eax
je 0x40d8f3
cmp word [ebx + 2], 0
lea esi, [ebx + 2]
je 0x40e4f8
mov ebx, esi
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x40dbe0
sub ebx, esi
add ebx, 2
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
mov dword [esp], ebx
mov dword [ebp - 0x8038], eax
call eax
mov dword [ebp - 0x804c], eax
test eax, eax
je 0x40e6af
mov eax, dword [ebp - 0x804c]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
cmp word [ebp - 0x8018], 0
je 0x40e542
lea eax, [ebp - 0x8018]
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40dc40
lea esi, [ebp - 0x8018]
sub eax, esi
sar eax, 1
dec eax
xor edx, edx
xor ecx, ecx
mov word [ebp + eax*2 - 0x8018], dx
mov word [edi], cx
cmp word [ebp - 0x4018], 0
je 0x40e513
mov eax, dword [ebp - 0x8030]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40dc80
sub eax, dword [ebp - 0x8030]
lea ebx, [eax + 2]
mov eax, dword [ebp - 0x8038]
mov dword [esp], ebx
call eax
mov dword [ebp - 0x8044], eax
test eax, eax
je 0x40e6af
mov esi, dword [ebp - 0x8030]
mov eax, dword [ebp - 0x8044]
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 0x40dcd0
sub eax, dword [ebp - 0x8030]
sar eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_CharUpperBuffW]
mov dword [ebp - 0x803c], eax
call eax
mov eax, dword [ebp - 0x8034]
sub esp, 8
cmp word [eax + 2], 0
lea esi, [eax + 2]
je 0x40e509
mov ebx, esi
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x40dd18
sub ebx, esi
add ebx, 2
mov dword [esp], ebx
mov eax, dword [ebp - 0x8038]
call eax
mov dword [ebp - 0x8038], eax
test eax, eax
je 0x40e6af
mov eax, dword [ebp - 0x8038]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0x8034]
cmp word [eax + 2], 0
je 0x40e502
mov eax, esi
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40dd70
sub eax, esi
sar eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8038]
lea esi, [edi + 2]
mov dword [ebp - 0x8040], esi
mov dword [esp], eax
mov eax, dword [ebp - 0x803c]
call eax
mov eax, dword [ebp - 0x8034]
sub esp, 8
cmp word [eax + 2], 0x2a
je 0x40e2de
mov eax, dword [ebp - 0x802c]
xor esi, esi
mov ebx, dword [ebp - 0x8044]
mov word [eax], si
mov esi, eax
lea esi, [esi]
mov eax, dword [ebp - 0x8038]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
mov ecx, eax
mov dword [ebp - 0x8034], eax
mov eax, ebx
sub eax, dword [ebp - 0x8044]
add eax, dword [ebp - 0x8030]
test ecx, ecx
je 0x40e000
mov ecx, dword [ebp - 0x8034]
sub ecx, ebx
mov edx, ecx
mov dword [ebp - 0x803c], ecx
mov ecx, esi
sar edx, 1
inc edx
cmp edx, 1
ja 0x40de30
jmp 0x40dfee
dec edx
add ecx, 2
add eax, 2
mov word [ecx - 2], bx
cmp edx, 1
je 0x40de38
movzx ebx, word [eax]
test bx, bx
jne 0x40de20
xor ebx, ebx
mov word [ecx], bx
add esi, dword [ebp - 0x803c]
cmp word [esi], 0
mov edx, esi
je 0x40de59
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x40de50
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 0x40de60
cmp word [edi + 2], 0
je 0x40de91
mov eax, dword [ebp - 0x8040]
nop
add eax, 2
cmp word [eax], 0
jne 0x40de80
sub eax, dword [ebp - 0x8040]
add esi, eax
mov ebx, dword [ebp - 0x8038]
cmp word [ebx], 0
je 0x40e1b0
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x40dea8
sub ebx, dword [ebp - 0x8038]
add ebx, dword [ebp - 0x8034]
jmp 0x40ddc8
lea eax, [ebp - 0x8018]
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 0x40d7f3
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 0x40d742
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 - 0x8016]
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 0x40df78
cmp word [ebp - 0x8018], 0x25
je 0x40d9d5
jmp 0x40d801
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 0x40df60
mov eax, dword [0x4231f0]
mov dword [esp + 4], 0x437214
mov dword [esp + 8], eax
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8030], eax
mov edi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_wsprintfW]
cmp word [ebp - 0x4018], 0
je 0x40d990
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40dfd8
sub edi, dword [ebp - 0x8030]
sar edi, 1
jmp 0x40d830
test edx, edx
je 0x40de3d
jmp 0x40de38
cmp word [esi], 0
mov ecx, esi
je 0x40e019
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x40e010
xor edx, edx
lea esi, [esi]
nop
movzx ebx, word [eax + edx]
mov word [ecx + edx], bx
add edx, 2
test bx, bx
jne 0x40e020
jmp 0x40e03b
add esi, 2
cmp word [esi], 0
jne 0x40e038
mov ecx, dword [ebp - 0x804c]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x40e050
mov eax, dword [ebp - 0x804c]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x8038]
mov dword [esp], eax
call ebx
mov esi, dword [ebp - 0x802c]
jmp 0x40d8f3
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 - 0x8038], eax
mov dword [ebp - 0x8034], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
call ecx
mov edx, dword [ebp - 0x8038]
mov ecx, dword [ebp - 0x8034]
mov esi, eax
test edx, edx
je 0x40e228
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 - 0x8034], eax
test esi, esi
js 0x40e45e
cmp edi, esi
mov eax, dword [ebp - 0x8030]
cmovle esi, edi
lea edx, [eax + esi*2]
mov eax, edx
sub eax, dword [ebp - 0x8030]
add ebx, 2
sar eax, 1
neg eax
test ecx, ecx
jns 0x40e2b0
add ecx, dword [ebp - 0x8034]
add eax, ecx
cmp edi, eax
jl 0x40e151
test eax, eax
mov edi, 0
cmovns edi, eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov esi, dword [ebp - 0x802c]
mov dword [esp + 4], ebx
mov dword [esp], esi
call sym._WCMD_strsubstW
jmp 0x40d8f3
mov ecx, dword [0x4231c8]
test ecx, ecx
je 0x40d8f3
cmp dword [ebp - 0x802c], esi
je 0x40d8f3
cmp word [ebx + 2], 0
je 0x40e1c0
mov eax, esi
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x40e198
jmp 0x40d929
mov ebx, dword [ebp - 0x8034]
jmp 0x40ddc8
mov eax, 2
jmp 0x40d92e
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x43721a
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
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 0x40e3cd
cmp word [ebp - 0x8018], 0x25
jne 0x40d801
jmp 0x40da05
test eax, eax
js 0x40e484
cmp edi, eax
mov eax, dword [ebp - 0x8030]
cmovle esi, edi
lea eax, [eax + esi*2]
mov dword [esp + 0xc], 0xffffffff
add ebx, 2
mov dword [esp + 8], eax
jmp 0x40e159
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x437224
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
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 0x40e54c
cmp word [ebp - 0x8018], 0x25
jne 0x40d801
jmp 0x40da35
add eax, dword [ebp - 0x8034]
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0xc], eax
jmp 0x40e155
mov eax, dword [ebp - 0x8030]
mov dword [esp + 0xc], 0xffffffff
add ebx, 2
mov dword [esp + 8], eax
jmp 0x40e159
mov eax, dword [ebp - 0x8038]
lea ebx, [eax + 2]
mov eax, dword [ebp - 0x8044]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x8048]
call eax
mov ecx, eax
xor eax, eax
test ecx, ecx
je 0x40e5d6
mov esi, dword [ebp - 0x802c]
nop
movzx edx, word [edi + eax + 2]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x40e310
mov eax, dword [ebp - 0x8038]
sub ecx, dword [ebp - 0x8044]
cmp word [eax + 2], 0
mov eax, ebx
je 0x40e349
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40e340
sub eax, ebx
add eax, ecx
mov ecx, dword [ebp - 0x802c]
add eax, dword [ebp - 0x8030]
cmp word [ecx], 0
je 0x40e699
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x40e368
xor edx, edx
lea esi, [esi]
nop
movzx ebx, word [eax + edx]
mov word [ecx + edx], bx
add edx, 2
test bx, bx
jne 0x40e378
mov edx, dword [ebp - 0x802c]
cmp word [edx], 0
je 0x40e68e
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x40e3a0
mov ebx, dword [ebp - 0x804c]
xor eax, eax
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40e3b8
jmp 0x40e060
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x43721a
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e20e
lea eax, [ebp - 0x4018]
mov dword [esp + 0x14], 0x2000
mov dword [ebp - 0x8030], 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 - 0x4018], 0
je 0x40d990
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40e448
sub edi, dword [ebp - 0x8030]
sar edi, 1
jmp 0x40d830
mov eax, 0
add esi, dword [ebp - 0x8034]
cmovs esi, eax
mov eax, dword [ebp - 0x8030]
lea edx, [eax + esi*2]
jmp 0x40e124
mov eax, 0xffffffff
jmp 0x40d8b4
lea eax, [edi + eax - 1]
mov esi, dword [ebp - 0x8030]
test eax, eax
cmovs eax, edx
lea eax, [esi + eax*2]
jmp 0x40e23e
sar eax, 1
mov dword [esp + 0x14], 0xffffffff
sub eax, 2
mov dword [esp + 0x10], 0x43722e
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
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 0x40e628
cmp word [ebp - 0x8018], 0x25
je 0x40da65
jmp 0x40d801
mov ebx, 2
jmp 0x40dbee
xor eax, eax
jmp 0x40dd7d
mov ebx, 2
jmp 0x40dd26
mov dword [esp], 2
mov eax, dword [ebp - 0x8038]
call eax
mov dword [ebp - 0x8044], eax
test eax, eax
je 0x40e6af
mov eax, dword [ebp - 0x8044]
xor edx, edx
mov word [eax], dx
xor eax, eax
jmp 0x40dce1
mov eax, 0xffffffff
jmp 0x40dc54
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x437224
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e296
lea eax, [ebp - 0x4018]
mov dword [esp + 0x14], 0x2000
mov dword [ebp - 0x8030], 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 - 0x4018], 0
je 0x40d990
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x40e5c8
jmp 0x40db60
mov ecx, dword [ebp - 0x802c]
mov ebx, dword [ebp - 0x8030]
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x40e5e2
mov edx, dword [ebp - 0x802c]
cmp word [edx], 0
je 0x40e6a4
add edx, 2
cmp word [edx], 0
jne 0x40e602
mov ebx, dword [ebp - 0x804c]
xor eax, eax
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40e613
jmp 0x40e060
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x43722e
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40e4df
lea eax, [ebp - 0x4018]
mov dword [esp], 0x2000
mov dword [ebp - 0x8030], eax
mov edi, eax
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
cmp word [ebp - 0x4018], 0
je 0x40d990
add edi, 2
cmp word [edi], 0
jne 0x40e680
jmp 0x40db60
mov edx, dword [ebp - 0x802c]
jmp 0x40e3a9
mov ecx, dword [ebp - 0x802c]
jmp 0x40e371
mov edx, dword [ebp - 0x802c]
jmp 0x40e60b
test byte [0x423030], 2
jne 0x40e6c5
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 0x40e6b8