Function at 0x4022d0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x414
mov eax, dword [0x410040]
xor eax, esp
mov dword [esp + 0x410], eax
push esi
push 0x208
lea eax, [esp + 8]
push 0
push eax
call fcn.00406300
add esp, 0xc
push 0x104
lea ecx, [esp + 8]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [esp + 4]
push 0x5c
push edx
call fcn.0040323f
push 0x208
mov esi, eax
lea eax, [esp + 0x218]
push 0
push eax
call fcn.00406300
add esp, 0x14
test esi, esi
jne 0x402350
lea ecx, [esp + 0x20c]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
jmp 0x402399
lea eax, [esp + 4]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402357
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, esi
lea esi, [eax + 2]
lea ecx, [ecx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x402370
sub eax, esi
sar eax, 1
sub ecx, eax
add ecx, ecx
push ecx
lea edx, [esp + 8]
push edx
lea eax, [esp + 0x214]
push eax
call fcn.00409700
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, eax
cmp esi, 0x801
ja 0x4025bb
je case.0x4023c5.1025
lea eax, [esi - 0x401]
cmp eax, 0x61
ja case.0x4025e3.2053
movzx ecx, byte [eax + 0x402af0]
jmp dword [ecx*4 + 0x402a88]
lea edx, [esp + 0x20c]
push edx
push str._sLANGen
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGpt
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANGzh_Hant
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANGko
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_vi
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANG_th
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANGcs
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGda
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANG_fi
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANGel
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGhe
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANGhu
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANGpl
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_tr
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANGca
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
jmp 0x4027a1
cmp esi, 0xc01
ja 0x402710
je case.0x4023c5.1025
lea eax, [esi - 0x804]
cmp eax, 0x19
ja case.0x4025e3.2053
movzx edx, byte [eax + 0x402b84]
jmp dword [edx*4 + 0x402b54]
lea eax, [esp + 0x20c]
push eax
push str._sLANGpt_PT
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANGzh_Hans
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_ru
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
mov esi, 0x419
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANGit
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
mov esi, 0x410
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANG_nl
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
mov esi, 0x413
jmp 0x4027a1
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_no
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
mov esi, 0x414
jmp 0x4027a1
lea eax, [esp + 0x20c]
push eax
push str._sLANG_ro
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
mov esi, 0x418
jmp 0x4027a1
lea edx, [esp + 0x20c]
push edx
push str._sLANG_sv
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402e50
mov esi, 0x41d
jmp 0x4027a1
cmp esi, 0x280c
ja 0x402938
je case.0x4025e3.2060
cmp esi, 0x180a
ja 0x40289f
je case.0x4025e3.2058
cmp esi, 0x100c
ja 0x40281b
je case.0x4025e3.2060
cmp esi, 0x1001
ja 0x40276a
je case.0x4023c5.1025
mov eax, esi
sub eax, 0xc07
je case.0x4025e3.2055
sub eax, 3
je case.0x4025e3.2058
sub eax, 2
jmp 0x402a59
mov eax, esi
sub eax, 0x1007
je case.0x4025e3.2055
sub eax, 3
jne case.0x4025e3.2053
lea eax, [esp + 0x20c]
push eax
push str._sLANGes
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
mov esi, 0xc0a
add esp, 0x10
push str.KMSCNRes.dll
lea edx, [esp + 8]
push edx
push str._s_s
mov eax, edx
push 0x104
push eax
mov dword [0x411a3c], esi
call fcn.00402e50
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
add esp, 0x14
lea ecx, [esp + 4]
push ecx
call esi
test eax, eax
jne 0x402805
push str.KMSCNRes.dll
lea edx, [esp + 0x210]
push edx
push str._sLANGen_s
lea eax, [esp + 0x10]
push 0x104
push eax
call fcn.00402e50
add esp, 0x14
lea ecx, [esp + 4]
push ecx
call esi
mov ecx, dword [esp + 0x414]
pop esi
xor ecx, esp
call fcn.00402c82
add esp, 0x414
ret
cmp esi, 0x140a
ja 0x402861
je case.0x4025e3.2058
mov eax, esi
sub eax, 0x1401
je case.0x4023c5.1025
sub eax, 6
jne case.0x4025e3.2053
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGde
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
mov esi, 0x407
jmp 0x4027a1
cmp esi, 0x140c
je case.0x4025e3.2060
cmp esi, 0x1801
jne case.0x4025e3.2053
lea eax, [esp + 0x20c]
push eax
push str._sLANG_ar
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402e50
mov esi, 0x401
jmp 0x4027a1
cmp esi, 0x200c
ja 0x4028f4
je case.0x4025e3.2060
cmp esi, 0x1c0c
ja 0x4028dd
je case.0x4025e3.2060
mov eax, esi
sub eax, 0x180c
je case.0x4025e3.2060
sub eax, 0x3f5
je case.0x4023c5.1025
sub eax, 9
je case.0x4025e3.2058
jmp case.0x4025e3.2053
mov eax, esi
sub eax, 0x2001
je case.0x4023c5.1025
sub eax, 9
je case.0x4025e3.2058
jmp case.0x4025e3.2053
cmp esi, 0x240c
ja 0x40291d
je case.0x4025e3.2060
mov eax, esi
sub eax, 0x2401
je case.0x4023c5.1025
sub eax, 9
je case.0x4025e3.2058
jmp case.0x4025e3.2053
mov eax, esi
sub eax, 0x2801
je case.0x4023c5.1025
sub eax, 9
je case.0x4025e3.2058
jmp case.0x4025e3.2053
cmp esi, 0x3c01
ja 0x4029d1
je case.0x4023c5.1025
cmp esi, 0x3401
ja 0x402999
je case.0x4023c5.1025
cmp esi, 0x3001
ja 0x402984
je case.0x4023c5.1025
mov eax, esi
sub eax, 0x2c01
je case.0x4023c5.1025
sub eax, 9
je case.0x4025e3.2058
sub eax, 2
jmp 0x402a59
mov eax, esi
sub eax, 0x300a
je case.0x4025e3.2058
sub eax, 2
jmp 0x402a59
cmp esi, 0x3801
ja 0x4029bc
je case.0x4023c5.1025
mov eax, esi
sub eax, 0x340a
je case.0x4025e3.2058
sub eax, 2
jmp 0x402a59
mov eax, esi
sub eax, 0x380a
je case.0x4025e3.2058
sub eax, 2
jmp 0x402a59
cmp esi, 0x480a
ja 0x402a1c
je case.0x4025e3.2058
cmp esi, 0x4001
ja 0x4029ff
je case.0x4023c5.1025
mov eax, esi
sub eax, 0x3c0a
je case.0x4025e3.2058
sub eax, 2
jmp 0x402a59
cmp esi, 0x400a
je case.0x4025e3.2058
cmp esi, 0x440a
je case.0x4025e3.2058
jmp case.0x4025e3.2053
cmp esi, 0x540a
ja 0x402a47
je case.0x4025e3.2058
cmp esi, 0x4c0a
je case.0x4025e3.2058
cmp esi, 0x500a
je case.0x4025e3.2058
jmp case.0x4025e3.2053
cmp esi, 0x580a
je case.0x4025e3.2058
cmp esi, 0xe40c
jne case.0x4025e3.2053
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_fr
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402e50
mov esi, 0x40c
jmp 0x4027a1