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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x8034
call sym.__alloca
mov dword [ebp - 0x28], edx
mov ebx, ecx
xor esi, esi
jmp 0x412c46
inc esi
cmp esi, 0x34
je 0x412c97
mov ecx, dword [esi*4 + 0x42e560]
test ecx, ecx
je 0x412c40
test byte [0x41d038], 8
je 0x412c40
lea edi, [esi + 0x27]
lea eax, [esi + 0x61]
cmp esi, 0x1a
cmovb edi, eax
call dbg.wine_dbgstr_w
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.FOR_variable_context:__c___s_n
mov dword [esp + 8], str.handleExpansion
mov dword [esp], 3
call dbg.wine_dbg_log
add esp, 0x18
jmp 0x412c40
push 0x25
push ebx
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
mov esi, eax
cmp dword [ebp + 8], 0
mov dword [ebp - 0x34], ebx
je 0x412ccf
push 0x21
push ebx
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
mov ebx, eax
test esi, esi
je 0x412cee
test eax, eax
je 0x412cd7
mov ecx, dword [ebp - 0x34]
mov ebx, ecx
cmp eax, ecx
ja 0x412cee
jmp 0x412ce0
test esi, esi
je 0x413c06
mov dword [ebp - 0x14], esi
xor eax, eax
mov ebx, esi
jmp 0x412cf9
mov dword [ebp - 0x14], eax
mov ebx, eax
jmp 0x412cf9
mov ebx, dword [ebp - 0x14]
cmp ebx, eax
jae 0x412ce0
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x413c06
mov dword [ebp - 0x38], eax
movzx edi, word [ebx]
test byte [0x41d038], 8
je 0x412d4e
mov ecx, dword [ebp - 0x34]
call dbg.wine_dbgstr_w
mov esi, eax
mov ecx, dword [ebp - 0x14]
call dbg.wine_dbgstr_w
sub esp, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Translate_command:_s__d__at:__s__n
mov dword [esp + 8], str.handleExpansion
mov dword [esp], 3
call dbg.wine_dbg_log
add esp, 0x1c
mov ebx, dword [ebp - 0x14]
lea ecx, [ebx + 2]
movzx edx, word [ebx + 2]
cmp dword [ebp - 0x28], 0
jne 0x412da0
cmp dx, di
jne 0x412da0
cmp dword [0x421394], 0
je 0x412d89
xor eax, eax
nop dword [eax + eax]
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x412d70
push eax
push ecx
push ebx
call sym._memmove
add esp, 0xc
mov ebx, dword [ebp - 0x14]
add ebx, 2
mov dword [ebp - 0x14], ebx
jmp 0x412ff0
movzx eax, dx
cmp eax, 0x7e
jne 0x412dc0
push dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push eax
call dbg.WCMD_HandleTildeModifiers
add esp, 8
add dword [ebp - 0x14], 2
jmp 0x412ff0
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x28], 0
sete ch
mov esi, dword [0x421394]
test esi, esi
setne cl
and cl, ch
cmp cl, 1
jne 0x412e77
cmp dx, 0x30
jb 0x412e77
cmp dx, 0x39
ja 0x412e77
cmp di, 0x25
jne 0x412e77
lea ecx, [eax - 0x30]
add ecx, dword [esi + eax*4 - 0xb4]
push 1
push 1
push 0
push ecx
push dword [esi]
call sym._WCMD_parameter
add esp, 0x14
mov ebx, eax
mov esi, dword [ebp - 0x14]
xor eax, eax
mov ecx, esi
mov edi, 0
test ebx, ebx
je 0x412e4c
mov edx, 0xfffffffe
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x412e30
mov edi, 2
cmp edx, 4
je 0x412e65
lea ecx, [esi + edx]
sar edx, 1
mov edi, edx
lea edx, [esi + 4]
nop
cmp word [edx + eax], 0
lea eax, [eax + 2]
jne 0x412e50
push eax
push edx
push ecx
call sym._memmove
add esp, 0xc
test ebx, ebx
je 0x412ff0
add edi, edi
push edi
push ebx
push esi
jmp 0x412fe8
cmp eax, 0x2a
sete dl
and cl, dl
cmp cl, 1
jne 0x412f5c
cmp di, 0x25
jne 0x412f5c
mov dword [ebp - 0x4040], 0
push 1
push 1
lea eax, [ebp - 0x4040]
push eax
push 0
push dword [esi]
call sym._WCMD_parameter
add esp, 0x14
mov edx, dword [ebp - 0x4040]
test edx, edx
je 0x4130e0
lea esi, [edx - 2]
neg edx
nop word cs:[eax + eax]
add esi, 2
cmp word [eax], 0
mov ecx, edx
lea eax, [eax + 2]
lea edx, [edx - 2]
jne 0x412ed0
jmp 0x412ef6
add esi, 2
add ecx, 0xfffffffe
mov dword [ebp - 0x4040], esi
movzx eax, word [esi]
cmp eax, 0x20
je 0x412ef0
cmp eax, 9
je 0x412ef0
mov edi, esi
test ax, ax
je 0x412f2c
mov eax, esi
nop word cs:[eax + eax]
lea edi, [eax + 2]
cmp word [eax + 2], 0
mov eax, edi
jne 0x412f20
mov ebx, dword [ebp - 0x14]
add edi, ecx
cmp edi, 4
je 0x412fe5
lea eax, [ebx + 4]
lea ecx, [edi + ebx]
xor edx, edx
nop word cs:[eax + eax]
cmp word [eax + edx], 0
lea edx, [edx + 2]
jne 0x412f50
jmp 0x412fda
lea edx, [eax - 0x61]
mov ecx, 0xffffff9f
cmp dx, 0x1a
jb 0x412f7c
lea edx, [eax - 0x41]
mov ecx, 0xffffffd9
cmp dx, 0x19
ja 0x413031
cmp di, 0x25
jne 0x413031
add ecx, eax
cmp ecx, 0xffffffff
je 0x413031
mov esi, dword [ecx*4 + 0x42e560]
test esi, esi
je 0x413031
mov edi, 0xfffffffe
nop word cs:[eax + eax]
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x412fb0
cmp edi, 4
je 0x412fe5
lea eax, [ebx + 4]
lea ecx, [ebx + edi]
xor edx, edx
nop dword [eax + eax]
cmp word [eax + edx], 0
lea edx, [edx + 2]
jne 0x412fd0
push edx
push eax
push ecx
call sym._memmove
add esp, 0xc
push edi
push esi
push ebx
call sym._memcpy
add esp, 0xc
push 0x25
push dword [ebp - 0x14]
mov edi, dword [sym.imp.ucrtbase.dll_wcschr]
call edi
add esp, 8
mov esi, eax
cmp dword [ebp + 8], 0
mov eax, dword [ebp - 0x38]
je 0x413015
push 0x21
push dword [ebp - 0x14]
call edi
add esp, 8
mov ebx, eax
test esi, esi
je 0x412cee
test eax, eax
jne 0x412ce7
mov dword [ebp - 0x14], esi
mov ebx, esi
jmp 0x412cf9
cmp dword [ebp - 0x28], 0
je 0x413045
cmp di, 0x21
je 0x413045
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
jmp 0x412ff0
movzx esi, di
mov dword [ebp - 0x3c], 0x3a
test byte [0x41d038], 8
je 0x413089
mov ecx, ebx
call dbg.wine_dbgstr_w
sub esp, 0x18
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Expanding:__s___c__n
mov dword [esp + 8], str.WCMD_expand_envvar
mov dword [esp], 3
call dbg.wine_dbg_log
add esp, 0x18
mov word [ebp - 0x3e], di
lea eax, [ebp - 0x3e]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.ucrtbase.dll_wcspbrk]
add esp, 8
test eax, eax
je 0x4130b0
mov ecx, eax
movzx eax, word [eax]
cmp eax, 0x3a
je 0x413113
cmp eax, 0x20
jne 0x41312a
cmp dword [0x421394], 0
je 0x413108
xor eax, eax
mov ecx, dword [ebp - 0x10]
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4130c0
push eax
push ecx
push ebx
call sym._memmove
add esp, 0xc
mov edx, ebx
mov dword [ebp - 0x14], edx
jmp 0x412ff0
mov eax, dword [ebp - 0x14]
lea ecx, [eax + 4]
xor edx, edx
nop dword [eax + eax]
cmp word [eax + edx + 4], 0
lea edx, [edx + 2]
jne 0x4130f0
push edx
push ecx
push eax
call sym._memmove
jmp 0x412fed
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
jmp 0x412ff0
lea eax, [ecx + 2]
push esi
push eax
mov esi, ecx
call dword [sym.imp.ucrtbase.dll_wcschr]
mov ecx, esi
add esp, 8
test eax, eax
cmovne ecx, eax
mov dword [ebp - 0x18], ecx
mov esi, ecx
sub esi, ebx
lea eax, [esi + 2]
push eax
push ebx
lea eax, [ebp - 0x4040]
push eax
call sym._memcpy
add esp, 0xc
mov word [ebp + esi - 0x403e], 0
push 0x3a
lea eax, [ebp - 0x403e]
push eax
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
je 0x413174
movzx ecx, word [eax + 2]
mov dword [ebp - 0x20], ecx
mov dword [eax], 0x25
jmp 0x41317b
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], eax
cmp di, 0x21
jne 0x4131e3
sar esi, 1
mov word [ebp - 0x4040], 0x25
mov word [ebp + esi*2 - 0x4040], 0x25
test byte [0x41d038], 8
je 0x4131ec
lea ecx, [ebp - 0x4040]
call dbg.wine_dbgstr_w
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Retrieving_contents_of__s_n
mov dword [esp + 8], str.WCMD_expand_envvar
mov dword [esp], 3
call dbg.wine_dbg_log
add esp, 0x14
cmp word [ebp - 0x4040], 0x25
jne 0x413420
jmp 0x4131fa
test byte [0x41d038], 8
jne 0x4131a2
cmp word [ebp - 0x4040], 0x25
jne 0x413420
xor ecx, ecx
nop dword [eax]
cmp word [ebp + ecx - 0x403e], 0
lea ecx, [ecx + 2]
jne 0x413200
mov eax, ecx
sar eax, 1
cmp eax, 2
jl 0x413260
cmp word [ebp + ecx - 0x4042], 0x25
jne 0x413260
add eax, 0xfffffffe
push 0xffffffffffffffff
push str.ERRORLEVEL
push eax
lea eax, [ebp - 0x403e]
push eax
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x413260
push 0
push 0
push str.ERRORLEVEL
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x4138ea
cmp word [ebp - 0x4040], 0x25
jne 0x413420
xor ecx, ecx
cmp word [ebp + ecx - 0x403e], 0
lea ecx, [ecx + 2]
jne 0x413270
mov eax, ecx
sar eax, 1
cmp eax, 2
jl 0x4132d0
cmp word [ebp + ecx - 0x4042], 0x25
jne 0x4132d0
add eax, 0xfffffffe
push 0xffffffffffffffff
push 0x419ef2
push eax
lea eax, [ebp - 0x403e]
push eax
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x4132d0
push 0
push 0
push 0x419ef2
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x413ac3
cmp word [ebp - 0x4040], 0x25
jne 0x413420
xor ecx, ecx
cmp word [ebp + ecx - 0x403e], 0
lea ecx, [ecx + 2]
jne 0x4132e0
mov eax, ecx
sar eax, 1
cmp eax, 2
jl 0x413340
cmp word [ebp + ecx - 0x4042], 0x25
jne 0x413340
add eax, 0xfffffffe
push 0xffffffffffffffff
push 0x419efc
push eax
lea eax, [ebp - 0x403e]
push eax
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x413340
push 0
push 0
push 0x419efc
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x413ba1
cmp word [ebp - 0x4040], 0x25
jne 0x413420
xor ecx, ecx
cmp word [ebp + ecx - 0x403e], 0
lea ecx, [ecx + 2]
jne 0x413350
mov eax, ecx
sar eax, 1
cmp eax, 2
jl 0x4133b0
cmp word [ebp + ecx - 0x4042], 0x25
jne 0x4133b0
add eax, 0xfffffffe
push 0xffffffffffffffff
push 0x419f06
push eax
lea eax, [ebp - 0x403e]
push eax
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x4133b0
push 0
push 0
push 0x419f06
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x413bce
cmp word [ebp - 0x4040], 0x25
jne 0x413420
xor ecx, ecx
nop dword [eax]
cmp word [ebp + ecx - 0x403e], 0
lea ecx, [ecx + 2]
jne 0x4133c0
mov eax, ecx
sar eax, 1
cmp eax, 2
jl 0x413420
cmp word [ebp + ecx - 0x4042], 0x25
jne 0x413420
add eax, 0xfffffffe
push 0xffffffffffffffff
push 0x419f0c
push eax
lea eax, [ebp - 0x403e]
push eax
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x413420
push 0
push 0
push 0x419f0c
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x413be7
push 0x2000
lea eax, [ebp - 0x8040]
push eax
lea eax, [ebp - 0x4040]
push eax
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsW]
mov edi, eax
sub edi, 1
jb 0x4134cc
test edi, edi
je 0x4134cc
lea eax, [ebp - 0x8040]
push eax
lea eax, [ebp - 0x4040]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
je 0x4134dc
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
je 0x41356f
mov word [ecx], 0x3a
mov edx, dword [ebp - 0x20]
mov word [ecx + 2], dx
cmp dx, 0x7e
jne 0x4135c2
add ecx, 4
push 0x2c
push ecx
mov esi, ecx
call eax
add esp, 8
mov dword [ebp - 0x10], eax
push 0xa
push 0
push esi
mov esi, dword [sym.imp.ucrtbase.dll_wcstol]
call esi
add esp, 0xc
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x41380c
add eax, 2
push 0xa
push 0
push eax
call esi
add esp, 0xc
mov ecx, eax
jmp 0x41380e
mov eax, dword [ebp - 0x18]
add eax, 2
mov edx, eax
mov dword [ebp - 0x14], eax
jmp 0x412ff0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4137d5
mov word [eax], 0x3a
mov ecx, dword [ebp - 0x20]
mov word [eax + 2], cx
cmp dword [0x421394], 0
mov edx, dword [ebp - 0x18]
je 0x413801
lea esi, [eax + 2]
mov eax, 0xfffffffe
nop dword [eax + eax]
cmp word [ebp + eax - 0x403e], 0
lea eax, [eax + 2]
jne 0x413510
lea ecx, [ebp - 0x4040]
mov word [eax + ecx - 2], 0
lea eax, [ebp - 0x403e]
cmp dword [ebp - 0x1c], eax
je 0x413a16
mov edi, 0xfffffffe
nop
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x413540
add edx, 2
lea eax, [ebx + edi]
cmp eax, edx
je 0x413ab6
xor ecx, ecx
nop dword [eax + eax]
cmp word [edx + ecx], 0
lea ecx, [ecx + 2]
jne 0x413560
jmp 0x4138da
mov esi, 0xfffffffe
nop word cs:[eax + eax]
cmp word [ebp + esi - 0x803e], 0
lea esi, [esi + 2]
jne 0x413580
mov edx, dword [ebp - 0x18]
add edx, 2
lea eax, [ebx + esi]
cmp eax, edx
je 0x4135b5
xor ecx, ecx
nop dword [eax]
cmp word [edx + ecx], 0
lea ecx, [ecx + 2]
jne 0x4135a0
push ecx
push edx
push eax
call sym._memmove
add esp, 0xc
push esi
lea eax, [ebp - 0x8040]
push eax
jmp 0x413ab8
push 0x4197fa
push ecx
mov esi, ecx
call dword [sym.imp.ucrtbase.dll_wcsstr]
add esp, 8
test eax, eax
mov edx, dword [ebp - 0x10]
je 0x4130d8
add esi, 2
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], eax
add eax, 2
mov dword [ebp - 0x30], eax
mov edi, dword [ebp - 0x18]
add edi, 2
xor esi, esi
nop word cs:[eax + eax]
cmp word [edi + esi], 0
lea esi, [esi + 2]
jne 0x413600
push esi
call sym._malloc
add esp, 4
test eax, eax
je 0x413c11
push esi
push edi
mov dword [ebp - 0x2c], eax
push eax
call sym._memcpy
add esp, 0xc
mov eax, 0xfffffffe
nop
cmp word [ebp + eax - 0x403e], 0
lea eax, [eax + 2]
jne 0x413630
lea ecx, [ebp - 0x4040]
mov word [eax + ecx - 2], 0
mov eax, dword [ebp - 0x10]
mov word [eax], 0
xor esi, esi
nop word cs:[eax + eax]
cmp word [ebp + esi - 0x8040], 0
lea esi, [esi + 2]
jne 0x413660
push esi
call sym._malloc
add esp, 4
test eax, eax
je 0x413c11
mov edi, eax
push esi
lea eax, [ebp - 0x8040]
push eax
push edi
call sym._memcpy
add esp, 0xc
mov eax, 0xfffffffe
nop word [eax + eax]
cmp word [ebp + eax - 0x803e], 0
lea eax, [eax + 2]
jne 0x4136a0
sar eax, 1
push eax
push edi
call dword [sym.imp.user32.dll_CharUpperBuffW]
xor esi, esi
mov eax, dword [ebp - 0x1c]
nop dword [eax]
cmp word [eax + esi], 0
lea esi, [esi + 2]
jne 0x4136c0
push esi
call sym._malloc
add esp, 4
test eax, eax
je 0x413c11
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x10], eax
push esi
mov esi, dword [ebp - 0x1c]
push esi
mov dword [ebp - 0x20], eax
push eax
call sym._memcpy
mov ecx, esi
add esp, 0xc
mov eax, 0xfffffffe
nop dword [eax]
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x413700
sar eax, 1
push eax
mov edi, dword [ebp - 0x20]
push edi
mov esi, ecx
call dword [sym.imp.user32.dll_CharUpperBuffW]
cmp word [esi], 0x2a
jne 0x41390c
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
push eax
mov edi, dword [ebp - 0x24]
push edi
call dword [sym.imp.ucrtbase.dll_wcsstr]
add esp, 8
test eax, eax
mov esi, dword [ebp - 0x2c]
je 0x413af0
xor ecx, ecx
mov esi, dword [ebp - 0x30]
nop dword [eax + eax]
movzx edx, word [esi + ecx]
mov word [ebx + ecx], dx
add ecx, 2
test dx, dx
jne 0x413750
sub eax, edi
lea ecx, [ebp - 0x8042]
add eax, ecx
mov ecx, dword [ebp - 0x10]
nop dword [eax]
add eax, 2
cmp word [ecx], 0
lea ecx, [ecx + 2]
jne 0x413770
lea ecx, [ebx - 2]
mov edx, ecx
nop word cs:[eax + eax]
cmp word [edx + 2], 0
lea edx, [edx + 2]
jne 0x413790
xor esi, esi
nop dword [eax]
movzx edi, word [eax + esi]
mov word [edx + esi], di
add esi, 2
test di, di
jne 0x4137a0
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4137b0
xor eax, eax
mov esi, dword [ebp - 0x2c]
nop
movzx edx, word [esi + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x4137c0
jmp 0x413b80
cmp dword [0x421394], 0
mov edx, dword [ebp - 0x18]
je 0x413801
add edx, 2
cmp edx, ebx
je 0x4130d6
xor eax, eax
nop
cmp word [edx + eax], 0
lea eax, [eax + 2]
jne 0x4137f0
push eax
push edx
jmp 0x4130cd
add edx, 2
mov dword [ebp - 0x14], edx
jmp 0x412ff0
xor ecx, ecx
mov esi, dword [ebp - 0x1c]
test esi, esi
mov edx, dword [ebp - 0x18]
js 0x413822
lea eax, [edi - 1]
cmp esi, eax
cmovl eax, esi
jmp 0x413830
add esi, edi
test esi, esi
mov eax, 0
cmovle esi, eax
mov eax, esi
lea esi, [eax*2 - 0x8040]
add esi, ebp
cmp dword [ebp - 0x10], 0
je 0x41389f
test ecx, ecx
js 0x413a61
sub edi, eax
cmp ecx, edi
cmovge ecx, edi
test edi, edi
jns 0x413864
mov ecx, 0xfffffffe
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x413857
sar ecx, 1
add edx, 2
lea eax, [ebx + ecx*2]
cmp eax, edx
je 0x413897
mov edi, ecx
xor ecx, ecx
nop word cs:[eax + eax]
cmp word [edx + ecx], 0
lea ecx, [ecx + 2]
jne 0x413880
push ecx
push edx
push eax
call sym._memmove
add esp, 0xc
mov ecx, edi
add ecx, ecx
push ecx
jmp 0x413ab7
mov edi, 0xfffffffe
nop word cs:[eax + eax]
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x4138b0
add edx, 2
lea eax, [ebx + edi]
cmp eax, edx
je 0x413ab6
xor ecx, ecx
nop dword [eax + eax]
cmp word [edx + ecx], 0
lea ecx, [ecx + 2]
jne 0x4138d0
push ecx
push edx
push eax
call sym._memmove
add esp, 0xc
jmp 0x413ab6
push dword [0x42147c]
push 0x419eec
lea eax, [ebp - 0x8040]
push eax
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
mov edi, eax
jmp 0x413444
mov word [ebx], 0
push edi
mov esi, dword [ebp - 0x24]
push esi
call dword [sym.imp.ucrtbase.dll_wcsstr]
add esp, 8
test eax, eax
je 0x413b27
mov ecx, esi
mov edi, ebx
mov edx, esi
nop dword [eax]
mov dword [ebp - 0x10], eax
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [ebp - 0x18], eax
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x413979
sub edx, dword [ebp - 0x24]
lea esi, [edx + ebp]
add esi, 0xffff7fc0
mov edx, edi
nop word cs:[eax + eax]
movzx eax, word [esi]
test ax, ax
je 0x41397f
dec ecx
add esi, 2
mov word [edx], ax
add edx, 2
cmp ecx, 1
ja 0x413960
jmp 0x41397f
mov edx, edi
test ecx, ecx
je 0x413984
mov word [edx], 0
mov eax, dword [ebp - 0x18]
lea edi, [edi + eax*2]
add edi, 0xfffffffe
mov eax, edi
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x413990
xor ecx, ecx
mov esi, dword [ebp - 0x30]
nop
movzx edx, word [esi + ecx]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x4139a0
mov eax, esi
nop word cs:[eax + eax]
add edi, 2
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4139c0
xor esi, esi
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
nop word cs:[eax + eax]
cmp word [eax + esi], 0
lea esi, [esi + 2]
jne 0x4139e0
lea edx, [ecx + esi]
add edx, 0xfffffffe
mov dword [ebp - 0x18], edx
push eax
push edx
call dword [sym.imp.ucrtbase.dll_wcsstr]
mov edx, dword [ebp - 0x18]
add esp, 8
test eax, eax
jne 0x413930
mov eax, dword [ebp - 0x10]
add eax, esi
add eax, 0xfffffffe
jmp 0x413b2b
mov esi, 0xfffffffe
nop dword [eax + eax]
cmp word [ebp + esi - 0x403c], 0
lea esi, [esi + 2]
jne 0x413a20
add edx, 2
lea eax, [ebx + esi]
cmp eax, edx
je 0x413a55
xor ecx, ecx
nop word [eax + eax]
cmp word [edx + ecx], 0
lea ecx, [ecx + 2]
jne 0x413a40
push ecx
push edx
push eax
call sym._memmove
add esp, 0xc
push esi
lea eax, [ebp - 0x403e]
jmp 0x4135bc
add ecx, edi
sub ecx, eax
lea eax, [edi - 1]
mov dword [ebp - 0x10], eax
test ecx, ecx
mov eax, edi
mov edi, 0
cmovg edi, ecx
cmp ecx, eax
cmovge edi, dword [ebp - 0x10]
test edi, edi
jns 0x413a93
mov edi, 0xfffffffe
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x413a86
sar edi, 1
add edx, 2
lea eax, [ebx + edi*2]
cmp eax, edx
je 0x413ab4
xor ecx, ecx
cmp word [edx + ecx], 0
lea ecx, [ecx + 2]
jne 0x413a9f
push ecx
push edx
push eax
call sym._memmove
add esp, 0xc
add edi, edi
push edi
push esi
push ebx
call sym._memcpy
jmp 0x4130d3
sub esp, 0x18
lea eax, [ebp - 0x8040]
mov dword [esp + 0x10], eax
movaps xmm0, xmmword [0x419240]
movups xmmword [esp], xmm0
mov dword [esp + 0x14], 0x2000
call dword [sym.imp.kernel32.dll_GetDateFormatW]
mov edi, eax
jmp 0x413444
xor eax, eax
movzx ecx, word [ebp + eax - 0x8040]
mov word [ebx + eax], cx
add eax, 2
test cx, cx
jne 0x413af2
lea eax, [ebx - 2]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x413b09
xor ecx, ecx
movzx edx, word [esi + ecx]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x413b15
jmp 0x413b80
mov eax, esi
mov edi, ebx
add edi, 0xfffffffe
mov ecx, edi
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x413b30
sub eax, dword [ebp - 0x24]
add eax, ebp
add eax, 0xffff7fc0
xor edx, edx
nop word cs:[eax + eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x413b50
cmp word [edi + 2], 0
lea edi, [edi + 2]
jne 0x413b60
xor eax, eax
mov esi, dword [ebp - 0x2c]
nop
movzx ecx, word [esi + eax]
mov word [edi + eax], cx
add eax, 2
test cx, cx
jne 0x413b70
push esi
mov esi, dword [sym.imp.ucrtbase.dll_free]
call esi
add esp, 4
push dword [ebp - 0x24]
call esi
add esp, 4
push dword [ebp - 0x20]
call esi
add esp, 4
jmp 0x4130d6
sub esp, 0x18
lea eax, [ebp - 0x8040]
mov dword [esp + 0x10], eax
movaps xmm0, xmmword [0x419250]
movups xmmword [esp], xmm0
mov dword [esp + 0x14], 0x2000
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
mov edi, eax
jmp 0x413444
lea eax, [ebp - 0x8040]
push eax
push 0x2000
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
jmp 0x413444
call dword [sym.imp.ucrtbase.dll_rand]
lea ecx, [eax + 0x7fff]
test eax, eax
cmovns ecx, eax
and ecx, 0xffff8000
sub eax, ecx
push eax
jmp 0x4138f0
add esp, 0x8034
pop esi
pop edi
pop ebx
pop ebp
ret
test byte [0x41d038], 2
je 0x413c3c
sub esp, 0x10
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.xrealloc
mov dword [esp], 1
call dbg.wine_dbg_log
add esp, 0x10
push 1
call dword [sym.imp.kernel32.dll_ExitProcess]