Function at 0x402270
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.004062a0
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.004031df
push 0x208
mov esi, eax
lea eax, [esp + 0x218]
push 0
push eax
call fcn.004062a0
add esp, 0x14
test esi, esi
jne 0x4022f0
lea ecx, [esp + 0x20c]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
jmp 0x402339
lea eax, [esp + 4]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4022f7
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 0x402310
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.004096a0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, eax
cmp esi, 0x801
ja 0x40255b
je case.0x402365.1025
lea eax, [esi - 0x401]
cmp eax, 0x61
ja case.0x402583.2053
movzx ecx, byte [eax + 0x402a90]
jmp dword [ecx*4 + 0x402a28]
lea edx, [esp + 0x20c]
push edx
push str._sLANGen
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGpt
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANGzh_Hant
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANGko
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_vi
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANG_th
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANGcs
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGda
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANG_fi
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANGel
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGhe
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANGhu
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANGpl
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_tr
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANGca
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
jmp 0x402741
cmp esi, 0xc01
ja 0x4026b0
je case.0x402365.1025
lea eax, [esi - 0x804]
cmp eax, 0x19
ja case.0x402583.2053
movzx edx, byte [eax + 0x402b24]
jmp dword [edx*4 + 0x402af4]
lea eax, [esp + 0x20c]
push eax
push str._sLANGpt_PT
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANGzh_Hans
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_ru
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
mov esi, 0x419
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANGit
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
mov esi, 0x410
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANG_nl
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
mov esi, 0x413
jmp 0x402741
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_no
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
mov esi, 0x414
jmp 0x402741
lea eax, [esp + 0x20c]
push eax
push str._sLANG_ro
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
mov esi, 0x418
jmp 0x402741
lea edx, [esp + 0x20c]
push edx
push str._sLANG_sv
lea eax, [esp + 0xc]
push 0x104
push eax
call fcn.00402df0
mov esi, 0x41d
jmp 0x402741
cmp esi, 0x280c
ja 0x4028d8
je case.0x402583.2060
cmp esi, 0x180a
ja 0x40283f
je case.0x402583.2058
cmp esi, 0x100c
ja 0x4027bb
je case.0x402583.2060
cmp esi, 0x1001
ja 0x40270a
je case.0x402365.1025
mov eax, esi
sub eax, 0xc07
je case.0x402583.2055
sub eax, 3
je case.0x402583.2058
sub eax, 2
jmp 0x4029f9
mov eax, esi
sub eax, 0x1007
je case.0x402583.2055
sub eax, 3
jne case.0x402583.2053
lea eax, [esp + 0x20c]
push eax
push str._sLANGes
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
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.00402df0
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
add esp, 0x14
lea ecx, [esp + 4]
push ecx
call esi
test eax, eax
jne 0x4027a5
push str.KMSCNRes.dll
lea edx, [esp + 0x210]
push edx
push str._sLANGen_s
lea eax, [esp + 0x10]
push 0x104
push eax
call fcn.00402df0
add esp, 0x14
lea ecx, [esp + 4]
push ecx
call esi
mov ecx, dword [esp + 0x414]
pop esi
xor ecx, esp
call fcn.00402c22
add esp, 0x414
ret
cmp esi, 0x140a
ja 0x402801
je case.0x402583.2058
mov eax, esi
sub eax, 0x1401
je case.0x402365.1025
sub eax, 6
jne case.0x402583.2053
lea ecx, [esp + 0x20c]
push ecx
push str._sLANGde
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
mov esi, 0x407
jmp 0x402741
cmp esi, 0x140c
je case.0x402583.2060
cmp esi, 0x1801
jne case.0x402583.2053
lea eax, [esp + 0x20c]
push eax
push str._sLANG_ar
lea ecx, [esp + 0xc]
push 0x104
push ecx
call fcn.00402df0
mov esi, 0x401
jmp 0x402741
cmp esi, 0x200c
ja 0x402894
je case.0x402583.2060
cmp esi, 0x1c0c
ja 0x40287d
je case.0x402583.2060
mov eax, esi
sub eax, 0x180c
je case.0x402583.2060
sub eax, 0x3f5
je case.0x402365.1025
sub eax, 9
je case.0x402583.2058
jmp case.0x402583.2053
mov eax, esi
sub eax, 0x2001
je case.0x402365.1025
sub eax, 9
je case.0x402583.2058
jmp case.0x402583.2053
cmp esi, 0x240c
ja 0x4028bd
je case.0x402583.2060
mov eax, esi
sub eax, 0x2401
je case.0x402365.1025
sub eax, 9
je case.0x402583.2058
jmp case.0x402583.2053
mov eax, esi
sub eax, 0x2801
je case.0x402365.1025
sub eax, 9
je case.0x402583.2058
jmp case.0x402583.2053
cmp esi, 0x3c01
ja 0x402971
je case.0x402365.1025
cmp esi, 0x3401
ja 0x402939
je case.0x402365.1025
cmp esi, 0x3001
ja 0x402924
je case.0x402365.1025
mov eax, esi
sub eax, 0x2c01
je case.0x402365.1025
sub eax, 9
je case.0x402583.2058
sub eax, 2
jmp 0x4029f9
mov eax, esi
sub eax, 0x300a
je case.0x402583.2058
sub eax, 2
jmp 0x4029f9
cmp esi, 0x3801
ja 0x40295c
je case.0x402365.1025
mov eax, esi
sub eax, 0x340a
je case.0x402583.2058
sub eax, 2
jmp 0x4029f9
mov eax, esi
sub eax, 0x380a
je case.0x402583.2058
sub eax, 2
jmp 0x4029f9
cmp esi, 0x480a
ja 0x4029bc
je case.0x402583.2058
cmp esi, 0x4001
ja 0x40299f
je case.0x402365.1025
mov eax, esi
sub eax, 0x3c0a
je case.0x402583.2058
sub eax, 2
jmp 0x4029f9
cmp esi, 0x400a
je case.0x402583.2058
cmp esi, 0x440a
je case.0x402583.2058
jmp case.0x402583.2053
cmp esi, 0x540a
ja 0x4029e7
je case.0x402583.2058
cmp esi, 0x4c0a
je case.0x402583.2058
cmp esi, 0x500a
je case.0x402583.2058
jmp case.0x402583.2053
cmp esi, 0x580a
je case.0x402583.2058
cmp esi, 0xe40c
jne case.0x402583.2053
lea ecx, [esp + 0x20c]
push ecx
push str._sLANG_fr
lea edx, [esp + 0xc]
push 0x104
push edx
call fcn.00402df0
mov esi, 0x40c
jmp 0x402741