Function at 0x41d990
Capabilities:
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea esi, [ebp - 0x220]
push ebx
mov ebx, eax
sub esp, 0x64c
mov dword [esp + 8], 0x104
mov dword [esp + 4], esi
mov dword [esp], 0x43708a
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
dec eax
sub esp, 0xc
cmp eax, 0x102
jbe 0x41d9eb
xor eax, eax
mov edx, 0x24
jmp 0x41d9df
movzx edx, word [eax + str._P_G]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x41d9d8
test ebx, ebx
je 0x41da90
mov dword [ebp - 0x630], 0xa000d
lea ebx, [ebp - 0x62c]
lea edi, [ebp - 0x630]
xor eax, eax
mov word [ebx], ax
movzx eax, word [ebp - 0x220]
test ax, ax
jne 0x41da36
jmp 0x41da78
mov word [ebx], ax
add esi, 2
xor eax, eax
add ebx, 2
mov word [ebx], ax
movzx eax, word [esi]
test ax, ax
je 0x41da78
cmp ax, 0x24
jne 0x41da20
movzx eax, word [esi + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
sub eax, 0x24
cmp eax, 0x3b
ja case.0x41da51.37
jmp dword [eax*4 + 0x4370a4]
mov eax, 0x24
add ebx, 2
mov word [ebx - 2], ax
lea esi, [esi]
xor eax, eax
add esi, 4
mov word [ebx], ax
movzx eax, word [esi]
test ax, ax
jne 0x41da36
mov edx, edi
mov eax, 0xfffffff5
call sym._WCMD_output_asis_handle
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [ebp - 0x630]
mov ebx, edi
jmp 0x41da09
mov edx, 0xa
add ebx, 2
xor eax, eax
add esi, 4
mov word [ebx - 2], dx
mov word [ebx], ax
jmp 0x41da70
mov eax, dword [0x430408]
test eax, eax
je case.0x41da51.37
mov eax, dword [eax + 4]
mov dword [esp], ebx
mov dword [esp + 4], 0x2b
mov dword [esp + 8], eax
call dword [sym.imp.ucrtbase.dll_memset]
mov eax, dword [0x430408]
mov eax, dword [eax + 4]
lea ebx, [ebx + eax*2]
jmp case.0x41da51.37
mov eax, 0x26
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
mov eax, 0x7c
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
mov ecx, 0x28
add ebx, 2
xor eax, eax
add esi, 4
mov word [ebx - 2], cx
mov word [ebx], ax
jmp 0x41da70
mov eax, ebx
mov dword [esp + 0x10], ebx
sub eax, edi
mov dword [esp + 0xc], 0
sar eax, 1
mov dword [esp + 8], 0
neg eax
mov dword [esp + 4], 1
add eax, 0x104
mov dword [esp], 0x400
mov dword [esp + 0x14], eax
call dword [sym.imp.kernel32.dll_GetDateFormatW]
sub esp, 0x18
cmp word [ebx], 0
je case.0x41da51.37
lea esi, [esi]
nop
add ebx, 2
cmp word [ebx], 0
jne 0x41db78
xor eax, eax
add esi, 4
mov word [ebx], ax
jmp 0x41da70
mov edx, 0x1b
add ebx, 2
xor eax, eax
add esi, 4
mov word [ebx - 2], dx
mov word [ebx], ax
jmp 0x41da70
mov eax, 0x29
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
mov eax, 0x3e
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
mov eax, 8
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
mov eax, 0x3c
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
lea eax, [ebp - 0x428]
mov dword [esp], 0x104
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
test eax, eax
je case.0x41da51.37
movzx eax, word [ebp - 0x428]
add ebx, 2
mov word [ebx - 2], ax
jmp case.0x41da51.37
lea eax, [ebp - 0x428]
mov dword [esp], 0x104
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
test eax, eax
je case.0x41da51.37
cmp word [ebx], 0
mov edx, ebx
je 0x41dc79
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x41dc70
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [ebp + eax - 0x428]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41dc80
cmp word [ebx], 0
je case.0x41da51.37
nop
add ebx, 2
cmp word [ebx], 0
jne 0x41dca0
jmp case.0x41da51.37
mov eax, 0x3d
add ebx, 2
add esi, 4
mov word [ebx - 2], ax
xor eax, eax
mov word [ebx], ax
jmp 0x41da70
mov ecx, 0x20
add ebx, 2
xor eax, eax
add esi, 4
mov word [ebx - 2], cx
mov word [ebx], ax
jmp 0x41da70
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
sub esp, 0x18
cmp word [ebx], 0
je case.0x41da51.37
nop
add ebx, 2
cmp word [ebx], 0
jne 0x41dd20
xor eax, eax
add esi, 4
mov word [ebx], ax
jmp 0x41da70
cmp word [ebx], 0
mov edx, ebx
je 0x41dd49
nop
add edx, 2
cmp word [edx], 0
jne 0x41dd40
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x434440]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41dd50
cmp word [ebx], 0
je case.0x41da51.37
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x41dd70
xor eax, eax
add esi, 4
mov word [ebx], ax
jmp 0x41da70