Function at 0x423e6f
Capabilities:
Get common file path
Identify system language via api
Print debug messages

Disassembly:
push 0x21c
mov eax, 0x4624a5
call fcn.00446255
mov ebx, ecx
mov dword [ebp - 0x224], ebx
xor esi, esi
mov dword [ebp - 0x220], esi
and dword [ebp - 4], esi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x228]
call dword [0x46a52c]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 1
call dword [0x46a52c]
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 2
push eax
xor eax, eax
push eax
push eax
push 0x801c
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, eax
test edi, edi
jns 0x423f24
lea eax, [ebp - 0x21c]
push eax
push edi
call fcn.00424634
test eax, eax
jne 0x423f13
push edi
lea eax, [ebp - 0x21c]
push 0x40ad28
push eax
call dword [0x46a514]
add esp, 0xc
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x4242a7
mov ecx, dword [ebx + 0xfc]
lea eax, [ebp - 0x220]
push eax
push 0
mov edx, 0x40adb8
call fcn.0041da92
mov edi, eax
test edi, edi
jns 0x423f55
mov ecx, edi
call fcn.0041b100
mov esi, dword [ebp - 0x220]
jmp 0x4242ae
mov esi, dword [ebp - 0x220]
lea ecx, [ebx + 0x100]
push esi
call dword [0x46a524]
test esi, esi
je 0x423f7a
mov ecx, esi
call fcn.004202b8
and dword [ebp - 0x220], 0
lea eax, [ebp - 0x220]
mov edx, 0x40ae08
push eax
push 0
lea ecx, [ebp - 0x218]
call fcn.0041da92
mov edi, eax
test edi, edi
js 0x423f43
mov esi, dword [ebp - 0x220]
add ebx, 0x104
push esi
mov ecx, ebx
call dword [0x46a524]
test esi, esi
je 0x423fc1
mov ecx, esi
call fcn.004202b8
xor esi, esi
mov dword [ebp - 0x220], esi
mov ecx, dword [ebx]
call fcn.00432caf
test eax, eax
je 0x423fd5
push ecx
push ecx
mov ecx, dword [ebx]
call fcn.00433827
mov ecx, dword [ebp - 0x224]
mov ecx, dword [ecx + 0x100]
call fcn.00432caf
test eax, eax
jne 0x423ffb
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax + 0x100]
call fcn.00433b96
mov ecx, dword [ebx]
call fcn.00433b96
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax + 0x100]
call fcn.00432caf
test eax, eax
je 0x424273
mov ecx, dword [ebx]
call fcn.00432caf
test eax, eax
je 0x424273
xor eax, eax
push eax
push eax
push 0x300f000
push dword [ebx]
push dword [ebx]
push 1
push eax
call dword [sym.imp.WDSCORE.dll_WdsInitialize]
test eax, eax
jne 0x42406e
lea eax, [ebp - 0x21c]
push 0x40af30
push eax
call dword [0x46a514]
pop ecx
pop ecx
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edi, 0x80004005
jmp 0x4242a7
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x282
push ebx
push 0x406890
push 0xa4000
mov ebx, 0x40b028
push ebx
push 0x4000000
call fcn.00420037
pop ecx
pop ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x283
push 0
push 0x406890
push 0xa4000
push dword [0x4684dc]
push 0x40b050
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x284
push 0
push 0x406890
push 0xa4000
push ebx
push 0x4000000
call fcn.00420037
pop ecx
pop ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x286
push ebx
push 0x406890
mov ebx, 0xa4000
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
push eax
push 0x40b068
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x287
push 0
push 0x406890
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
push eax
push 0x40b08c
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x288
push 0
push 0x406890
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx eax, ax
push eax
push 0x40b0b0
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40afb0
push 0x40a828
push 0x289
push 0
push 0x406890
push ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
push eax
push 0x40b0d4
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x4242ae
push dword [ebx]
mov eax, dword [ebp - 0x224]
push dword [eax + 0x100]
lea eax, [ebp - 0x21c]
push 0x40ae78
push eax
call dword [0x46a514]
add esp, 0x10
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edi, 0x80070003
mov ecx, edi
call fcn.0041b100
mov ecx, edi
call fcn.0041b049
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 1
call dword [0x46a528]
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0
call dword [0x46a528]
test esi, esi
je 0x4242e0
mov ecx, esi
call fcn.004202b8
mov eax, edi
call fcn.00446209
ret