Function at 0x402610
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x447150]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x104
lea eax, [ebp - 0x108]
mov dword [ebp - 0x10c], 1
push eax
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402650
sub ecx, edx
cmp byte [ebp + ecx - 0x109], 0x5c
je 0x402683
lea edi, [ebp - 0x108]
dec edi
nop word [eax + eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x402670
mov ax, word [0x43c5b8]
mov word [edi], ax
lea ecx, [ebp - 0x108]
dec ecx
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x402690
mov eax, dword [str.dvr2.ini]
lea esi, [ebx + 0x20c]
mov dword [ecx], eax
mov eax, dword [0x43c698]
mov dword [ecx + 4], eax
mov al, byte [0x43c69c]
mov byte [ecx + 8], al
lea eax, [ebp - 0x108]
push eax
push 0x104
push esi
push 0x43c576
push str.locale
push str.generic
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [esi], 0
je 0x402732
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4026e3
sub ecx, edx
cmp byte [ecx + ebx + 0x20b], 0x5c
je 0x402713
lea edi, [esi - 1]
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x402700
mov ax, word [0x43c5b8]
mov word [edi], ax
add ebx, 0x310
sub ebx, esi
nop dword [eax + eax]
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ebx + esi - 1], al
test al, al
jne 0x402720
jmp 0x402bb2
push 0x104
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push esi
call fcn.00428630
add esp, 8
test eax, eax
je 0x402753
mov byte [eax + 1], 0
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
mov eax, ecx
mov dword [ebx + 4], ecx
cmp eax, 0x1404
jg 0x40299d
je case.0x4027cd.1028
cmp eax, 0x804
jg 0x40281f
je 0x40294a
cmp eax, 0x401
jg 0x4027ae
je 0x402991
sub eax, 4
je 0x40294a
sub eax, 0x7c
jne case.0x4029b4.5128
mov dword [ebx + 8], 7
jmp 0x402865
cmp eax, 0x801
jg case.0x4029b4.5128
je 0x402991
sub eax, 0x404
cmp eax, 0x12
ja case.0x4029b4.5128
jmp dword [eax*4 + 0x402bc8]
mov dword [ebx + 8], 0xd
jmp 0x402865
mov dword [ebx + 8], 0xb
jmp 0x402865
mov dword [ebx + 8], 0xe
jmp 0x402865
mov dword [ebx + 8], 6
jmp 0x402865
mov dword [ebx + 8], 5
jmp 0x402865
mov dword [ebx + 8], 1
jmp 0x402865
mov dword [ebx + 8], 0x11
jmp 0x402865
mov dword [ebx + 8], 9
jmp 0x402865
cmp eax, 0xc07
jg 0x4028fd
je case.0x4029b4.5127
cmp eax, 0x810
jg 0x4028d7
je case.0x4027cd.1040
sub eax, 0x807
je case.0x4029b4.5127
sub eax, 2
je case.0x4029b4.5129
sub eax, 1
jne case.0x4029b4.5128
mov dword [ebx + 8], 8
push ecx
lea eax, [ebp - 0x108]
push 0x43c7bc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esi - 1]
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x402880
mov eax, dword [str.locale_]
lea edi, [ebx + 0x310]
mov dword [ecx], eax
mov edx, edi
mov eax, dword [0x43c7c4]
sub edx, esi
mov dword [ecx + 4], eax
mov ecx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4028a5
cmp dword [ebp - 0x10c], 0
je 0x402b6a
mov eax, dword [ebx + 8]
push dword [eax*4 + section..data]
jmp 0x402b71
mov dword [ebx + 8], 0x10
jmp 0x402865
sub eax, 0x816
je case.0x4027cd.1046
sub eax, 0x3eb
je 0x402991
sub eax, 3
jmp 0x402b4d
mov dword [ebx + 8], 0xa
jmp 0x402865
cmp eax, 0x1007
jg 0x402956
je case.0x4029b4.5127
cmp eax, 0xc0c
jg 0x40293a
je case.0x4029b4.5132
sub eax, 0xc09
je case.0x4029b4.5129
sub eax, 1
je case.0x4029b4.5130
mov dword [ebp - 0x10c], 0
jmp 0x402865
sub eax, 0x1001
je 0x402991
sub eax, 3
jne case.0x4029b4.5128
mov dword [ebx + 8], 3
jmp 0x402865
cmp eax, 0x100c
jg 0x402986
je case.0x4029b4.5132
sub eax, 0x1009
je case.0x4029b4.5129
sub eax, 1
je case.0x4029b4.5130
mov dword [ebp - 0x10c], 0
jmp 0x402865
cmp eax, 0x1401
jne case.0x4029b4.5128
mov dword [ebx + 8], 0xf
jmp 0x402865
cmp eax, 0x1801
jg 0x4029c7
je 0x402991
sub eax, 0x1407
cmp eax, 5
ja case.0x4029b4.5128
jmp dword [eax*4 + 0x402c14]
mov dword [ebx + 8], 0xc
jmp 0x402865
cmp eax, 0x2c0a
jg 0x402aba
je case.0x4029b4.5130
cmp eax, 0x2401
jg 0x402a5c
je 0x402991
cmp eax, 0x1c0a
jg 0x402a34
je case.0x4029b4.5130
cmp eax, 0x1c01
jg 0x402a1a
je 0x402991
sub eax, 0x1809
je case.0x4029b4.5129
sub eax, 1
je case.0x4029b4.5130
mov dword [ebp - 0x10c], 0
jmp 0x402865
cmp eax, 0x1c09
je case.0x4029b4.5129
mov dword [ebp - 0x10c], 0
jmp 0x402865
sub eax, 0x2001
je 0x402991
sub eax, 8
je case.0x4029b4.5129
sub eax, 1
je case.0x4029b4.5130
mov dword [ebp - 0x10c], 0
jmp 0x402865
cmp eax, 0x2809
jg 0x402a8f
je case.0x4029b4.5129
sub eax, 0x2409
je case.0x4029b4.5129
sub eax, 1
je case.0x4029b4.5130
sub eax, 0x3f7
je 0x402991
mov dword [ebp - 0x10c], 0
jmp 0x402865
sub eax, 0x280a
je case.0x4029b4.5130
sub eax, 0x3f7
je 0x402991
sub eax, 8
jne case.0x4029b4.5128
mov dword [ebx + 8], 0
jmp 0x402865
cmp eax, 0x3c0a
jg 0x402af7
je case.0x4029b4.5130
cmp eax, 0x340a
jg 0x402ae4
je case.0x4029b4.5130
sub eax, 0x3001
je 0x402991
sub eax, 9
jmp 0x402a6f
sub eax, 0x3801
je 0x402991
sub eax, 9
jmp 0x402a6f
cmp eax, 0x480a
jg 0x402b32
je case.0x4029b4.5130
sub eax, 0x4001
je 0x402991
sub eax, 9
je case.0x4029b4.5130
sub eax, 0x400
je case.0x4029b4.5130
mov dword [ebp - 0x10c], 0
jmp 0x402865
cmp eax, 0x4c0a
je case.0x4029b4.5130
cmp eax, 0x500a
je case.0x4029b4.5130
cmp eax, 0x7c04
je case.0x4027cd.1028
mov dword [ebp - 0x10c], 0
jmp 0x402865
mov dword [ebx + 8], 4
jmp 0x402865
lea eax, [ebp - 0x108]
push eax
push 0x104
push esi
call fcn.0042cd81
add esp, 0xc
push 0x43c610
push 0x104
push edi
call fcn.0042cd81
push 0x43c5b8
push 0x104
push esi
call fcn.0042cd81
push 0x43c5b8
push 0x104
push edi
call fcn.0042cd81
add esp, 0x24
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004271bb
mov esp, ebp
pop ebp
ret