Function at 0x41d890
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
mov eax, dword [0x65f018]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov ebx, ecx
push edi
mov dword [esp + 0x24], ebx
call esi
mov edi, 0x3ff
mov ecx, 7
and ax, di
cmp cx, ax
je 0x41d907
call esi
and ax, di
mov ecx, 0x13
cmp cx, ax
je 0x41d907
call esi
and ax, di
mov ecx, 0x1f
cmp cx, ax
je 0x41d907
call esi
and ax, di
mov ecx, 0x16
cmp cx, ax
je 0x41d907
call esi
and ax, di
mov ecx, 9
cmp cx, ax
je 0x41d907
xor al, al
jmp 0x41d909
mov al, 1
cmp byte [ebx + 0x1a90], 0
je 0x41d921
test al, al
jne 0x41dc0a
mov byte [esp + 0x13], 1
jmp 0x41d926
mov byte [esp + 0x13], 0
lea eax, [esp + 0x3c]
xorps xmm0, xmm0
push eax
push dword [ebx + 0x20]
movups xmmword [esp + 0x44], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [esp + 0x44]
mov eax, 0xf2b9d649
sub edi, dword [esp + 0x3c]
xorps xmm0, xmm0
imul ecx, edi, 0xb
mov dword [esp + 0x14], edi
movups xmmword [esp + 0x2c], xmm0
imul ecx
mov eax, 0xf2b9d649
add edx, ecx
lea ecx, [edi + edi*4]
sar edx, 8
mov esi, edx
shl ecx, 2
shr esi, 0x1f
add esi, edx
imul ecx
mov dword [esp + 0x28], esi
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x2c]
push eax
push dword [ebx + 0x1208]
call dword [sym.imp.USER32.dll_GetClientRect]
cmp byte [ebx + 0x1a90], 0
mov ecx, dword [sym.imp.USER32.dll_MonitorFromPoint]
mov edi, dword [sym.imp.api_ms_win_shcore_scaling_l1_1_1.dll_GetDpiForMonitor]
jne 0x41d9fa
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x38]
add dword [esp + 0x48], eax
push 0
push 0xa
push 0xa
call ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x1c], 0
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], 0
push ecx
push 0
push eax
call edi
mov eax, dword [sym.imp.KERNEL32.dll_MulDiv]
push 0x60
push dword [esp + 0x20]
push 0xa
call eax
mov edi, dword [esp + 0x30]
add edi, eax
jmp 0x41db03
cmp byte [esp + 0x13], 0
je 0x41db01
mov esi, dword [esp + 0x38]
mov eax, 0x55555555
sub esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0x2c]
imul esi
push 0
sub edx, esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
push 0xa
add eax, edx
add dword [esp + 0x50], eax
push 0xa
call ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x1c], 0
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], 0
push ecx
push 0
push eax
call edi
mov eax, dword [sym.imp.KERNEL32.dll_MulDiv]
push 0x60
push dword [esp + 0x20]
push 0xd
call eax
mov edi, eax
lea ecx, [esi + esi]
mov eax, 0x55555556
mov dword [esp + 0x30], edi
imul ecx
imul ecx, dword [esp + 0x14], 0x23
mov eax, 0xf2b9d649
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
imul ecx
push 1
add edx, ecx
mov dword [esp + 0x3c], esi
sar edx, 8
sub esi, edi
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push esi
push ebx
push edi
lea eax, [ecx + ebx]
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x34]
push ecx
mov dword [esp + 0x48], eax
lea ecx, [ebx + 0x11e8]
call fcn.00450603
push 0
push 0xa
push 0xa
call dword [sym.imp.USER32.dll_MonitorFromPoint]
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], 0
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], 0
push ecx
push 0
push eax
call dword [sym.imp.api_ms_win_shcore_scaling_l1_1_1.dll_GetDpiForMonitor]
push 0x60
push dword [esp + 0x20]
push 0x14
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
add edi, eax
jmp 0x41db03
xor edi, edi
lea eax, [esp + 0x4c]
xorps xmm0, xmm0
push eax
push dword [ebx + 0x1d8]
movups xmmword [esp + 0x54], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x4c]
push 1
push ecx
lea eax, [ecx + edi]
mov dword [esp + 0x58], edi
push edx
mov dword [esp + 0x64], eax
lea ecx, [ebx + 0x1b8]
push edi
lea eax, [edx + esi]
mov dword [esp + 0x5c], esi
push esi
mov dword [esp + 0x68], eax
call fcn.00450603
lea eax, [esp + 0x5c]
xorps xmm0, xmm0
push eax
push dword [ebx + 0x110]
movups xmmword [esp + 0x64], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
sub edi, dword [esp + 0x5c]
sub esi, dword [esp + 0x60]
push 0
push 0xa
push 0xa
call dword [sym.imp.USER32.dll_MonitorFromPoint]
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], 0
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x2c], 0
push ecx
push 0
push eax
call dword [sym.imp.api_ms_win_shcore_scaling_l1_1_1.dll_GetDpiForMonitor]
push 0x60
push dword [esp + 0x20]
push 4
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
sub ecx, eax
push 1
push esi
mov dword [esp + 0x70], ecx
sub ecx, esi
push edi
push ecx
mov dword [esp + 0x70], ecx
lea eax, [edi + edx]
push edx
lea ecx, [ebx + 0xf0]
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], eax
call fcn.00450603
mov eax, dword [esp + 0x48]
mov ecx, ebx
mov esi, dword [esp + 0x40]
sub eax, esi
mov edx, dword [esp + 0x3c]
push 1
push eax
mov eax, dword [esp + 0x4c]
sub eax, edx
push eax
push esi
push edx
call fcn.00450603
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0058fc43
mov esp, ebp
pop ebp
ret