Function at 0x419880
Capabilities:
Get common file path
Get process heap flags
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x8068
call fcn.004240d8
sub esp, eax
mov ebx, edx
mov eax, dword [esp + eax]
mov dword [ebp - 0x802c], eax
mov eax, dword [0x428af8]
mov dword [ebp - 0x801e], eax
movzx eax, word [0x428afc]
mov word [ebp - 0x801a], ax
test byte [0x425038], 8
jne 0x419b00
mov eax, dword [ebp - 0x802c]
mov word [ebp - 0x801e], bx
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 dword [ebp - 0x8034], eax
test eax, eax
je 0x419ac5
movzx eax, word [eax]
cmp ax, 0x20
je 0x419ac5
cmp ax, 0x3a
je 0x41a380
mov ecx, dword [ebp - 0x802c]
mov edi, dword [ebp - 0x8034]
sub edi, ecx
mov dword [esp + 4], ecx
sar edi, 1
lea edx, [edi + 1]
lea eax, [edx + edx]
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 ecx, ecx
lea eax, [ebp - 0x8016]
mov dword [esp + 4], 0x3a
mov word [ebp + edx*2 - 0x8018], cx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
xor edx, edx
mov dword [ebp - 0x8038], eax
mov word [ebp - 0x803c], dx
test eax, eax
je 0x41998c
movzx ecx, word [eax + 2]
xor edx, edx
mov word [eax], bx
mov word [eax + 2], dx
mov word [ebp - 0x803c], cx
cmp bx, 0x21
jne 0x4199ab
mov edx, 0x25
mov ecx, 0x25
mov word [ebp - 0x8018], dx
mov word [ebp + edi*2 - 0x8018], cx
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8030], eax
test byte [0x425038], 8
jne 0x41a1f0
cmp word [ebp - 0x8018], 0x25
je 0x419bf0
mov eax, dword [ebp - 0x8030]
mov dword [esp + 8], 0x2000
mov dword [esp + 4], eax
lea eax, [ebp - 0x8018]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsW]
sub esp, 0xc
mov ebx, eax
lea esi, [esi]
nop
test ebx, ebx
je 0x419bd4
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 0x419db0
mov esi, dword [ebp - 0x8034]
mov eax, dword [ebp - 0x8038]
add esi, 2
test eax, eax
je 0x419ac5
movzx edi, word [ebp - 0x803c]
mov ecx, 0x3a
mov word [eax], cx
mov word [eax + 2], di
mov ebx, dword [0x42e0c4]
test ebx, ebx
je 0x419af0
cmp word [ebp - 0x8018], 0
lea eax, [ebp - 0x8018]
je 0x41a9d0
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x419a80
lea edi, [ebp - 0x8018]
sub eax, edi
sar eax, 1
sub eax, 1
xor edx, edx
lea ecx, [ebp - 0x8016]
cmp dword [ebp - 0x8038], ecx
mov dword [esp + 0xc], 0xffffffff
mov word [ebp + eax*2 - 0x8018], dx
mov eax, dword [ebp - 0x8038]
je 0x419abf
add eax, 2
mov dword [esp + 8], eax
jmp 0x419ade
mov eax, dword [0x42e0c4]
test eax, eax
je 0x419af0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x802c]
mov dword [esp], esi
call dbg.WCMD_strsubstW
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, dx
mov dword [ebp - 0x8030], eax
mov eax, dword [ebp - 0x802c]
test eax, eax
je 0x41a460
shr eax, 0x10
je 0x41a0d0
mov esi, dword [ebp - 0x802c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edi, eax
sub esp, 8
mov eax, str._invalid_
test edi, edi
jne 0x41a0e7
cmp word [esi], 0
je 0x419b5b
mov eax, esi
add edi, 1
cmp word [eax + edi*2], 0
jne 0x419b51
mov eax, 0x224c
mov dword [ebp - 0x8034], ebx
mov ecx, dword [ebp - 0x802c]
lea edx, [ebp - 0x4016]
mov word [ebp - 0x4018], ax
lea esi, [esi]
lea esi, [edi - 1]
test edi, edi
jle 0x41a340
lea eax, [ebp - 0x3ef6]
cmp edx, eax
ja 0x41a340
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x41a1c0
ja 0x41a120
cmp ax, 9
je 0x41a143
cmp ax, 0xa
jne 0x41a160
mov eax, 0x6e5c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x419b80
mov esi, dword [ebp - 0x8034]
lea esp, [ebp - 0xc]
pop ebx
add esi, 2
mov eax, esi
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 0x419c00
lea edi, [ebp - 0x8018]
sub eax, edi
cmp eax, 2
jle 0x419c27
sar eax, 1
cmp word [ebp + eax*2 - 0x801a], 0x25
je 0x41a4a0
lea eax, [ebp - 0x8018]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419c30
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x419c57
sar eax, 1
cmp word [ebp + eax*2 - 0x801a], 0x25
je 0x41a723
lea eax, [ebp - 0x8018]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419c60
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x419c87
sar eax, 1
cmp word [ebp + eax*2 - 0x801a], 0x25
je 0x41a7c2
lea eax, [ebp - 0x8018]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419c90
lea ecx, [ebp - 0x8018]
sub eax, ecx
cmp eax, 2
jle 0x419cb7
sar eax, 1
cmp word [ebp + eax*2 - 0x801a], 0x25
je 0x41a9f5
lea eax, [ebp - 0x8018]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419cc0
lea edi, [ebp - 0x8018]
sub eax, edi
cmp eax, 2
jle 0x4199d2
sar eax, 1
cmp word [ebp + eax*2 - 0x801a], 0x25
jne 0x4199d2
sub eax, 2
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
mov dword [esp + 0x10], str.RANDOM
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 0x4199d2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.RANDOM
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x4199d2
call dword [sym.imp.ucrtbase.dll_rand]
mov ebx, dword [ebp - 0x8030]
mov dword [esp + 4], 0x428ac6
cdq
shr edx, 0x11
mov dword [esp], ebx
add eax, edx
and eax, 0x7fff
sub eax, edx
mov dword [esp + 8], eax
call sym._wsprintfW
cmp word [ebp - 0x4018], 0
je 0x419bd4
add ebx, 2
cmp word [ebx], 0
jne 0x419d90
lea esi, [esi]
sub ebx, dword [ebp - 0x8030]
sar ebx, 1
jmp 0x419a00
mov eax, dword [ebp - 0x8038]
test eax, eax
je 0x41a906
mov eax, dword [ebp - 0x8038]
mov edi, 0x3a
mov word [eax], di
movzx edi, word [ebp - 0x803c]
mov word [eax + 2], di
cmp di, 0x7e
je 0x41a670
mov eax, dword [ebp - 0x8038]
mov dword [esp + 4], 0x428af4
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_wcsstr]
mov dword [ebp - 0x8048], eax
call eax
mov edi, eax
lea eax, [eax + 2]
mov dword [ebp - 0x8040], eax
test edi, edi
je 0x419af0
mov eax, dword [ebp - 0x8034]
mov ebx, eax
add ebx, 2
je 0x41a566
cmp word [eax + 2], 0
je 0x41aa7c
mov eax, ebx
add eax, 2
cmp word [eax], 0
jne 0x419e30
sub eax, ebx
sar eax, 1
lea esi, [eax + eax + 2]
mov dword [esp], esi
call dbg.heap_xalloc
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x804c], eax
call sym._memcpy
cmp word [ebp - 0x8018], 0
je 0x41aa50
lea eax, [ebp - 0x8018]
add eax, 2
cmp word [eax], 0
jne 0x419e73
lea esi, [ebp - 0x8018]
sub eax, esi
sar eax, 1
sub eax, 1
xor ebx, ebx
xor esi, esi
mov word [ebp + eax*2 - 0x8018], bx
mov word [edi], si
cmp word [ebp - 0x4018], 0
je 0x41aa68
mov eax, dword [ebp - 0x8030]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419eb0
sub eax, dword [ebp - 0x8030]
sar eax, 1
lea ebx, [eax + eax + 2]
mov dword [esp], ebx
call dbg.heap_xalloc
mov esi, dword [ebp - 0x8030]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [ebp - 0x8044], eax
call sym._memcpy
cmp word [ebp - 0x4018], 0
je 0x41aa61
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419f00
sub eax, dword [ebp - 0x8030]
sar eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
call sym._CharUpperBuffW_8
mov eax, dword [ebp - 0x8038]
sub esp, 8
mov ebx, eax
add ebx, 2
je 0x41a9a6
cmp word [eax + 2], 0
je 0x41aa72
mov eax, ebx
add eax, 2
cmp word [eax], 0
jne 0x419f44
sub eax, ebx
sar eax, 1
lea esi, [eax + eax + 2]
mov dword [esp], esi
call dbg.heap_xalloc
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x8034], eax
call sym._memcpy
mov eax, dword [ebp - 0x8038]
cmp word [eax + 2], 0
je 0x41aa5a
mov eax, ebx
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x419f90
sub eax, ebx
sar eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8034]
mov dword [esp], eax
call sym._CharUpperBuffW_8
mov eax, dword [ebp - 0x8038]
sub esp, 8
cmp word [eax + 2], 0x2a
je 0x41a831
mov esi, dword [ebp - 0x802c]
xor ecx, ecx
mov ebx, dword [ebp - 0x8044]
mov word [esi], cx
mov eax, dword [ebp - 0x8034]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
mov edx, ebx
sub edx, dword [ebp - 0x8044]
add edx, dword [ebp - 0x8030]
mov dword [ebp - 0x8038], eax
test eax, eax
je 0x41a584
mov eax, dword [ebp - 0x8038]
sub eax, ebx
mov dword [ebp - 0x803c], eax
sar eax, 1
add eax, 1
cmp eax, 1
jbe 0x41a575
movzx ebx, word [edx]
mov ecx, esi
test bx, bx
jne 0x41a038
jmp 0x41a04a
movzx ebx, word [edx]
test bx, bx
je 0x41a04a
add ecx, 2
sub eax, 1
add edx, 2
mov word [ecx - 2], bx
cmp eax, 1
jne 0x41a030
xor edx, edx
mov word [ecx], dx
add esi, dword [ebp - 0x803c]
cmp word [esi], 0
mov edx, esi
je 0x41a069
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x41a060
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 0x41a070
cmp word [edi + 2], 0
je 0x41a0a1
mov eax, dword [ebp - 0x8040]
nop
add eax, 2
cmp word [eax], 0
jne 0x41a090
sub eax, dword [ebp - 0x8040]
add esi, eax
mov ebx, dword [ebp - 0x8034]
cmp word [ebx], 0
je 0x41a660
add ebx, 2
cmp word [ebx], 0
jne 0x41a0b1
sub ebx, dword [ebp - 0x8034]
add ebx, dword [ebp - 0x8038]
jmp 0x419fd4
movzx eax, word [ebp - 0x802c]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.8
mov esi, dword [ebp - 0x8030]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Expanding:__s___c__n
mov dword [esp + 0x14], esi
mov dword [esp + 8], global___func__.2
mov dword [esp + 4], 0x425038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.11
jmp 0x4198c4
cmp ax, 0x22
je 0x41a1d3
cmp ax, 0x5c
jne 0x41a160
mov ebx, 0x5c5c
add edx, 2
mov edi, esi
mov word [edx - 2], bx
jmp 0x419b80
mov eax, 0x745c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x419b80
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x41a453
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefWCMD_output]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, 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], bl
movzx ebx, byte [edi + str.0123456789abcdefWCMD_output]
mov byte [edx - 1], al
mov edi, esi
mov byte [edx - 2], bl
jmp 0x419b80
mov eax, 0x725c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x419b80
mov edi, 0x225c
add edx, 2
mov word [edx - 2], di
mov edi, esi
jmp 0x419b80
lea eax, [ebp - 0x8018]
shr eax, 0x10
je 0x41a470
lea eax, [ebp - 0x8018]
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 0x41a311
cmp word [ebp - 0x8018], 0
je 0x41a240
add edi, 1
cmp word [ebp + edi*2 - 0x8018], 0
jne 0x41a232
mov eax, 0x224c
lea ecx, [ebp - 0x8018]
lea edx, [ebp - 0x4016]
mov word [ebp - 0x4018], ax
mov dword [ebp - 0x8030], ecx
nop
lea eax, [ebp - 0x3ef6]
lea ebx, [edi - 1]
cmp edx, eax
ja 0x41a2e0
test edi, edi
jle 0x41a2e0
add dword [ebp - 0x8030], 2
mov eax, dword [ebp - 0x8030]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x41a440
ja 0x41a2b2
cmp ax, 9
je 0x41a410
cmp ax, 0xa
jne 0x41a3b0
mov eax, 0x6e5c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41a260
cmp ax, 0x22
je 0x41a423
cmp ax, 0x5c
jne 0x41a3b0
mov eax, 0x5c5c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41a260
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x41a2fa
mov edi, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], di
mov byte [eax], 0
lea eax, [ebp - 0x4018]
mov dword [esp], eax
mov dword [ebp - 0x8030], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Retrieving_contents_of__s_n
mov dword [esp + 8], global___func__.2
mov dword [esp + 4], 0x425038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.11
jmp 0x4199c4
mov ebx, dword [ebp - 0x8034]
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x41a360
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x4018]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
jmp 0x41a0e7
mov edi, dword [ebp - 0x8034]
movzx eax, bx
mov dword [esp + 4], eax
lea eax, [edi + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
cmove eax, edi
mov dword [ebp - 0x8034], eax
jmp 0x41990c
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x41a4f1
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 0x41a260
mov eax, 0x745c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41a260
mov eax, 0x225c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41a260
mov eax, 0x725c
add edx, 2
mov edi, ebx
mov word [edx - 2], ax
jmp 0x41a260
mov byte [edx], al
mov edi, esi
add edx, 1
jmp 0x419b80
mov eax, str._null_
jmp 0x41a0e7
lea eax, [ebp - 0x8018]
mov dword [esp], str._04x
mov dword [ebp - 0x8040], eax
movzx eax, word [ebp - 0x8040]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.8
jmp 0x41a311
sub eax, 2
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
mov dword [esp + 0x10], str.ERRORLEVEL
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 0x41a4fd
cmp word [ebp - 0x8018], 0x25
jne 0x4199d2
jmp 0x419c27
mov byte [edx], al
mov edi, ebx
add edx, 1
jmp 0x41a260
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 0x41a4de
mov eax, dword [0x437470]
mov ebx, dword [ebp - 0x8030]
mov dword [esp + 4], 0x428ac6
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._wsprintfW
cmp word [ebp - 0x4018], 0
je 0x419bd4
nop
add ebx, 2
cmp word [ebx], 0
jne 0x41a550
sub ebx, dword [ebp - 0x8030]
sar ebx, 1
jmp 0x419a00
mov dword [ebp - 0x804c], 0
jmp 0x419e5f
test eax, eax
je 0x41a04f
mov ecx, esi
jmp 0x41a04a
cmp word [esi], 0
mov ecx, esi
je 0x41a599
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x41a590
xor eax, eax
lea esi, [esi]
nop
movzx ebx, word [edx + eax]
mov word [ecx + eax], bx
add eax, 2
test bx, bx
jne 0x41a5a0
cmp word [esi], 0
mov eax, esi
je 0x41a5cb
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x41a5c0
mov esi, eax
mov ecx, dword [ebp - 0x804c]
xor eax, eax
mov ebx, esi
movzx edx, word [ecx + eax]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x41a5d5
mov eax, dword [ebp - 0x804c]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x8044]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x8034]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov esi, dword [ebp - 0x802c]
sub esp, 0xc
jmp 0x419af0
mov ebx, dword [ebp - 0x8038]
jmp 0x419fd4
mov esi, eax
mov dword [esp + 4], 0x2c
add esi, 4
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcschr]
mov edx, dword [sym.imp.ucrtbase.dll_wcstol]
mov dword [esp], esi
mov edi, eax
mov dword [esp + 8], 0xa
mov dword [ebp - 0x8038], edx
mov dword [esp + 4], 0
call edx
test edi, edi
mov edx, dword [ebp - 0x8038]
mov esi, eax
je 0x41a780
add edi, 2
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], edi
call edx
test esi, esi
js 0x41a9b5
cmp ebx, esi
mov edi, dword [ebp - 0x8030]
cmovle esi, ebx
lea edx, [edi + esi*2]
mov esi, dword [ebp - 0x8034]
mov ecx, edx
sub ecx, dword [ebp - 0x8030]
add esi, 2
test eax, eax
jns 0x41a820
lea eax, [ebx + eax - 1]
sar ecx, 1
sub eax, ecx
cmp ebx, eax
jl 0x41a716
test eax, eax
mov ebx, 0
cmovns ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
jmp 0x419ade
sub eax, 2
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
mov dword [esp + 0x10], 0x428acc
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 0x41a919
cmp word [ebp - 0x8018], 0x25
jne 0x4199d2
jmp 0x419c57
test eax, eax
js 0x41a9da
cmp ebx, eax
cmovg ebx, eax
mov eax, dword [ebp - 0x8030]
lea eax, [eax + ebx*2]
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x8034]
mov esi, dword [ebp - 0x802c]
add eax, 2
mov dword [esp + 4], eax
mov dword [esp], esi
call dbg.WCMD_strsubstW
jmp 0x419af0
sub eax, 2
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
mov dword [esp + 0x10], 0x428ad6
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 0x41aa86
cmp word [ebp - 0x8018], 0x25
je 0x419c87
jmp 0x4199d2
sar ecx, 1
add ecx, 1
sub ebx, ecx
cmp ebx, eax
cmovg ebx, eax
jmp 0x41a716
mov eax, dword [ebp - 0x8034]
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 0x41ab0e
mov esi, dword [ebp - 0x802c]
movzx edx, word [edi + eax + 2]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x41a861
mov eax, dword [ebp - 0x8034]
sub ecx, dword [ebp - 0x8044]
cmp word [eax + 2], 0
mov eax, ebx
je 0x41a899
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x41a890
sub eax, ebx
add ecx, eax
mov eax, dword [ebp - 0x8030]
add eax, ecx
mov ecx, dword [ebp - 0x802c]
cmp word [ecx], 0
je 0x41abc9
add ecx, 2
cmp word [ecx], 0
jne 0x41a8b5
xor edx, edx
movzx ebx, word [eax + edx]
mov word [ecx + edx], bx
add edx, 2
test bx, bx
jne 0x41a8c0
mov edx, dword [ebp - 0x802c]
cmp word [edx], 0
je 0x41abbe
add edx, 2
cmp word [edx], 0
jne 0x41a8e0
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 0x41a8f1
jmp 0x41a5e5
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [ebp - 0x8030]
jmp 0x41a79e
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x428acc
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x41a765
mov ebx, dword [ebp - 0x8030]
mov dword [esp + 0x14], 0x2000
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ebx
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 0x419bd4
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x41a990
sub ebx, dword [ebp - 0x8030]
sar ebx, 1
jmp 0x419a00
mov dword [ebp - 0x8034], 0
jmp 0x419f73
add esi, ebx
mov edx, 1
mov edi, dword [ebp - 0x8030]
test esi, esi
cmovle esi, edx
lea edx, [edi + esi*2 - 2]
jmp 0x41a6e7
mov eax, 0xffffffff
jmp 0x419a96
add ebx, eax
mov eax, 1
test ebx, ebx
cmovle ebx, eax
mov eax, dword [ebp - 0x8030]
lea eax, [eax + ebx*2 - 2]
jmp 0x41a796
sub eax, 2
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8016]
mov dword [esp + 0x10], 0x428ae0
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 0x41ab60
cmp word [ebp - 0x8018], 0x25
je 0x419cb7
jmp 0x4199d2
mov eax, 0xffffffff
jmp 0x419e89
xor eax, eax
jmp 0x419f9d
xor eax, eax
jmp 0x419f11
mov ebx, 2
jmp 0x419ec5
mov esi, 2
jmp 0x419f55
mov esi, 2
jmp 0x419e41
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x428ad6
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x41a804
mov ebx, dword [ebp - 0x8030]
mov dword [esp + 0x14], 0x2000
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ebx
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 0x419bd4
lea esi, [esi]
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x41ab00
jmp 0x419da0
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 0x41ab1a
mov edx, dword [ebp - 0x802c]
cmp word [edx], 0
je 0x41abd4
add edx, 2
cmp word [edx], 0
jne 0x41ab3a
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 0x41ab4b
jmp 0x41a5e5
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x428ae0
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x41aa37
mov ebx, dword [ebp - 0x8030]
mov dword [esp], 0x2000
mov dword [esp + 4], ebx
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
cmp word [ebp - 0x4018], 0
je 0x419bd4
add ebx, 2
cmp word [ebx], 0
jne 0x41abb0
jmp 0x419da0
mov edx, dword [ebp - 0x802c]
jmp 0x41a8e9
mov ecx, dword [ebp - 0x802c]
jmp 0x41a8be
mov edx, dword [ebp - 0x802c]
jmp 0x41ab43