Function at 0x100021d0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10020e8b
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x10031070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
sub esp, 0xc
mov byte [ebp - 0x115], 0
lea ecx, [ebp - 0x1f8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage.ini
call fcn.10004800
sub esp, 0xc
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1f8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.10005320
push 0x104
push 0
xor bl, bl
mov ecx, dword [eax + 8]
add ecx, dword [eax]
lea eax, [ebp - 0x114]
push eax
mov dword [ebp - 0x124], ecx
call fcn.1000b530
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [ebp - 0x11c]
add esp, 0xc
mov dword [ebp - 0x120], 0x104
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100023d3
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.English
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100022f0
test dl, dl
je 0x100022ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100022f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100022d0
xor eax, eax
jmp 0x100022f5
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x100023d3
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_en.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 2
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10002549
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Espanol
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002466
test dl, dl
je 0x10002462
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002466
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002446
xor eax, eax
jmp 0x1000246b
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10002549
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_es.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 4
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x100026c3
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Chinese
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100025e0
test dl, dl
je 0x100025dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100025e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100025c0
xor eax, eax
jmp 0x100025e5
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x100026c3
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_zh.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 6
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10002839
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.French
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002756
test dl, dl
je 0x10002752
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002756
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002736
xor eax, eax
jmp 0x1000275b
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10002839
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_fr.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 8
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x100029b3
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Italian
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100028d0
test dl, dl
je 0x100028cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100028d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100028b0
xor eax, eax
jmp 0x100028d5
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x100029b3
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_it.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xa
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10002b29
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Japanese
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002a46
test dl, dl
je 0x10002a42
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002a46
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002a26
xor eax, eax
jmp 0x10002a4b
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10002b29
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_jp.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xc
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10002ca3
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Russe
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002bc0
test dl, dl
je 0x10002bbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002bc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002ba0
xor eax, eax
jmp 0x10002bc5
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10002ca3
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_ru.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xe
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10002e19
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Turk
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002d36
test dl, dl
je 0x10002d32
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002d36
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002d16
xor eax, eax
jmp 0x10002d3b
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10002e19
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_tr.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x10
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10002f93
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Portugues
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002eb0
test dl, dl
je 0x10002eac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002eb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002e90
xor eax, eax
jmp 0x10002eb5
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10002f93
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_br.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x12
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov byte [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x114]
xor bl, bl
push 0
push eax
call fcn.1000b530
add esp, 0xc
mov dword [ebp - 0x120], 0x104
lea eax, [ebp - 0x11c]
push eax
push 0x20019
push 0
push str.SOFTWAREVooblyVooblygame13_v1.6_RC
push 0x80000001
call esi
test eax, eax
jne 0x10003105
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x128]
push eax
push 0
push str.Deutch
push dword [ebp - 0x11c]
call edi
mov ecx, str.true
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10003026
test dl, dl
je 0x10003022
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10003026
add eax, 2
add ecx, 2
test dl, dl
jne 0x10003006
xor eax, eax
jmp 0x1000302b
sbb eax, eax
or eax, 1
push dword [ebp - 0x11c]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x10003105
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push str.Voobly_ModsAOCData_Mods_v1.6_Game_Datalanguage_de.ini
call fcn.10004800
sub esp, 0xc
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xc8]
call fcn.10005400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10005320
mov ecx, dword [eax + 8]
add ecx, dword [eax]
mov eax, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0x124]
sete byte [ebp - 0x115]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xb8]
call fcn.10005270
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x14
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.10007986
add esp, 4
mov eax, dword [ebp - 0x1f8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1f8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x1fc], eax
lea ecx, [ebp - 0x1e8]
call fcn.10005270
mov eax, dword [ebp - 0x1f8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1f8]
mov edx, dword [eax + 4]
lea ecx, [edx - 0x18]
mov dword [ebp + edx - 0x1fc], ecx
lea eax, [ebp - 0x188]
mov dword [ebp - 4], 0x15
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.10007986
mov al, byte [ebp - 0x115]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10008577
mov esp, ebp
pop ebp
ret