Function at 0x41d52d
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x430f65
call fcn.0042f2d0
sub esp, 0x10
push ebx
xor ebx, ebx
xor eax, eax
cmp dword [0x43abe8], ebx
mov cl, byte [0x43a348]
push esi
setne al
mov dword [0x43ac0c], eax
mov al, byte [0x43abda]
inc al
inc dword [0x43ac08]
mov byte [0x43abd1], al
mov eax, dword [0x43b120]
cmp eax, ebx
je 0x41d5b4
cmp cl, bl
jne 0x41d5b4
cmp dword [eax + 4], ebx
je 0x41d5b4
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharLowerA]
push 0x3bffff
mov dword [0x43abf8], eax
push dword [0x43abec]
call fcn.00411906
pop ecx
add word [0x43abd2], ax
pop ecx
mov eax, dword [0x43b120]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [eax + 4]
jmp 0x41d834
movsx si, byte [0x43abcc]
or dl, 0xff
sub dl, byte [0x43abd0]
mov byte [0x43abc9], dl
movsx dx, byte [0x43abcb]
add edx, esi
cmp dword [ebp + 8], ebx
mov word [0x43abd2], dx
je 0x41d7d1
cmp cl, bl
je 0x41d7d1
cmp eax, ebx
je 0x41d7d1
movsx eax, word [0x43abd8]
push eax
push 0x349fffff
call fcn.004118af
add word [0x43abd2], ax
mov al, byte [ebp + 0xf]
pop ecx
mov byte [ebp - 0x1c], al
pop ecx
push ebx
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push dword [ebp + 0xc]
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea ecx, [ebp - 0x1c]
push dword [ebp + 0xc]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov esi, 0x43a34c
mov dword [ebp - 4], ebx
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
push dword [ebp + 0x10]
dec byte [0x43abcd]
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea ecx, [ebp - 0x1c]
push dword [ebp + 0x10]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov al, byte [0x43ac00]
mov ecx, 0x43b128
sub byte [0x43abcb], al
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov dword [0x43abf8], 0xf9f80001
mov byte [0x43abc9], 0xfe
call fcn.0041e55c
movsx eax, word [0x43abe2]
movsx ecx, word [0x43abd2]
or eax, ecx
cmp byte [0x43abcb], bl
mov dword [0x43abf4], eax
jne 0x41d6c3
cmp dword [0x43abf0], ebx
jne 0x41d6c3
xor eax, eax
jmp 0x41d6c6
push 1
pop eax
add dword [0x43abec], eax
mov eax, dword [0x43b12c]
push edi
mov edi, dword [ebp + 0xc]
cmp edi, eax
je 0x41d7a6
push 0x4e5bffff
push 0xc7d3ffff
call fcn.00411738
mov word [0x43abe0], ax
push 0x1c3dffff
movsx eax, byte [0x43abc9]
push eax
call fcn.004117b3
mov byte [0x43abcf], al
mov esi, dword [edi + 0x40]
movsx eax, byte [0x43abd1]
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [0x43abca], al
mov eax, dword [edi + 0x44]
cmp esi, eax
je 0x41d772
mov eax, dword [ebp + 8]
mov word [0x43abd6], 1
cmp dword [esi + 4], eax
je 0x41d772
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharAlphaA]
add word [0x43abe0], ax
mov al, byte [0x43abce]
or al, byte [0x43abcf]
add esi, 8
add byte [0x43abcc], al
or eax, 0xffffffff
sub eax, dword [0x43ac00]
add word [0x43abde], ax
cmp esi, dword [edi + 0x44]
jne 0x41d729
mov al, byte [0x43abec]
mov byte [0x43abd0], al
cmp esi, dword [edi + 0x44]
je 0x41d7a6
movsx eax, byte [0x43abce]
push 0xdd9ffff
sub esi, 8
inc dword [0x43abf8]
push eax
call fcn.00411906
add byte [0x43abcb], al
mov ebx, dword [esi]
pop ecx
pop ecx
push dword [0x43abf8]
push 0x397ffff
call fcn.004118af
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
mov byte [0x43abcb], al
push 1
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, ebx
pop edi
jmp 0x41d834
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push dword [ebp + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add byte [0x43abcb], al
call esi
movsx eax, byte [0x43abca]
push 0xcde9ffff
push eax
call fcn.004117ef
mov byte [0x43abc8], al
xor eax, eax
cmp word [0x43abdc], bx
pop ecx
pop ecx
push dword [ebp + 0x10]
setne al
push dword [ebp + 0xc]
mov word [0x43abdc], ax
movsx eax, word [0x43abe0]
and eax, 0xce4bffff
add dword [0x43abfc], eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc