Function at 0x41e0e0
Capabilities:
Check if file exists
Create process on windows
Get file attributes
Get file system object information
Query environment variable

Disassembly:
push ebp
mov eax, 0x8990
mov ebp, esp
push edi
push esi
push ebx
call fcn.004246d8
sub esp, eax
test byte [0x425038], 8
jne 0x41e400
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._WCMD_parameter
mov ebx, eax
test eax, eax
je 0x41e140
cmp word [eax], 0
jne 0x41e150
mov dword [0x4386f0], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x42a0bc
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
test eax, eax
je 0x41e83a
lea esi, [ebp - 0x800c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov dword [esp + 4], 0x2000
mov dword [esp], ebx
call sym._WCMD_get_fullpath
test eax, eax
je 0x41e140
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov dword [ebp - 0x8974], 0
mov ebx, eax
test eax, eax
je 0x41e1cf
mov dword [esp + 4], 0x2e
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x8974], eax
xor eax, eax
lea edi, [ebp - 0x86d0]
lea esi, [esi]
nop
movzx edx, word [ebx + eax + 2]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x41e1e0
mov eax, dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
xor ecx, ecx
mov dword [ebp - 0x8970], 1
mov word [ebx + 2], cx
mov dword [ebp - 0x8964], eax
lea eax, [ebp - 0x400c]
mov dword [esp + 8], 0x2000
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8964]
mov dword [esp], 0x42a0d8
call eax
sub eax, 1
sub esp, 0xc
cmp eax, 0x1ffe
jbe 0x41e25a
xor eax, eax
mov edx, 0x2e
jmp 0x41e24a
movzx edx, word [eax + str..bat_.com_.cmd_.exe]
mov word [ebp + eax - 0x400c], dx
add eax, 2
test dx, dx
jne 0x41e243
test byte [0x425038], 8
jne 0x41e9f4
mov dword [ebp - 0x8964], esi
lea esi, [ebp - 0x84c8]
mov ebx, dword [ebp - 0x8970]
mov ecx, 0x82
mov edi, esi
xor eax, eax
rep stosd dword es:[edi], eax
test ebx, ebx
je 0x41e540
mov ecx, dword [ebp - 0x8964]
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x41e292
mov dword [ebp - 0x8964], 0
cmp word [ebp - 0x84c8], 0
mov edx, esi
je 0x41e2c9
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x41e2c0
xor eax, eax
mov ecx, 0x5c
jmp 0x41e2d9
movzx ecx, word [eax + 0x42a12c]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41e2d2
cmp word [ebp - 0x84c8], 0
mov edx, esi
je 0x41e2fa
add edx, 2
cmp word [edx], 0
jne 0x41e2f1
xor eax, eax
lea ebx, [ebp - 0x86d0]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41e302
cmp word [ebp - 0x84c8], 0
mov ebx, esi
je 0x41e4e0
add ebx, 2
cmp word [ebx], 0
jne 0x41e322
mov edi, dword [ebp - 0x8974]
test edi, edi
je 0x41e358
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
jne 0x41e77a
cmp word [ebp - 0x84c8], 0
je 0x41e4ee
mov edx, esi
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x41e360
xor eax, eax
mov ecx, 0x2e
jmp 0x41e379
movzx ecx, word [eax + 0x42a130]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41e372
lea eax, [ebp - 0x82c0]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
sub esp, 8
mov edi, eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
cmp edi, 0xffffffff
jne 0x41e6e0
mov eax, dword [ebp - 0x8964]
test eax, eax
jne 0x41e273
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x41ebde
mov dword [esp], 0x410
call sym._WCMD_LoadMessage
mov esi, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], esi
call dbg.WCMD_output_stderr
mov dword [0x4386f0], 0x2331
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 8]
test eax, eax
je 0x41ec35
mov eax, dword [ebp + 8]
shr eax, 0x10
je 0x41e4f5
mov eax, dword [ebp + 8]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edi, eax
sub esp, 8
mov eax, str._invalid_
test edi, edi
jne 0x41e509
mov eax, dword [ebp + 8]
cmp word [eax], 0
je 0x41e45a
lea esi, [esi]
lea esi, [esi]
add edi, 1
cmp word [eax + edi*2], 0
jne 0x41e450
mov ecx, dword [ebp + 8]
mov eax, 0x224c
lea edx, [ebp - 0x400a]
lea esi, [ebp - 0x3eea]
mov word [ebp - 0x400c], ax
mov dword [ebp - 0x8964], ecx
lea esi, [esi]
nop
lea ebx, [edi - 1]
test edi, edi
jle 0x41e9b8
cmp edx, esi
ja 0x41e9b8
add dword [ebp - 0x8964], 2
mov eax, dword [ebp - 0x8964]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x41e91f
ja 0x41e6b0
cmp ax, 9
je 0x41e992
cmp ax, 0xa
jne 0x41e932
mov eax, 0x6e5c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41e480
mov edx, dword [ebp - 0x8974]
test edx, edx
jne 0x41e335
mov edx, esi
jmp 0x41e369
movzx eax, word [ebp + 8]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.8
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Running__s___d__n
mov dword [esp + 0x14], esi
mov dword [esp + 8], global___func__.9
mov dword [esp + 4], 0x425038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.11
jmp 0x41e0ff
xor eax, eax
mov ebx, dword [ebp - 0x8964]
jmp 0x41e55f
mov ecx, eax
xor ecx, 1
cmp dx, 0x22
cmove eax, ecx
add ebx, 2
movzx edx, word [ebx]
test eax, eax
jne 0x41e570
cmp dx, 0x3b
je 0x41e650
test dx, dx
jne 0x41e550
mov ecx, dword [ebp - 0x8964]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x41e580
movzx edx, word [ebp - 0x84c8]
mov dword [ebp - 0x8964], 0
test dx, dx
je 0x41e68f
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x41e5b0
sub eax, esi
sar eax, 1
sub eax, 1
cmp word [ebp + eax*2 - 0x84c8], 0x22
je 0x41e824
xor eax, eax
lea ecx, [ebp - 0x88d8]
cmp dx, 0x22
jne 0x41e5e4
jmp 0x41e630
movzx edx, word [esi + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x41e5e0
cmp word [ebp - 0x88d8], 0
je 0x41e3b2
lea ecx, [ebp - 0x88d8]
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov dword [esp + 4], 0x104
mov dword [esp], ecx
call sym._WCMD_get_fullpath
test eax, eax
jne 0x41e2ac
jmp 0x41e140
movzx edx, word [ebp + eax - 0x84c6]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x41e630
jmp 0x41e5f0
mov eax, dword [ebp - 0x8964]
mov edi, ebx
mov dword [esp], esi
sub edi, eax
mov dword [esp + 4], eax
mov dword [esp + 8], edi
sar edi, 1
call sym._memcpy
xor ecx, ecx
lea eax, [ebx + 2]
mov word [ebp + edi*2 - 0x84c8], cx
movzx edx, word [ebp - 0x84c8]
mov dword [ebp - 0x8964], eax
test dx, dx
jne 0x41e5aa
cmp word [ebp - 0x84ca], 0x22
je 0x41e81f
xor edx, edx
mov word [ebp - 0x88d8], dx
jmp 0x41e5f0
cmp ax, 0x22
je 0x41e9a5
cmp ax, 0x5c
jne 0x41e932
mov edi, 0x5c5c
add edx, 2
mov word [edx - 2], di
mov edi, ebx
jmp 0x41e480
lea edi, [ebp - 0x400c]
jmp 0x41e73e
mov ecx, eax
mov dword [esp + 4], edi
sub ecx, edi
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov dword [ebp - 0x8968], ecx
mov dword [ebp - 0x896c], eax
call sym._memcpy
mov ecx, dword [ebp - 0x8968]
mov edx, dword [ebp - 0x896c]
xor eax, eax
mov word [ebx + ecx], ax
lea edi, [edx + 2]
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
jne 0x41e77a
test edi, edi
je 0x41e3b2
mov dword [esp + 4], 0x3b
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
jne 0x41e6f0
xor eax, eax
movzx edx, word [edi + eax]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x41e755
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x41e3b2
mov dword [esp + 4], 0x2e
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov dword [ebp - 0x8964], eax
test byte [0x425038], 8
jne 0x41f103
mov eax, dword [ebp - 0x8964]
test eax, eax
je 0x41ec3f
mov dword [esp + 4], str..bat
mov ebx, dword [sym.imp.ucrtbase.dll__wcsicmp]
mov dword [esp], eax
call ebx
test eax, eax
je 0x41e7de
mov eax, dword [ebp - 0x8964]
mov dword [esp + 4], str..cmd
mov dword [esp], eax
call ebx
test eax, eax
jne 0x41ec3f
mov eax, dword [ebp + 0xc]
mov ebx, dword [0x438528]
mov dword [esp], esi
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [0x438528], 0
call dbg.WCMD_batch
mov dword [0x438528], ebx
jmp 0x41e140
mov eax, 0xffffffff
xor ecx, ecx
mov word [ebp + eax*2 - 0x84c8], cx
movzx edx, word [ebp - 0x84c8]
jmp 0x41e5cf
mov edx, 0x2e
lea esi, [ebp - 0x800c]
jmp 0x41e857
movzx edx, word [eax + 0x42a0c4]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x41e850
lea eax, [ebp - 0x8008]
mov dword [esp + 8], 0x1ffe
mov dword [esp + 4], eax
mov eax, dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
mov dword [esp], 0x42a0ca
mov dword [ebp - 0x8964], eax
call eax
sub eax, 1
sub esp, 0xc
cmp eax, 0x1ffc
jbe 0x41e8b3
xor eax, eax
mov edx, 0x2e
jmp 0x41e8a7
movzx edx, word [eax + 0x42a0d4]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x41e8a0
mov dword [esp + 4], 0x2e
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_wcschr]
movzx ecx, word [ebx]
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x8974], eax
test cx, cx
je 0x41f24d
mov edx, ebx
add edx, 2
cmp word [edx], 0
jne 0x41e8e0
sub edx, ebx
xor eax, eax
lea edi, [ebp - 0x86d0]
cmp edx, 0x206
jle 0x41e904
jmp 0x41f0c8
movzx ecx, word [ebx + eax]
mov word [edi + eax], cx
add eax, 2
test cx, cx
jne 0x41e900
mov dword [ebp - 0x8970], 0
jmp 0x41e20c
mov eax, 0x725c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41e480
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x41e9e8
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ecx, byte [edi + str.0123456789abcdefWCMD_output]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], cl
movzx ecx, byte [edi + str.0123456789abcdefWCMD_output]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefWCMD_output]
and edi, 0xf
mov byte [edx - 3], cl
movzx ecx, byte [edi + str.0123456789abcdefWCMD_output]
mov byte [edx - 1], al
mov edi, ebx
mov byte [edx - 2], cl
jmp 0x41e480
mov eax, 0x745c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41e480
mov eax, 0x225c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41e480
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x41e9d2
mov ebx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], bx
mov byte [eax], 0
lea eax, [ebp - 0x400c]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
jmp 0x41e509
mov byte [edx], al
mov edi, ebx
add edx, 1
jmp 0x41e480
lea edi, [ebp - 0x86d0]
mov eax, edi
shr eax, 0x10
je 0x41f0e5
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x8964], str._invalid_
sub esp, 8
test eax, eax
jne 0x41eace
cmp word [ebp - 0x86d0], 0
je 0x41ea3f
add eax, 1
cmp word [edi + eax*2], 0
jne 0x41ea35
mov edx, 0x224c
mov word [ebp - 0x82c0], dx
lea edx, [ebp - 0x82be]
lea ebx, [eax - 1]
test eax, eax
jle 0x41ea9d
lea eax, [ebp - 0x819e]
cmp edx, eax
ja 0x41ea9d
add edi, 2
movzx eax, word [edi - 2]
cmp ax, 0xd
je 0x41f07c
ja 0x41ef77
cmp ax, 9
je 0x41f0a2
cmp ax, 0xa
jne 0x41ef96
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x41ea51
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x41eab7
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x82c0]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [ebp - 0x8964], eax
mov eax, esi
shr eax, 0x10
je 0x41f21d
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x41eba7
cmp word [ebp - 0x800c], 0
je 0x41eb1a
lea esi, [esi]
lea esi, [esi]
add ebx, 1
cmp word [esi + ebx*2], 0
jne 0x41eb10
mov eax, 0x224c
lea edx, [ebp - 0x82be]
mov ecx, esi
mov word [ebp - 0x82c0], ax
nop
lea edi, [ebx - 1]
test ebx, ebx
jle 0x41eb7c
lea eax, [ebp - 0x819e]
cmp edx, eax
ja 0x41eb7c
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x41f08f
ja 0x41ef50
cmp ax, 9
je 0x41f069
cmp ax, 0xa
jne 0x41f009
mov eax, 0x6e5c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41eb30
mov byte [edx], 0x22
lea eax, [edx + 1]
test edi, edi
jle 0x41eb96
mov edi, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], di
mov byte [eax], 0
lea eax, [ebp - 0x82c0]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov edi, dword [ebp - 0x8964]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Searching_in__s_for__s_n
mov dword [esp + 0x14], edi
mov dword [esp + 8], global___func__.9
mov dword [esp + 4], 0x425038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.11
jmp 0x41e267
lea eax, [ebp - 0x82c0]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x82c0], 0
mov dword [esp], eax
call dbg.WCMD_ReadAndParseLine
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x82c0]
mov dword [esp], eax
call dbg.WCMD_process_commands
mov eax, dword [ebp - 0x82c0]
mov dword [esp], eax
call dbg.WCMD_free_commands
jmp 0x41e140
mov eax, str._null_
jmp 0x41e509
lea ebx, [ebp - 0x88d8]
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov dword [esp], esi
call dword [sym.imp.shell32.dll_FindExecutableW]
mov dword [ebp - 0x8968], 0
sub esp, 0xc
cmp eax, 0x1f
jg 0x41ef15
lea edx, [ebp - 0x895c]
xor eax, eax
mov ecx, 0x10
mov dword [ebp - 0x8960], 0x44
mov edi, edx
lea ebx, [ebp - 0x891c]
mov dword [ebp - 0x891c], 0x44
rep stosd dword es:[edi], eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetStartupInfoW]
movzx eax, word [ebp - 0x88ea]
mov edx, dword [ebp - 0x88e8]
sub esp, 4
mov word [ebp - 0x892e], ax
mov dword [ebp - 0x892c], edx
test edx, edx
je 0x41edbd
test ax, ax
je 0x41edbd
mov edi, dword [edx]
cmp ax, 0x13
mov edx, 0x13
cmovae edx, eax
mov dword [ebp - 0x8964], edi
movzx eax, dx
mov dword [ebp - 0x8970], edx
mov dword [esp], eax
call dbg.xalloc
mov edi, eax
mov eax, dword [ebp - 0x8964]
mov dword [esp], edi
lea ecx, [edi + eax + 4]
movzx eax, word [ebp - 0x88ea]
mov dword [ebp - 0x896c], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x88e8]
mov dword [esp + 4], eax
call sym._memcpy
mov edx, dword [ebp - 0x8970]
mov eax, dword [ebp - 0x8964]
mov dword [ebp - 0x892c], edi
mov word [ebp - 0x892e], dx
test eax, eax
je 0x41ed49
test byte [edi + 4], 1
je 0x41ed65
mov dword [esp], 0xfffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov ecx, dword [ebp - 0x896c]
sub esp, 4
mov dword [ecx], eax
or byte [edi + 4], 1
cmp dword [ebp - 0x8964], 1
jbe 0x41ed74
test byte [edi + 5], 1
je 0x41ed91
mov dword [esp], 0xfffffff5
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov ecx, dword [ebp - 0x896c]
sub esp, 4
mov dword [ecx + 4], eax
or byte [edi + 5], 1
cmp dword [ebp - 0x8964], 2
jbe 0x41eda0
test byte [edi + 6], 1
je 0x41edbd
mov dword [esp], 0xfffffff4
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov ecx, dword [ebp - 0x896c]
sub esp, 4
mov dword [ecx + 8], eax
or byte [edi + 6], 1
lea eax, [ebp - 0x8960]
mov dword [esp], esi
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_CreateProcessW]
mov esi, eax
mov eax, dword [ebp - 0x892c]
sub esp, 0x28
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [0x430388]
or eax, dword [0x430384]
jne 0x41eec1
test esi, esi
je 0x41e3c0
mov eax, dword [0x438528]
test eax, eax
je 0x41ee50
mov eax, dword [ebp - 0x8968]
test eax, eax
je 0x41ee6a
shr eax, 0x10
jne 0x41ee6a
mov eax, dword [ebp - 0x891c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
sub esp, 8
mov eax, dword [ebp - 0x891c]
mov dword [esp + 4], 0x4386f0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetExitCodeProcess]
sub esp, 8
cmp dword [0x4386f0], 0x103
jne 0x41ee9a
mov dword [0x4386f0], 0
mov eax, dword [ebp - 0x891c]
mov ebx, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x8918]
sub esp, 4
mov dword [esp], eax
call ebx
sub esp, 4
jmp 0x41e140
mov eax, esi
or eax, dword [0x430380]
jne 0x41ee30
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 2
jne 0x41e3c0
mov eax, dword [ebp + 8]
cmp word [eax], 0x22
jne 0x41e3c0
mov dword [esp], eax
call dbg.WCMD_strip_quotes
mov eax, dword [ebp + 0xc]
mov dword [0x430380], 1
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dbg.WCMD_run_program
jmp 0x41e140
lea eax, [ebp - 0x82c0]
mov dword [esp + 0x10], 0x2000
mov dword [esp + 0xc], 0x2b4
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.shell32.dll_SHGetFileInfoW]
sub esp, 0x14
mov dword [ebp - 0x8968], eax
jmp 0x41ec70
cmp ax, 0x22
je 0x41f0b5
cmp ax, 0x5c
jne 0x41f009
mov eax, 0x5c5c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41eb30
cmp ax, 0x22
je 0x41eff6
cmp ax, 0x5c
jne 0x41ef96
mov eax, 0x5c5c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x41ea51
lea ecx, [eax - 0x20]
cmp cx, 0x5e
jbe 0x41f235
mov ecx, eax
mov byte [edx], 0x5c
add edx, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefWCMD_output]
mov byte [edx - 4], cl
mov ecx, eax
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefWCMD_output]
mov byte [edx - 3], cl
mov ecx, eax
and eax, 0xf
shr cx, 4
movzx eax, byte [eax + str.0123456789abcdefWCMD_output]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefWCMD_output]
mov byte [edx - 1], al
mov eax, ebx
mov byte [edx - 2], cl
jmp 0x41ea51
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x41ea51
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x41f241
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdefWCMD_output]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefWCMD_output]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdefWCMD_output]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefWCMD_output]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, edi
jmp 0x41eb30
mov eax, 0x745c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41eb30
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x41ea51
mov eax, 0x725c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41eb30
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x41ea51
mov eax, 0x225c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41eb30
mov dword [esp], 0x40b
call sym._WCMD_LoadMessage
mov edx, eax
mov eax, 0xfffffff4
call dbg.WCMD_output_asis_handle
jmp 0x41e140
movzx edi, di
mov dword [esp], str._04x
mov dword [esp + 4], edi
call sym._wine_dbg_sprintf.constprop.8
mov dword [ebp - 0x8964], eax
jmp 0x41eace
mov eax, esi
shr eax, 0x10
je 0x41f2fe
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x41f1f0
cmp word [ebp - 0x84c8], 0
je 0x41f145
add ebx, 1
cmp word [esi + ebx*2], 0
jne 0x41f13b
mov eax, 0x224c
lea edx, [ebp - 0x82be]
mov ecx, esi
mov word [ebp - 0x82c0], ax
lea eax, [ebp - 0x819e]
lea edi, [ebx - 1]
cmp edx, eax
ja 0x41f1c5
test ebx, ebx
jle 0x41f1c5
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x41f2d8
ja 0x41f1a1
cmp ax, 9
je 0x41f2c5
cmp ax, 0xa
jne 0x41f265
mov eax, 0x6e5c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41f159
cmp ax, 0x22
je 0x41f2eb
cmp ax, 0x5c
jne 0x41f265
mov ebx, 0x5c5c
add edx, 2
mov word [edx - 2], bx
mov ebx, edi
jmp 0x41f159
mov byte [edx], 0x22
lea eax, [edx + 1]
test edi, edi
jle 0x41f1df
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x82c0]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Found_as__s_n
mov dword [esp + 8], global___func__.9
mov dword [esp + 4], 0x425038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.11
jmp 0x41e79e
movzx eax, si
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.8
jmp 0x41eba7
mov byte [edx], al
add edx, 1
mov eax, ebx
jmp 0x41ea51
mov byte [edx], al
mov ebx, edi
add edx, 1
jmp 0x41eb30
mov dword [ebp - 0x8970], 0
xor eax, eax
mov word [ebp - 0x86d0], ax
jmp 0x41e20c
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x41f316
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdefWCMD_output]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefWCMD_output]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdefWCMD_output]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefWCMD_output]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, edi
jmp 0x41f159
mov eax, 0x745c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41f159
mov eax, 0x725c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41f159
mov eax, 0x225c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x41f159
movzx eax, si
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.8
jmp 0x41f1f0
mov byte [edx], al
mov ebx, edi
add edx, 1
jmp 0x41f159