Function at 0x401980
Capabilities:
Get number of processors
Get process heap flags
Query environment variable

Disassembly:
push ebp
mov eax, 0x8acc
mov ebp, esp
push edi
push esi
push ebx
call fcn.004240d8
mov esi, 0x4260f6
sub esp, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x8a7c], 0
mov eax, dword [eax]
mov dword [ebp - 0x8a94], eax
add eax, 2
mov dword [ebp - 0x8a8c], eax
mov ebx, eax
lea esi, [esi]
nop
lea edi, [ebx + 2]
test ebx, ebx
je 0x401d32
movzx ecx, word [ebx]
mov eax, 0x4260e2
mov edx, 0x7e
jmp 0x4019e6
movzx edx, word [eax]
add eax, 2
cmp cx, dx
je 0x401d00
cmp esi, eax
jne 0x4019e0
cmp ebx, dword [ebp - 0x8a8c]
ja 0x401a19
jmp 0x401a63
sub eax, 0x61
mov eax, dword [eax*4 + 0x4373a0]
test eax, eax
jne 0x401a63
sub ebx, 2
cmp dword [ebp - 0x8a8c], ebx
jae 0x401a63
test byte [section..data], 8
jne 0x401d40
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
test ecx, ecx
jne 0x401a43
mov edx, dword [0x42e0c4]
test edx, edx
je 0x401a43
lea edx, [eax - 0x30]
cmp dx, 9
jbe 0x401a63
lea edx, [eax - 0x61]
cmp dx, 0x19
jbe 0x401a00
lea edx, [eax - 0x41]
cmp dx, 0x19
ja 0x401a0e
sub eax, 0x27
mov eax, dword [eax*4 + 0x4373a0]
test eax, eax
je 0x401a0e
mov eax, dword [ebp - 0x8a8c]
cmp eax, ebx
je 0x402024
mov esi, ebx
sub esi, eax
xor eax, eax
mov word [ebp - 0x4018], ax
movzx eax, word [ebx]
cmp esi, 2
jle 0x401a90
cmp ax, 0x30
je 0x4026d4
lea edx, [eax - 0x30]
cmp dx, 9
jbe 0x40203a
lea edx, [eax - 0x61]
cmp dx, 0x19
ja 0x402587
sub eax, 0x61
lea edi, [ebp - 0x8018]
mov edx, dword [eax*4 + 0x4373a0]
xor eax, eax
mov dword [ebp - 0x8a98], edi
movzx ecx, word [edx + eax]
mov word [edi + eax], cx
add eax, 2
test cx, cx
jne 0x401ac2
mov eax, dword [ebp - 0x8a8c]
cmp word [ebp - 0x8018], 0x22
lea edx, [eax + esi]
je 0x4024dd
cmp dword [ebp - 0x8a8c], edx
jae 0x402b92
mov eax, dword [ebp - 0x8a94]
movzx ecx, word [eax + 2]
cmp cx, 0x24
je 0x401f51
mov eax, dword [ebp - 0x8a8c]
jmp 0x401b1b
cmp word [eax], 0x24
je 0x401f51
add eax, 2
cmp eax, edx
jb 0x401b11
lea eax, [ebp - 0x8a7c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8a40]
mov dword [ebp - 0x8aa4], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x8a98]
mov dword [ebp - 0x8a90], edx
mov dword [esp], eax
call sym._WCMD_get_fullpath
mov edx, dword [ebp - 0x8a90]
test eax, eax
mov dword [ebp - 0x8a9c], eax
jne 0x402382
mov eax, dword [ebp - 0x8a94]
xor ecx, ecx
mov word [ebp - 0x8a40], cx
movzx eax, word [eax + 2]
mov ecx, eax
cmp ax, 0x61
je 0x402c3d
mov eax, dword [ebp - 0x8a8c]
jmp 0x401b9d
cmp word [eax], 0x61
je 0x4023d5
add eax, 2
cmp edx, eax
ja 0x401b93
mov dword [ebp - 0x8aa0], 0
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8a90], eax
cmp dword [ebp - 0x8a8c], edx
jae 0x402c9c
mov eax, dword [ebp - 0x8a94]
movzx eax, word [eax + 2]
mov ecx, eax
cmp ax, 0x74
je 0x4021d6
mov esi, dword [ebp - 0x8a8c]
jmp 0x401bee
cmp word [esi], 0x74
je 0x4021d6
add esi, 2
cmp edx, esi
ja 0x401be4
movzx esi, word [ebp - 0x4018]
cmp ax, 0x7a
je 0x402c58
mov eax, dword [ebp - 0x8a8c]
jmp 0x401c1a
cmp word [eax], 0x7a
je 0x4024c0
add eax, 2
cmp edx, eax
ja 0x401c10
cmp cx, 0x73
je 0x4020fe
mov eax, dword [ebp - 0x8a8c]
jmp 0x401c3d
cmp word [eax], 0x73
je 0x4020fe
add eax, 2
cmp edx, eax
ja 0x401c33
cmp cx, 0x66
je 0x402098
mov eax, dword [ebp - 0x8a8c]
jmp 0x401c6a
cmp word [eax], 0x66
je 0x402098
add eax, 2
cmp edx, eax
ja 0x401c60
xor eax, eax
test si, si
lea edi, [ebp - 0x8428]
mov dword [ebp - 0x8aac], edx
setne al
mov dword [esp + 0xc], edi
mov dword [ebp - 0x8a9c], eax
lea eax, [ebp - 0x8220]
mov dword [ebp - 0x8aa8], eax
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8630]
mov dword [esp + 8], eax
lea eax, [ebp - 0x8a78]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8aa4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wsplitpath]
mov eax, dword [ebp - 0x8a94]
mov edx, dword [ebp - 0x8aac]
movzx ecx, word [eax + 2]
cmp cx, 0x64
je 0x40278f
mov eax, dword [ebp - 0x8a8c]
jmp 0x401cee
cmp word [eax], 0x64
je 0x40278f
add eax, 2
cmp edx, eax
ja 0x401ce4
xor esi, esi
jmp 0x40281f
cmp cx, 0x24
jne 0x401d32
movzx eax, word [ebx + 2]
test ax, ax
je 0x401d26
cmp ax, 0x3a
je 0x401d26
add edi, 2
movzx eax, word [edi]
cmp ax, 0x3a
je 0x401d26
test ax, ax
jne 0x401d15
test ax, ax
je 0x402024
add edi, 2
mov ebx, edi
jmp 0x4019c0
test ebx, ebx
je 0x402030
mov eax, ebx
shr eax, 0x10
je 0x401f30
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edi, eax
sub esp, 8
mov eax, 0x42605f
test edi, edi
jne 0x401e2b
cmp word [ebx], 0
je 0x401d8a
lea esi, [esi]
add edi, 1
cmp word [ebx + edi*2], 0
jne 0x401d80
mov eax, 0x224c
mov ecx, ebx
mov dword [ebp - 0x8a90], ebx
lea esi, [edi - 1]
mov word [ebp - 0x4018], ax
lea edx, [ebp - 0x4016]
test edi, edi
jle 0x401dfa
lea esi, [esi]
nop
lea eax, [ebp - 0x3ef6]
cmp edx, eax
ja 0x401dfa
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x401e83
ja 0x401e60
cmp ax, 9
je 0x401f00
cmp ax, 0xa
jne 0x401ea0
mov eax, 0x6e5c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
lea esi, [edi - 1]
test edi, edi
jg 0x401db0
mov ebx, dword [ebp - 0x8a90]
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x401e1a
mov esi, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], si
mov byte [eax], 0
lea eax, [ebp - 0x4018]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Looking_backwards_for_parameter_id:__s_n
mov dword [esp + 8], 0x4260c4
mov dword [esp + 4], 0x425000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.1
jmp 0x401a26
cmp ax, 0x22
je 0x401f13
cmp ax, 0x5c
jne 0x401ea0
mov edi, 0x5c5c
add edx, 2
mov word [edx - 2], di
mov edi, esi
jmp 0x401df3
mov eax, 0x725c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x401df3
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x401f45
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefWCMD_HandleTildeModifiers]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefWCMD_HandleTildeModifiers]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefWCMD_HandleTildeModifiers]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefWCMD_HandleTildeModifiers]
mov byte [edx - 1], al
mov edi, esi
mov byte [edx - 2], bl
jmp 0x401df3
mov eax, 0x745c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x401df3
mov eax, 0x225c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x401df3
mov dword [esp + 4], ebx
mov dword [esp], section..rdata
call sym._wine_dbg_sprintf.constprop.3
jmp 0x401e2b
mov byte [edx], al
mov edi, esi
add edx, 1
jmp 0x401df3
mov edi, dword [ebp - 0x8a8c]
mov dword [ebp - 0x8a9c], edx
mov esi, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [esp + 4], 0x24
mov dword [esp], edi
call esi
mov dword [esp], edi
lea ecx, [eax + 2]
mov dword [esp + 4], 0x3a
mov dword [ebp - 0x8a90], ecx
call esi
mov ecx, dword [ebp - 0x8a90]
lea esi, [ebp - 0x8220]
mov dword [esp], esi
sub eax, ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov edi, eax
sar edi, 1
call sym._memcpy
xor eax, eax
mov dword [esp + 8], 0
mov word [ebp + edi*2 - 0x8220], ax
mov edi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
mov dword [esp + 4], 0
mov dword [esp], esi
call edi
mov edx, dword [ebp - 0x8a9c]
sub esp, 0xc
test eax, eax
mov ecx, eax
jne 0x402705
xor eax, eax
mov word [ebp - 0x8018], ax
xor eax, eax
mov word [ebp - 0x4018], ax
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8a90], eax
mov eax, dword [ebp - 0x8a90]
add ebx, 2
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp], eax
call dbg.WCMD_strsubstW
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x426058
jmp 0x401e2b
mov edx, dword [0x42e0c4]
sub eax, 0x30
mov dword [esp + 0x14], 0x42604c
lea edi, [ebp - 0x8018]
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
add eax, dword [edx + eax*4 + 0xc]
mov dword [esp + 4], eax
mov eax, dword [edx]
mov dword [esp], eax
call dbg.WCMD_parameter_with_delims
mov dword [ebp - 0x8a98], edi
xor edx, edx
movzx ecx, word [eax + edx]
mov word [edi + edx], cx
add edx, 2
test cx, cx
jne 0x402083
jmp 0x401ad2
test si, si
je 0x40259e
mov edx, dword [ebp - 0x8a90]
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x4020b0
xor eax, eax
mov ecx, 0x20
jmp 0x4020c9
movzx ecx, word [eax + 0x4260a8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4020c2
cmp word [ebp - 0x4018], 0
je 0x40259e
mov edx, dword [ebp - 0x8a90]
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x4020f0
jmp 0x4025a4
test si, si
je 0x402135
mov ecx, dword [ebp - 0x8a90]
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x402110
xor eax, eax
mov esi, 0x20
jmp 0x402129
movzx esi, word [eax + 0x4260a8]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x402122
mov edi, dword [ebp - 0x8a7c]
xor eax, eax
lea esi, [ebp - 0x8838]
test edi, edi
je 0x4021c0
lea esi, [esi]
nop
movzx ecx, word [edi + eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x402150
xor eax, eax
mov dword [ebp - 0x8a9c], edx
mov word [edi], ax
mov edi, dword [ebp - 0x8aa4]
mov dword [esp + 8], 0x104
mov dword [esp + 4], edi
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetShortPathNameW]
mov edx, dword [ebp - 0x8a9c]
sub esp, 0xc
cmp word [ebp - 0x8a40], 0
je 0x402c27
mov ecx, edi
nop
add ecx, 2
cmp word [ecx], 0
jne 0x4021a0
xor eax, eax
lea esi, [esi]
nop
movzx edi, word [esi + eax]
mov word [ecx + eax], di
add eax, 2
test di, di
jne 0x4021b0
mov eax, dword [ebp - 0x8a94]
movzx esi, word [ebp - 0x4018]
movzx ecx, word [eax + 2]
jmp 0x401c44
mov ecx, dword [ebp - 0x8a9c]
movzx esi, word [ebp - 0x4018]
test ecx, ecx
je 0x4025c5
test si, si
je 0x402225
mov ecx, dword [ebp - 0x8a90]
lea esi, [esi]
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x402200
xor eax, eax
mov esi, 0x20
jmp 0x402219
movzx esi, word [eax + 0x4260a8]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x402212
lea edi, [ebp - 0x8220]
lea eax, [ebp - 0x8a50]
mov dword [ebp - 0x8aa0], edx
mov dword [ebp - 0x8aa8], edi
lea esi, [ebp - 0x8838]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FileTimeToSystemTime]
sub esp, 8
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_GetDateFormatW]
mov ecx, esi
mov edx, dword [ebp - 0x8aa0]
sub esp, 0x18
cmp word [ebp - 0x8838], 0
je 0x40229e
add ecx, 2
cmp word [ecx], 0
jne 0x402295
xor eax, eax
mov edi, 0x20
jmp 0x4022b7
movzx edi, word [eax + 0x4260a8]
mov word [ecx + eax], di
add eax, 2
test di, di
jne 0x4022b0
cmp word [ebp - 0x8838], 0
je 0x402c7a
mov eax, esi
add eax, 2
cmp word [eax], 0
jne 0x4022d3
mov edi, eax
mov ecx, 0x104
sub edi, esi
sar edi, 1
sub ecx, edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x8aa8]
mov dword [ebp - 0x8aa0], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
mov ecx, dword [ebp - 0x8a90]
mov edx, dword [ebp - 0x8aa0]
sub esp, 0x18
cmp word [ebp - 0x4018], 0
je 0x402349
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x402340
xor eax, eax
lea esi, [esi]
nop
movzx edi, word [esi + eax]
mov word [ecx + eax], di
add eax, 2
test di, di
jne 0x402350
mov eax, dword [ebp - 0x8a94]
movzx esi, word [ebp - 0x4018]
movzx eax, word [eax + 2]
mov dword [ebp - 0x8aa0], 1
mov ecx, eax
jmp 0x401bfc
lea eax, [ebp - 0x8a64]
mov dword [ebp - 0x8a90], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x8aa4]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileAttributesExW]
mov edx, dword [ebp - 0x8a90]
sub esp, 0xc
mov dword [ebp - 0x8a9c], eax
cmp dword [ebp - 0x8a8c], edx
jae 0x402bdf
mov eax, dword [ebp - 0x8a94]
cmp word [eax + 2], 0x61
jne 0x401b8b
mov eax, dword [ebp - 0x8a9c]
test eax, eax
je 0x402690
xor eax, eax
mov ecx, 0x2d
lea esi, [ebp - 0x8838]
jmp 0x4023f9
movzx ecx, word [eax + str._________]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4023f2
mov eax, dword [ebp - 0x8a64]
test al, 0x10
jne 0x402779
movzx edi, word [ebp - 0x8838]
test al, 1
je 0x40242a
mov ecx, 0x72
mov word [ebp - 0x8836], cx
test al, 0x20
je 0x40243a
mov ecx, 0x61
mov word [ebp - 0x8834], cx
test al, 2
je 0x40244a
mov ecx, 0x68
mov word [ebp - 0x8832], cx
test al, 4
je 0x40245a
mov ecx, 0x73
mov word [ebp - 0x8830], cx
test ah, 8
je 0x40246b
mov ecx, 0x63
mov word [ebp - 0x882e], cx
test ah, 4
je 0x40247c
mov eax, 0x6c
mov word [ebp - 0x8828], ax
lea eax, [ebp - 0x4018]
cmp word [ebp - 0x4018], 0
mov dword [ebp - 0x8a90], eax
mov ecx, eax
je 0x40249d
add ecx, 2
cmp word [ecx], 0
jne 0x402494
xor eax, eax
jmp 0x4024a5
movzx edi, word [esi + eax]
mov word [ecx + eax], di
add eax, 2
test di, di
jne 0x4024a1
mov dword [ebp - 0x8aa0], 1
jmp 0x401bba
mov edi, dword [ebp - 0x8a9c]
test edi, edi
jne 0x4025e0
mov dword [ebp - 0x8aa0], 1
jmp 0x401c21
mov eax, dword [ebp - 0x8a8c]
cmp eax, edx
jae 0x402b92
mov esi, dword [ebp - 0x8a94]
movzx ecx, word [esi + 2]
cmp cx, 0x7e
je 0x402511
lea esi, [esi]
nop
add eax, 2
cmp eax, edx
jae 0x401aff
cmp word [eax], 0x7e
jne 0x402500
mov eax, dword [ebp - 0x8a98]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x402520
sub eax, dword [ebp - 0x8a98]
sar eax, 1
lea ecx, [eax - 1]
cmp word [ebp + ecx*2 - 0x8018], 0x22
jne 0x40254b
xor eax, eax
mov word [ebp + ecx*2 - 0x8018], ax
mov eax, ecx
lea eax, [eax + eax - 1]
mov dword [ebp - 0x8a90], edx
mov dword [esp + 8], eax
lea eax, [ebp - 0x8016]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8a98]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_memmove]
mov eax, dword [ebp - 0x8a94]
mov edx, dword [ebp - 0x8a90]
movzx ecx, word [eax + 2]
jmp 0x401aff
lea edx, [eax - 0x41]
sub eax, 0x27
cmp dx, 0x1a
mov edx, 0xffffffff
cmovae eax, edx
jmp 0x401aad
mov edx, dword [ebp - 0x8a90]
mov esi, dword [ebp - 0x8aa4]
xor eax, eax
lea esi, [esi]
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4025b0
jmp 0x401ffe
mov ecx, eax
cmp ax, 0x7a
je 0x402c66
mov dword [ebp - 0x8aa0], 1
jmp 0x401c06
mov edi, dword [ebp - 0x8a44]
test si, si
je 0x402616
mov ecx, dword [ebp - 0x8a90]
add ecx, 2
cmp word [ecx], 0
jne 0x4025f1
xor eax, eax
mov esi, 0x20
jmp 0x40260a
movzx esi, word [eax + 0x4260a8]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x402603
lea esi, [ebp - 0x8838]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x4260ac
mov dword [esp], esi
mov dword [ebp - 0x8a9c], edx
call sym._wsprintfW
cmp word [ebp - 0x4018], 0
mov ecx, dword [ebp - 0x8a90]
mov edx, dword [ebp - 0x8a9c]
je 0x402659
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x402650
xor eax, eax
lea esi, [esi]
nop
movzx edi, word [esi + eax]
mov word [ecx + eax], di
add eax, 2
test di, di
jne 0x402660
mov eax, dword [ebp - 0x8a94]
movzx esi, word [ebp - 0x4018]
mov dword [ebp - 0x8aa0], 1
movzx ecx, word [eax + 2]
jmp 0x401c21
cmp dword [ebp - 0x8a8c], edx
jae 0x402c86
mov eax, dword [ebp - 0x8a94]
lea esi, [ebp - 0x4018]
mov dword [ebp - 0x8aa0], 1
mov dword [ebp - 0x8a90], esi
movzx esi, word [ebp - 0x4018]
movzx eax, word [eax + 2]
mov ecx, eax
cmp ax, 0x74
jne 0x401bdc
jmp 0x402371
lea edi, [ebp - 0x8018]
mov eax, dword [0x42e0c4]
mov dword [ebp - 0x8a98], edi
mov ecx, dword [eax + 8]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x4026f0
jmp 0x401ad2
lea eax, [ecx + ecx]
mov dword [ebp - 0x8aa0], edx
mov dword [esp], eax
mov dword [ebp - 0x8a9c], ecx
call dbg.heap_xalloc
mov dword [ebp - 0x8a90], eax
test eax, eax
je 0x40274a
mov ecx, dword [ebp - 0x8a9c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], ecx
call edi
mov edx, dword [ebp - 0x8aa0]
sub esp, 0xc
test eax, eax
jne 0x402aa4
mov esi, dword [ebp - 0x8a90]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x401fe0
mov edi, 0x64
mov word [ebp - 0x8838], di
mov edi, 0x64
jmp 0x40241a
movzx eax, word [ebp - 0x4018]
test si, si
je 0x4027d2
mov ecx, dword [ebp - 0x8a90]
test ax, ax
je 0x4027af
add ecx, 2
cmp word [ecx], 0
jne 0x4027a6
xor eax, eax
mov esi, 0x20
jmp 0x4027bf
movzx esi, word [eax + 0x4260a8]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x4027b8
movzx eax, word [ebp - 0x4018]
mov ecx, dword [ebp - 0x8a90]
test ax, ax
je 0x4027e6
add ecx, 2
cmp word [ecx], 0
jne 0x4027dd
xor eax, eax
movzx esi, word [ebp + eax - 0x8a78]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x4027e8
mov eax, dword [ebp - 0x8a94]
mov esi, 1
mov dword [ebp - 0x8a9c], 0
mov dword [ebp - 0x8aa0], 1
movzx ecx, word [eax + 2]
cmp cx, 0x70
je 0x402965
mov eax, dword [ebp - 0x8a8c]
jmp 0x40283b
cmp word [eax], 0x70
je 0x402965
add eax, 2
cmp edx, eax
ja 0x402831
cmp cx, 0x6e
jne 0x402a04
mov esi, dword [ebp - 0x8a9c]
movzx eax, word [ebp - 0x4018]
test esi, esi
je 0x402894
mov ecx, dword [ebp - 0x8a90]
test ax, ax
je 0x402871
add ecx, 2
cmp word [ecx], 0
jne 0x402868
xor eax, eax
mov esi, 0x20
jmp 0x402881
movzx esi, word [eax + 0x4260a8]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x40287a
movzx eax, word [ebp - 0x4018]
mov ecx, dword [ebp - 0x8a90]
test ax, ax
je 0x4028a8
add ecx, 2
cmp word [ecx], 0
jne 0x40289f
xor eax, eax
movzx esi, word [edi + eax]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x4028aa
mov eax, dword [ebp - 0x8a94]
movzx ecx, word [eax + 2]
cmp cx, 0x78
je 0x402a6c
mov dword [ebp - 0x8aa0], 1
mov esi, 1
mov dword [ebp - 0x8a9c], 0
mov eax, dword [ebp - 0x8a8c]
jmp 0x4028fa
cmp word [eax], 0x78
je 0x402a2b
add eax, 2
cmp edx, eax
ja 0x4028f0
test esi, esi
jne 0x402931
mov eax, dword [ebp - 0x8a8c]
cmp cx, 0x73
jne 0x40292a
jmp 0x402b1f
cmp word [eax], 0x73
je 0x402b1f
add eax, 2
cmp edx, eax
ja 0x402920
mov eax, dword [ebp - 0x8aa0]
test eax, eax
jne 0x401ffe
mov ecx, dword [ebp - 0x8a90]
mov esi, dword [ebp - 0x8a98]
xor eax, eax
lea esi, [esi]
movzx edx, word [esi + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x402950
jmp 0x401ffe
mov ecx, dword [ebp - 0x8a9c]
movzx eax, word [ebp - 0x4018]
test ecx, ecx
je 0x4029ad
mov ecx, dword [ebp - 0x8a90]
test ax, ax
je 0x40298a
add ecx, 2
cmp word [ecx], 0
jne 0x402981
xor eax, eax
mov esi, 0x20
jmp 0x40299a
movzx esi, word [eax + 0x4260a8]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x402993
movzx eax, word [ebp - 0x4018]
mov ecx, dword [ebp - 0x8a90]
test ax, ax
je 0x4029c1
add ecx, 2
cmp word [ecx], 0
jne 0x4029b8
xor eax, eax
movzx esi, word [ebp + eax - 0x8630]
mov word [ecx + eax], si
add eax, 2
test si, si
jne 0x4029c3
mov eax, dword [ebp - 0x8a94]
movzx ecx, word [eax + 2]
cmp cx, 0x6e
je 0x40288d
mov dword [ebp - 0x8aa0], 1
mov esi, 1
mov dword [ebp - 0x8a9c], 0
mov eax, dword [ebp - 0x8a8c]
jmp 0x402a1a
cmp word [eax], 0x6e
je 0x40284c
add eax, 2
cmp edx, eax
ja 0x402a10
cmp cx, 0x78
jne 0x4028e7
mov edi, dword [ebp - 0x8a9c]
movzx eax, word [ebp - 0x4018]
test edi, edi
je 0x402a73
mov edx, dword [ebp - 0x8a90]
test ax, ax
je 0x402a50
add edx, 2
cmp word [edx], 0
jne 0x402a47
xor eax, eax
mov ecx, 0x20
jmp 0x402a60
movzx ecx, word [eax + 0x4260a8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402a59
movzx eax, word [ebp - 0x4018]
mov edx, dword [ebp - 0x8a90]
test ax, ax
je 0x402a87
add edx, 2
cmp word [edx], 0
jne 0x402a7e
mov esi, dword [ebp - 0x8aa8]
xor eax, eax
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402a8f
jmp 0x401ffe
mov eax, dword [ebp - 0x8a98]
mov dword [ebp - 0x8a9c], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8a90]
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SearchPathW]
sub esp, 0x18
test eax, eax
je 0x40274a
mov esi, dword [ebp - 0x8a90]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x8a9c]
sub esp, 0xc
jmp 0x401b22
cmp word [ebp - 0x4018], 0
je 0x402c32
mov edx, dword [ebp - 0x8a90]
add edx, 2
cmp word [edx], 0
jne 0x402b33
xor eax, eax
mov ecx, 0x20
jmp 0x402b4c
movzx ecx, word [eax + 0x4260a8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402b45
cmp word [ebp - 0x4018], 0
je 0x402c32
mov edx, dword [ebp - 0x8a90]
add edx, 2
cmp word [edx], 0
jne 0x402b6c
mov esi, dword [ebp - 0x8aa4]
xor eax, eax
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402b7d
jmp 0x401ffe
lea eax, [ebp - 0x8a7c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8a40]
mov dword [ebp - 0x8aa4], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x8a98]
mov dword [ebp - 0x8a90], edx
mov dword [esp], eax
call sym._WCMD_get_fullpath
mov edx, dword [ebp - 0x8a90]
test eax, eax
jne 0x402382
mov word [ebp - 0x8a40], 0
lea eax, [ebp - 0x8220]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8428]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8630]
mov dword [esp + 8], eax
lea eax, [ebp - 0x8a78]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8aa4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wsplitpath]
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8a90], eax
jmp 0x40293f
mov ecx, dword [ebp - 0x8aa4]
jmp 0x4021a9
mov edx, dword [ebp - 0x8a90]
jmp 0x402b75
mov dword [ebp - 0x8aa0], 1
lea esi, [ebp - 0x4018]
mov dword [ebp - 0x8a90], esi
jmp 0x401bdc
mov eax, dword [ebp - 0x8a9c]
test eax, eax
jne 0x4025e0
mov dword [ebp - 0x8aa0], 1
mov ecx, 0x7a
jmp 0x401c2b
mov ecx, 0x104
mov eax, esi
jmp 0x4022e9
mov dword [ebp - 0x8aa0], 1
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x8a90], eax
lea eax, [ebp - 0x8220]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8428]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8630]
mov dword [esp + 8], eax
lea eax, [ebp - 0x8a78]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8aa4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wsplitpath]
jmp 0x402931