Function at 0x402c30
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x4f22ec]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, edx
push edi
mov dword [ebp - 0x118], esi
mov edi, ecx
call fcn.004021a0
mov dword [ebp - 0x124], eax
mov ebx, eax
mov ecx, ebx
test esi, esi
je 0x402c6a
call fcn.00402080
jmp 0x402c6f
call fcn.00401fe0
mov dword [ebp - 0x120], eax
test eax, eax
jns 0x402cc5
push ebx
push str.Keyboard_id__s_is_not_supported___falling_back_to_us_n
call fcn.004407e0
mov ebx, 0x4cbd20
add esp, 8
mov dword [ebp - 0x124], ebx
mov ecx, ebx
test esi, esi
je 0x402c9f
call fcn.00402080
jmp 0x402ca4
call fcn.00401fe0
mov dword [ebp - 0x120], eax
test eax, eax
jns 0x402cc5
push 0x3d9
push str.C:UsersgamerDownloads_rufus72_rufus_7_srcdos_locale.c
push str.kbdrv___0
call fcn.0049ed6b
add esp, 0xc
mov ecx, ebx
call fcn.00402120
push eax
push ebx
push str.Will_use_DOS_keyboard__s___s__n
call fcn.004407e0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
mov esi, eax
cmp esi, 0xfde9
jne 0x402d12
push 4
lea eax, [ebp - 0x12c]
push eax
push 0x2000000b
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
cmovne esi, dword [ebp - 0x12c]
cmp dword [ebp - 0x118], 0
je 0x402ee9
cmp esi, 0xf05
ja 0x402e0a
je case.0x402d80.668
cmp esi, 0x29b
ja 0x402d5a
je case.0x402d80.668
cmp esi, 0x71
je case.0x402d80.737
cmp esi, 0x1b5
jne case.0x402e50.30035
mov ebx, str.ega.cpx
jmp 0x402ecf
cmp esi, 0x3df
ja 0x402daf
je case.0x402d80.668
lea eax, [esi - 0x29c]
cmp eax, 0xe7
ja case.0x402e50.30035
movzx eax, byte [eax + 0x40361c]
jmp dword [eax*4 + 0x4035e8]
mov ebx, str.ega3.cpx
jmp 0x402ecf
mov ebx, str.ega5.cpx
jmp 0x402ecf
mov ebx, str.ega8.cpx
jmp 0x402ecf
mov ebx, str.ega9.cpx
jmp 0x402ecf
cmp esi, 0x465
ja 0x402ddd
je case.0x402e50.30010
lea eax, [esi - 0x45c]
cmp eax, 3
ja case.0x402e50.30035
jmp dword [eax*4 + 0x403704]
mov ebx, str.ega2.cpx
jmp 0x402ecf
mov eax, esi
sub eax, 0x46b
je case.0x402e50.30010
sub eax, 0x759
je case.0x402e50.30010
sub eax, 9
jne case.0x402e50.30035
mov ebx, str.ega16.cpx
jmp 0x402ecf
mov ebx, str.ega10.cpx
jmp 0x402ecf
cmp esi, 0x7530
ja 0x402e30
je case.0x402e50.30001
mov eax, esi
sub eax, 0xf06
je case.0x402d80.856
sub eax, 2
jne case.0x402e50.30035
mov ebx, str.ega18.cpx
jmp 0x402ecf
cmp esi, 0xe328
ja 0x402e81
je case.0x402e50.30002
lea eax, [esi - 0x7531]
cmp eax, 0x27
ja case.0x402e50.30035
movzx eax, byte [eax + 0x403740]
jmp dword [eax*4 + 0x403714]
mov ebx, str.ega4.cpx
jmp 0x402ecf
mov ebx, str.ega7.cpx
jmp 0x402ecf
mov ebx, str.ega11.cpx
jmp 0x402ecf
mov ebx, str.ega14.cpx
jmp 0x402ecf
mov ebx, str.ega15.cpx
jmp 0x402ecf
mov ebx, str.ega17.cpx
jmp 0x402ecf
cmp esi, 0xe9b5
ja 0x402ea7
je case.0x402e50.30008
mov eax, esi
sub eax, 0xe362
je case.0x402e50.30008
sub eax, 0x7d
je case.0x402e50.30003
sub eax, 0x383
jmp 0x402ebd
mov ebx, str.ega12
jmp 0x402ecf
cmp esi, 0xeb62
je case.0x402e50.30008
cmp esi, 0xedb5
je case.0x402e50.30008
cmp esi, 0xf362
je case.0x402e50.30002
xor ebx, ebx
jmp 0x402ecf
mov ebx, str.ega13.cpx
jmp 0x402ecf
mov ebx, str.ega6.cpx
test ebx, ebx
je case.0x402f3c.776
cmp esi, 0x352
jne 0x402f8f
mov esi, 0x35a
jmp 0x402f8f
cmp esi, 0x2e1
ja 0x402f2a
je case.0x402f3c.857
cmp esi, 0x1b5
je case.0x402f3c.850
xor eax, eax
lea ecx, [ecx]
cmp dword [eax*8 + 0x4f43a0], esi
je 0x402f58
inc eax
cmp eax, 0x73
jb 0x402f00
push 0x1b3
push str.C:UsersgamerDownloads_rufus72_rufus_7_srcdos_locale.c
push str.i___ARRAYSIZE_cp_hr_list_
call fcn.0049ed6b
add esp, 0xc
xor eax, eax
jmp 0x402f5f
lea eax, [esi - 0x307]
cmp eax, 0x5e
ja case.0x402f3c.776
movzx eax, byte [eax + 0x403778]
jmp dword [eax*4 + 0x403768]
mov ebx, str.ega.cpi
jmp 0x402f8f
mov ebx, str.ega2.cpi
jmp 0x402f8f
mov ebx, str.ega3.cpi
jmp 0x402f8f
mov eax, dword [eax*8 + 0x4f43a4]
push eax
push esi
push str.Unable_to_find_an_EGA_file_with_codepage__d___s__n
call fcn.004407e0
mov esi, dword [ebp - 0x120]
add esp, 0xc
cmp dword [ebp - 0x118], 0
mov ebx, str.ega.cpx
mov eax, str.ega.cpi
cmove ebx, eax
mov esi, dword [esi*8 + 0x4f4384]
xor eax, eax
cmp dword [eax*8 + 0x4f43a0], esi
je 0x402fbb
inc eax
cmp eax, 0x73
jb 0x402f91
push 0x1b3
push str.C:UsersgamerDownloads_rufus72_rufus_7_srcdos_locale.c
push str.i___ARRAYSIZE_cp_hr_list_
call fcn.0049ed6b
add esp, 0xc
xor eax, eax
jmp 0x402fc2
mov eax, dword [eax*8 + 0x4f43a4]
push eax
push esi
push str.Will_use_codepage__d___s__n
call fcn.004407e0
add esp, 0xc
cmp esi, 0x1b5
jne 0x4031a2
mov eax, dword [ebp - 0x124]
mov ecx, 0x4cbd20
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403008
test dl, dl
je 0x403004
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403008
add eax, 2
add ecx, 2
test dl, dl
jne 0x402fe8
xor eax, eax
jmp 0x40300d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4031a2
test edi, edi
jne 0x40301e
xor ecx, ecx
inc ecx
jmp 0x403051
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403023
sub ecx, edx
lea eax, [ecx + 1]
cmp eax, 0x104
jae 0x40304c
mov ecx, edi
lea edx, [ecx + 1]
jmp 0x403040
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403040
sub ecx, edx
inc ecx
jmp 0x403051
mov ecx, 0x104
push ecx
lea eax, [ebp - 0x110]
push edi
push eax
call fcn.00493080
add esp, 0xc
test edi, edi
jne 0x403070
lea eax, [ebp - 0x110]
add eax, edi
jmp 0x4030a6
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403075
sub ecx, edx
lea eax, [ecx + 1]
cmp eax, 0x104
jae 0x4030a3
lea ecx, [edi + 1]
jmp 0x403090
mov al, byte [edi]
inc edi
test al, al
jne 0x403090
sub edi, ecx
lea eax, [ebp - 0x110]
add eax, edi
jmp 0x4030a6
lea eax, [ebp - 0xd]
lea ecx, [ebp - 0x110]
mov byte [eax], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4030b2
sub ecx, edx
mov eax, 0x103
sub eax, ecx
mov ecx, 0xe
cmp eax, ecx
cmova eax, ecx
push eax
lea eax, [ebp - 0x110]
push str.AUTOEXEC.BAT
push eax
call fcn.00499bf0
add esp, 0xc
lea eax, [ebp - 0x110]
push 0x4cc978
push eax
call fcn.00499add
mov esi, eax
add esp, 8
test esi, esi
jne 0x403121
call fcn.00440bb0
push eax
push str.Unable_to_create_AUTOEXEC.BAT:__s._n
call fcn.004407e0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
push str._echo_off_n
push esi
call fcn.00401010
push str.set_PATH.__LOCALE_n
push esi
call fcn.00401010
add esp, 0x10
xor eax, eax
lea esp, [esp]
cmp dword [eax*8 + 0x4f43a0], 0x1b5
je 0x40316e
inc eax
cmp eax, 0x73
jb 0x403140
push 0x1b3
push str.C:UsersgamerDownloads_rufus72_rufus_7_srcdos_locale.c
push str.i___ARRAYSIZE_cp_hr_list_
call fcn.0049ed6b
add esp, 0xc
xor eax, eax
jmp 0x403175
mov eax, dword [eax*8 + 0x4f43a4]
push 0x1b5
push eax
mov ecx, 0x4cbd20
call fcn.00402120
push eax
push str.echo_Using__s_keyboard_with__s_codepage___d__n
push esi
call fcn.00401010
add esp, 0x14
push esi
call fcn.00499b6b
add esp, 4
jmp 0x4035c3
test edi, edi
jne 0x4031ab
xor ecx, ecx
inc ecx
jmp 0x4031d9
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4031b0
sub ecx, edx
lea eax, [ecx + 1]
cmp eax, 0x104
jae 0x4031d4
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4031c8
sub ecx, edx
inc ecx
jmp 0x4031d9
mov ecx, 0x104
push ecx
lea eax, [ebp - 0x110]
push edi
push eax
call fcn.00493080
add esp, 0xc
test edi, edi
jne 0x4031fa
xor ecx, ecx
lea eax, [ebp - 0x110]
add eax, ecx
jmp 0x40322e
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403200
sub ecx, edx
lea eax, [ecx + 1]
cmp eax, 0x104
jae 0x40322b
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403218
sub ecx, edx
lea eax, [ebp - 0x110]
add eax, ecx
jmp 0x40322e
lea eax, [ebp - 0xd]
lea ecx, [ebp - 0x110]
mov byte [eax], 0
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403240
sub ecx, edx
mov eax, 0x103
sub eax, ecx
mov ecx, 0xc
cmp eax, ecx
cmova eax, ecx
push eax
lea eax, [ebp - 0x110]
push str.CONFIG.SYS
push eax
call fcn.00499bf0
add esp, 0xc
lea eax, [ebp - 0x110]
push 0x4cc978
push eax
call fcn.00499add
add esp, 8
mov dword [ebp - 0x114], eax
test eax, eax
jne 0x4032b3
call fcn.00440bb0
push eax
push str.Unable_to_create_CONFIG.SYS:__s._n
call fcn.004407e0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x118], 0
je 0x4032d7
push str._MENUCOLOR7_0_nMENU_nMENU___FreeDOS_Language_Selection_Menu_n
push eax
call fcn.00401010
mov eax, dword [ebp - 0x114]
add esp, 8
mov ecx, 0x4cca88
jmp 0x4032dc
mov ecx, str._MENU__n
push ecx
push eax
call fcn.00401010
push str.MENUDEFAULT1_5_n
push dword [ebp - 0x114]
call fcn.00401010
add esp, 0x10
xor eax, eax
jmp 0x403300
cmp dword [eax*8 + 0x4f43a0], esi
je 0x40332a
inc eax
cmp eax, 0x73
jb 0x403300
push 0x1b3
push str.C:UsersgamerDownloads_rufus72_rufus_7_srcdos_locale.c
push str.i___ARRAYSIZE_cp_hr_list_
call fcn.0049ed6b
add esp, 0xc
xor eax, eax
jmp 0x403331
mov eax, dword [eax*8 + 0x4f43a4]
mov edx, dword [ebp - 0x118]
mov ecx, 0x2c
test edx, edx
mov dword [ebp - 0x11c], 0x29
push esi
cmovne ecx, dword [ebp - 0x11c]
mov dword [ebp - 0x128], ecx
mov ecx, str.MENU
mov dword [ebp - 0x11c], str.MENUITEM
cmove ecx, dword [ebp - 0x11c]
mov dword [ebp - 0x11c], ecx
mov ecx, dword [ebp - 0x124]
push eax
call fcn.00402120
push eax
push dword [ebp - 0x128]
push dword [ebp - 0x11c]
push str._s1_c_Use__s_keyboard_with__s_codepage___d__n
push dword [ebp - 0x114]
call fcn.00401010
add esp, 0x1c
xor eax, eax
cmp dword [eax*8 + 0x4f43a0], 0x1b5
je 0x4033ce
inc eax
cmp eax, 0x73
jb 0x4033a0
push 0x1b3
push str.C:UsersgamerDownloads_rufus72_rufus_7_srcdos_locale.c
push str.i___ARRAYSIZE_cp_hr_list_
call fcn.0049ed6b
add esp, 0xc
xor eax, eax
jmp 0x4033d5
mov eax, dword [eax*8 + 0x4f43a4]
push 0x1b5
push eax
mov ecx, 0x4cbd20
call fcn.00402120
push eax
push dword [ebp - 0x128]
push dword [ebp - 0x11c]
push str._s2_c_Use__s_keyboard_with__s_codepage___d__n
push dword [ebp - 0x114]
call fcn.00401010
add esp, 0x1c
mov ecx, str._1__ndevicelocaledisplay.sys_con_ega__1__n_2__n
cmp dword [ebp - 0x118], 0
mov eax, str.MENU_n12__n
cmove eax, ecx
push eax
push 0x4c9bac
push dword [ebp - 0x114]
call fcn.00401010
add esp, 0xc
push dword [ebp - 0x114]
call fcn.00499b6b
add esp, 4
push str.Successfully_wrote_CONFIG.SYS_n
call fcn.004407e0
add esp, 4
test edi, edi
jne 0x403451
xor ecx, ecx
inc ecx
jmp 0x403481
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403456
sub ecx, edx
lea eax, [ecx + 1]
cmp eax, 0x104
jae 0x40347c
mov ecx, edi
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403470
sub ecx, edx
inc ecx
jmp 0x403481
mov ecx, 0x104
push ecx
lea eax, [ebp - 0x110]
push edi
push eax
call fcn.00493080
add esp, 0xc
test edi, edi
jne 0x4034a0
lea eax, [ebp - 0x110]
add eax, edi
jmp 0x4034d6
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4034a5
sub ecx, edx
lea eax, [ecx + 1]
cmp eax, 0x104
jae 0x4034d3
lea ecx, [edi + 1]
jmp 0x4034c0
mov al, byte [edi]
inc edi
test al, al
jne 0x4034c0
sub edi, ecx
lea eax, [ebp - 0x110]
add eax, edi
jmp 0x4034d6
lea eax, [ebp - 0xd]
lea ecx, [ebp - 0x110]
mov byte [eax], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4034e2
sub ecx, edx
mov eax, 0x103
sub eax, ecx
mov ecx, 0xe
cmp eax, ecx
cmova eax, ecx
push eax
lea eax, [ebp - 0x110]
push str.AUTOEXEC.BAT
push eax
call fcn.00499bf0
add esp, 0xc
lea eax, [ebp - 0x110]
push 0x4cc978
push eax
call fcn.00499add
mov edi, eax
add esp, 8
test edi, edi
je 0x4030fb
push str._echo_off_n
push edi
call fcn.00401010
push str.set_PATH.__LOCALE_n
push edi
call fcn.00401010
add esp, 0x10
cmp dword [ebp - 0x118], 0
je 0x40355f
push str.display_con_ega__1__n
push edi
call fcn.00401010
add esp, 8
push str.GOTO___CONFIG___n
push edi
call fcn.00401010
push 0x4ccbd8
push edi
call fcn.00401010
push ebx
push esi
push str.mode_con_codepage_prepare___d__locale_s____NUL_n
push edi
call fcn.00401010
push esi
push str.mode_con_codepage_select_d___NUL_n
push edi
call fcn.00401010
mov eax, dword [ebp - 0x120]
add esp, 0x2c
push dword [eax*8 + 0x4f4380]
push dword [ebp - 0x124]
push str.keyb__s__locale_s_n
push edi
call fcn.00401010
push 0x4ccc4c
push edi
call fcn.00401010
push edi
call fcn.00499b6b
add esp, 0x1c
push str.Successfully_wrote_AUTOEXEC.BAT_n
call fcn.004407e0
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
mov eax, 1
pop edi
pop esi
pop ebx
call fcn.00491940
mov esp, ebp
pop ebp
ret