Function at 0x10010790
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003e7c2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push esi
push edi
xor ebx, ebx
push 2
push ebx
push ebx
push 0x2e
call fcn.100099d0
add esp, 4
call eax
movsx ecx, byte [0x10047ba9]
mov esi, eax
mov eax, dword [0x10047bc4]
dec eax
push 0x18a5ffff
push ecx
mov word [0x10047bb4], ax
call fcn.10007740
mov ecx, dword [0x10047bc0]
add esp, 8
add ecx, eax
cmp esi, ebx
mov dword [0x10047bc0], ecx
je 0x10010eca
movsx edx, byte [0x10047ba5]
push edx
push 0x4e03ffff
call fcn.10007650
add word [0x10047bac], ax
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov ecx, dword [0x10047bd8]
and eax, 0xffff
add ecx, eax
movsx eax, byte [0x10047ba6]
mov dword [0x10047bd8], ecx
mov ecx, dword [0x10047bc0]
push eax
push ecx
call fcn.10007880
mov dl, byte [0x10047bcc]
mov byte [0x10047ba1], al
mov al, byte [0x10047bbc]
add esp, 8
movsx ecx, byte [0x10047ba5]
sub dl, al
movsx eax, word [0x10047bba]
mov byte [0x10047ba4], dl
mov edx, dword [0x10047be0]
add ecx, edx
add ecx, eax
mov eax, dword [0x10048054]
cmp eax, ebx
mov dword [0x10047be0], ecx
jne 0x10010889
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0xf0000
push eax
push esi
push 0x2f
call fcn.100099d0
add esp, 4
call eax
mov edx, dword [0x10047bc0]
mov edi, eax
dec edx
cmp edi, ebx
mov word [0x10047bba], dx
je 0x10010900
push edi
push 0x2d
call fcn.100099d0
add esp, 4
call eax
movsx eax, word [0x10047bae]
movsx ecx, byte [0x10047ba3]
push eax
push ecx
call fcn.100075f0
movsx edx, word [0x10047bbc]
push edx
push 0x915ffff
mov dword [0x10047bdc], eax
call fcn.10007700
add word [0x10047bac], ax
add esp, 0x10
push edi
push 0x2b
call fcn.100099d0
add esp, 4
call eax
movsx eax, word [0x10047bb6]
mov cl, byte [0x10047ba2]
dec word [0x10047bba]
add cl, 0xfe
push 0x5883ffff
push eax
mov byte [0x10047ba2], cl
call fcn.10007830
add word [0x10047bb8], ax
add esp, 8
push esi
push 0x2b
call fcn.100099d0
add esp, 4
call eax
mov dl, byte [0x10047bd8]
mov al, byte [0x10047ba7]
or cl, 0xff
mov esi, dword [0x10041538]
sub cl, dl
add al, cl
mov ecx, dword [0x10047be0]
mov byte [0x10047ba7], al
mov eax, ecx
shl eax, 6
sub eax, ecx
neg eax
movsx dx, byte [0x10047ba5]
lea eax, [eax + eax*2]
dec edx
shl eax, 3
sub eax, ecx
mov word [0x10047bae], dx
shl eax, 0x12
sub eax, ecx
mov ecx, dword [0x10047bc4]
add ecx, eax
mov dword [0x10047bc4], ecx
mov al, byte [esi]
sub al, 0x7b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.1002ce30
mov ecx, esp
lea edx, [ebp - 0x10]
push ebx
push edx
push ebx
push 0x2001f
push ebx
push ebx
push ebx
mov edx, esi
call fcn.10008f20
push eax
push 0x80000002
push 0x31
call fcn.100099d0
add esp, 4
call eax
test eax, eax
jl 0x10010c24
movsx edx, byte [0x10047ba3]
mov ax, word [0x10047bae]
mov ecx, dword [0x10047bc8]
dec ax
push ecx
push edx
mov word [0x10047bb4], ax
call fcn.10007700
mov esi, dword [0x1004153c]
mov byte [0x10047ba7], al
mov eax, dword [0x10047bc4]
mov dword [ebp - 0x14], ebx
mov word [0x10047bb2], ax
mov word [0x10047bbc], ax
movsx ax, byte [0x10047ba9]
mov word [0x10047bb8], ax
mov al, byte [esi]
sub al, 0x7b
add esp, 8
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.1002ce30
lea edx, [ebp - 0x14]
mov ecx, esp
push edx
lea eax, [ebp - 0x18]
push ebx
push eax
push ebx
mov edx, esi
call fcn.10008f20
mov ecx, dword [ebp - 0x10]
push eax
push ecx
push 0x34
call fcn.100099d0
add esp, 4
call eax
cmp eax, ebx
jne 0x10010bfa
cmp dword [ebp - 0x18], 7
jne 0x10010bfa
movsx edx, word [0x10047bb4]
push edx
push 0x47dfffff
call fcn.10007700
add word [0x10047baa], ax
mov al, byte [0x10047ba6]
mov ecx, dword [0x10047bd8]
dec al
mov byte [0x10047ba6], al
movsx eax, word [0x10047bbc]
push eax
push ecx
call fcn.100078b0
mov cl, byte [0x10047ba7]
mov edx, dword [ebp - 0x14]
add cl, al
push edx
mov byte [0x10047ba7], cl
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 0x14
cmp esi, ebx
je 0x10010bfa
mov eax, dword [0x10047bc8]
push 0xe53fffff
inc eax
mov dword [0x10047bc8], eax
movsx eax, word [0x10047bb8]
push eax
call fcn.100076b0
movsx ecx, byte [0x10047ba4]
movsx edx, byte [0x10047ba1]
push ecx
push edx
mov word [0x10047bac], ax
call fcn.10007700
mov edi, dword [0x1004153c]
add word [0x10047bbc], ax
add esp, 0x10
mov al, byte [edi]
sub al, 0x7b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.1002ce30
lea eax, [ebp - 0x14]
mov ecx, esp
push eax
lea edx, [ebp - 0x18]
push esi
push edx
push ebx
mov edx, edi
call fcn.10008f20
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x34
call fcn.100099d0
add esp, 4
call eax
test eax, eax
jne 0x10010bf1
mov edi, dword [0x10047bc4]
mov edx, dword [0x10047be4]
inc edi
cmp edx, ebx
lea edx, [ebp - 0x14]
mov dword [0x10047bc4], edi
setne cl
push edx
push esi
mov byte [0x10047ba0], cl
call fcn.10010ee0
mov edi, dword [0x1004153c]
add esp, 8
mov al, byte [edi]
sub al, 0x7b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.1002ce30
mov eax, dword [ebp - 0x14]
mov ecx, esp
push eax
push esi
push 7
push ebx
mov edx, edi
call fcn.10008f20
mov ecx, dword [ebp - 0x10]
push eax
push ecx
push 0x35
call fcn.100099d0
add esp, 4
call eax
movsx edx, byte [0x10047ba4]
push edx
push 0xb52bffff
call fcn.10007700
mov word [0x10047bbc], ax
mov eax, dword [0x10047bd0]
push 0x865dffff
push eax
call fcn.100078b0
add esp, 0x10
add word [0x10047bb6], ax
push esi
call fcn.1002cda0
add esp, 4
mov ecx, dword [0x10047bd0]
push 0x3687ffff
push ecx
call fcn.10007780
mov edx, dword [ebp - 0x10]
add esp, 8
mov word [0x10047bba], ax
push edx
push 0x30
call fcn.100099d0
add esp, 4
call eax
mov esi, dword [0x10041548]
mov al, byte [esi]
sub al, 0x7b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.1002ce30
mov ecx, esp
lea eax, [ebp - 0x10]
push ebx
push eax
push ebx
push 0x20006
push ebx
push ebx
push ebx
mov edx, esi
call fcn.10008f20
push eax
push 0x80000001
push 0x31
call fcn.100099d0
add esp, 4
call eax
test eax, eax
mov edi, 1
jne 0x10010d48
movsx edx, word [0x10047baa]
mov cl, byte [0x10047bae]
lea eax, [ebp - 0x38]
and edx, 0xf43dffff
push edi
push eax
mov byte [0x10047ba7], cl
mov dword [0x10047bc8], edx
mov dword [0x10047bcc], edi
call fcn.1000bb90
add esp, 8
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], ebx
cmp eax, ebx
jne 0x10010cb4
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
push 0x32
call fcn.100099d0
add esp, 4
call eax
mov edx, dword [0x10047bc4]
mov eax, dword [0x10047be4]
or edx, 0x23abffff
add eax, edx
mov dword [0x10047be4], eax
mov eax, dword [0x10047bd8]
push eax
push 0x4263ffff
call fcn.100077d0
movsx ecx, word [0x10047baa]
push 0x20d7ffff
push ecx
mov word [0x10047bb0], ax
call fcn.10007740
mov edx, dword [ebp - 0x10]
add esp, 0x10
mov byte [0x10047ba4], al
push edx
push 0x30
call fcn.100099d0
add esp, 4
call eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x10010d48
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x10010d3f
cmp al, 0xff
je 0x10010d3f
dec al
mov byte [ecx], al
jmp 0x10010d48
push ecx
call fcn.1002cda0
add esp, 4
cmp dword [0x10047bd4], ebx
je 0x10010d60
mov al, byte [0x10047ba3]
mov word [0x10047baa], di
cmp al, bl
jne 0x10010d67
mov word [0x10047baa], bx
movsx eax, word [0x10047bb6]
movsx ecx, word [0x10047bae]
push eax
push ecx
call fcn.100075f0
mov esi, dword [0x10047bd0]
add esp, 8
add esi, eax
mov dword [0x10047bd0], esi
mov esi, dword [0x10041548]
mov al, byte [esi]
sub al, 0x7b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.1002ce30
mov ecx, esp
lea edx, [ebp - 0x10]
push ebx
push edx
push ebx
push 0x20006
push ebx
push ebx
push ebx
mov edx, esi
call fcn.10008f20
push eax
push 0x80000002
push 0x31
call fcn.100099d0
add esp, 4
call eax
test eax, eax
jne 0x10010e81
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.1000bb90
movsx ecx, byte [0x10047ba7]
push 0x8bfffff
push ecx
mov dword [ebp - 4], edi
call fcn.10007830
mov edi, dword [0x10047be4]
mov dl, byte [0x10047ba9]
add edi, eax
add esp, 0x10
xor eax, eax
cmp word [0x10047bb2], bx
mov dword [0x10047be4], edi
setne al
add dl, al
mov eax, dword [ebp - 0x24]
cmp eax, ebx
mov byte [0x10047ba9], dl
jne 0x10010e2d
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edx, dword [ebp - 0x10]
push eax
push edx
push 0x32
call fcn.100099d0
add esp, 4
call eax
mov eax, dword [ebp - 0x10]
push eax
push 0x30
call fcn.100099d0
add esp, 4
call eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
cmp ecx, ebx
je 0x10010e78
mov al, byte [ecx - 1]
cmp al, bl
je 0x10010e6e
cmp al, 0xff
je 0x10010e6e
dec al
mov byte [ecx - 1], al
jmp 0x10010e78
dec ecx
push ecx
call fcn.1002cda0
add esp, 4
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.USER32.dll_GetInputState]
mov cl, byte [0x10047be4]
mov bl, byte [0x10047ba0]
movsx edx, word [0x10047bb4]
mov dword [0x10047bc4], eax
mov al, byte [0x10047bc0]
add cl, al
push 0x76c9ffff
add bl, cl
push edx
mov byte [0x10047ba0], bl
call fcn.100076b0
mov ecx, dword [0x10047bc8]
add esp, 8
add ecx, eax
mov dword [0x10047bc8], ecx
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x44]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret