Function at 0x401e70
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
movss xmm0, dword [0x43a534]
mov eax, dword [ebp + 8]
movss dword [esp + 8], xmm0
push ebx
push esi
push edi
cmp eax, 0x79
jne 0x401e9d
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x40259e
xor edx, edx
lea ecx, [edx + 0x7c]
call fcn.0042f100
mov ebx, dword [sym.imp.USER32.dll_GetMessageExtraInfo]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
nop dword [eax]
nop dword [eax + eax]
mulss xmm1, dword [esp + 0x14]
movaps xmm0, xmm1
call fcn.0042edce
mov edi, eax
mov esi, edx
mov ecx, edi
call fcn.0042f100
xorps xmm1, xmm1
mov edx, esi
cvtsd2ss xmm1, xmm0
mov ecx, edi
movaps xmm0, xmm1
movss dword [esp + 0x2c], xmm1
addss xmm0, dword [esp + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
movaps xmm0, xmm1
divss xmm0, dword [esp + 0x14]
movss dword [esp + 0x14], xmm0
call fcn.0042f100
divsd xmm0, qword [esp + 0x48]
movss xmm1, dword [esp + 0x14]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
call fcn.0042efaf
movss xmm2, dword [0x43a520]
movss dword [esp + 0x18], xmm2
test edx, edx
jg 0x401ff1
jl 0x401f49
cmp eax, 0x12
jae 0x401ff1
movss xmm1, dword [0x43a4f0]
movss dword [esp + 0x1c], xmm1
call dword [sym.imp.USER32.dll_GetKBCodePage]
movss xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
mulss xmm0, xmm1
cvttss2si esi, xmm0
movaps xmm0, xmm1
call fcn.0042edce
push edx
push eax
call fcn.00401e70
add esp, 8
mov ecx, eax
call fcn.0042f100
movss xmm2, dword [0x43a4e0]
cvtsd2ss xmm0, xmm0
comiss xmm2, xmm0
movss dword [esp + 0x18], xmm0
movaps xmm1, xmm0
jbe 0x401fb4
xor edx, edx
xor ecx, ecx
call fcn.0042f100
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, esi
movsx eax, al
cvtdq2ps xmm0, xmm0
movd xmm1, eax
subss xmm0, dword [esp + 0x18]
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x1c], xmm1
call fcn.0042edce
test edx, edx
jl 0x401f57
jg 0x401ff1
cmp eax, 0x12
jb 0x401f57
mov byte [esp + 0x13], 0xd
cmp eax, 0x32
jne 0x4024b0
test edx, edx
jne 0x4024b0
mov ecx, eax
call fcn.0042f100
xor edx, edx
movsd qword [esp + 0x38], xmm0
lea ecx, [edx + 0x43]
call fcn.0042f100
cvtsd2ss xmm0, xmm0
xor edx, edx
lea ecx, [edx + 0x14]
movss dword [esp + 0x30], xmm0
call fcn.0042f100
mulsd xmm0, qword [0x43a488]
movsd qword [esp + 0x50], xmm0
movss xmm0, dword [0x43a56c]
movss dword [esp + 0x18], xmm0
movsd xmm0, qword [0x43a3b0]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [0x43a380]
movsd qword [esp + 0x48], xmm0
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
mov eax, 0x44
cdq
push edx
push eax
call fcn.00401e70
movsx ecx, byte [esp + 0x1b]
mov edx, eax
movsx eax, dl
add esp, 8
imul eax, ecx
xor edi, edi
mov esi, 0x68
movsx ecx, al
sub edx, ecx
cmp edx, 0x1f
jle 0x4021fe
mov edx, edi
mov ecx, esi
call fcn.0042f100
movss xmm1, dword [0x43a4e0]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
movss dword [esp + 0x1c], xmm0
jbe 0x4020d5
xor edx, edx
xor ecx, ecx
call fcn.0042f100
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x1c], xmm0
mov ecx, esi
call fcn.00401cc0
call fcn.0042efaf
movss xmm0, dword [0x43a4f0]
mov esi, eax
cvttss2si eax, dword [esp + 0x1c]
mov edi, edx
movss dword [esp + 0x1c], xmm0
movsx eax, al
cdq
add eax, esi
adc edx, edi
test edx, edx
jg 0x402195
jl 0x402110
cmp eax, 0x6b
ja 0x40215f
movss xmm0, dword [0x43a550]
movss dword [esp + 0x20], xmm0
nop
call ebx
movss xmm0, dword [esp + 0x20]
xorps xmm1, xmm1
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x1c], xmm1
cvttss2si eax, xmm0
movsx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x20], xmm0
addss xmm0, xmm1
call fcn.0042edce
test edx, edx
jl 0x402120
jg 0x402195
cmp eax, 0x6b
jbe 0x402120
test edx, edx
jg 0x402195
jl 0x40216a
cmp eax, 0x51
jae 0x402195
call dword [sym.imp.USER32.dll_GetForegroundWindow]
movsd xmm1, qword [0x43a350]
movaps xmm0, xmm1
call fcn.0042efaf
test edx, edx
jl 0x4021d8
jg 0x40218b
cmp eax, 0x7d
jbe 0x4021d8
movss xmm0, dword [0x43a584]
jmp 0x4021e6
cmp eax, 0x2b
jne 0x402170
test edx, edx
jne 0x402170
movsd xmm0, qword [0x43a448]
call fcn.004025b0
lea ecx, [eax + 0x54]
movd xmm1, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
addsd xmm0, xmm0
cvttsd2si eax, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
jmp 0x402178
call dword [sym.imp.ole32.dll_OleUninitialize]
movss xmm0, dword [0x43a338]
call fcn.0042edce
test edx, edx
jg 0x4020a2
jl 0x4021fe
cmp eax, 0x1f
ja 0x4020a2
movsd xmm0, qword [0x43a408]
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0x38]
call fcn.004025b0
cvttsd2si ecx, qword [esp + 0x20]
mov edi, eax
mov esi, edx
call fcn.00401cc0
mov edx, esi
movsd qword [esp + 0x20], xmm0
mov ecx, edi
call fcn.0042f100
movsd qword [esp + 0x38], xmm0
subsd xmm0, qword [esp + 0x20]
call fcn.0042efaf
test edx, edx
jl 0x4022ac
jg 0x402257
cmp eax, 0x3b
jb 0x402296
call ebx
movss xmm0, dword [0x43a56c]
call fcn.0042edce
push edx
push eax
call fcn.00401e70
mov ecx, eax
xor esi, esi
cdq
add esp, 8
idiv esi
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
addss xmm1, dword [0x43a56c]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
call fcn.0042edce
test edx, edx
jl 0x4022ac
jg 0x4022a1
cmp eax, 0x74
jbe 0x4022ac
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
jmp 0x402212
movss xmm0, dword [esp + 0x30]
movss xmm1, dword [0x43a4e0]
comiss xmm1, xmm0
jbe 0x4022cc
xor edx, edx
xor ecx, ecx
call fcn.0042f100
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
movsx eax, al
cdq
test edx, edx
jg 0x402212
jl 0x4022e6
test eax, eax
jae 0x402212
movsd xmm0, qword [esp + 0x50]
call fcn.0042efaf
xorps xmm1, xmm1
mov ecx, eax
movaps xmm0, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x50], xmm0
call fcn.0042f100
xorps xmm2, xmm2
mulsd xmm0, xmm2
mulsd xmm0, qword [esp + 0x50]
call fcn.0042efaf
movss xmm0, dword [0x43a524]
mov bl, 0x10
test edx, edx
jg 0x40238b
jl 0x402336
cmp eax, 3
jae 0x40238b
call fcn.0042edce
push edx
push eax
call fcn.00401e70
mov esi, eax
movsx eax, bl
cdq
push edx
push eax
call fcn.00401e70
mov bl, al
movss xmm1, dword [0x43a338]
mov eax, esi
movsx ecx, bl
cdq
add esp, 0x10
idiv ecx
movss dword [esp + 0x20], xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
call fcn.0042edce
movss xmm0, dword [esp + 0x20]
test edx, edx
jl 0x402336
jg 0x40238b
cmp eax, 3
jb 0x402336
or eax, edx
movsd xmm0, qword [0x43a3e8]
movsd qword [esp + 0x38], xmm0
je 0x402420
movsd xmm0, qword [0x43a398]
movsd qword [esp + 0x30], xmm0
nop
call dword [sym.imp.USER32.dll_GetClipboardViewer]
movsd xmm0, qword [esp + 0x38]
movss xmm1, dword [0x43a4e0]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x4023da
xor edx, edx
xor ecx, ecx
call fcn.0042f100
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
movsx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movaps xmm0, xmm1
movsd qword [esp + 0x38], xmm1
divsd xmm0, qword [esp + 0x30]
cvttsd2si eax, xmm0
movaps xmm0, xmm1
movd xmm2, eax
cvtdq2pd xmm2, xmm2
subsd xmm0, xmm2
movsd qword [esp + 0x30], xmm2
call fcn.0042efaf
or eax, edx
jne 0x4023b0
nop word [eax + eax]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
movss xmm0, dword [esp + 0x18]
movsd xmm2, qword [esp + 0x40]
cvtps2pd xmm0, xmm0
movaps xmm1, xmm2
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [0x43a4e0]
movss dword [esp + 0x18], xmm0
cvtpd2ps xmm0, xmm2
comiss xmm1, xmm0
jbe 0x402464
xor edx, edx
xor ecx, ecx
call fcn.0042f100
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
movsd xmm0, qword [esp + 0x48]
divsd xmm0, xmm0
movsx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd qword [esp + 0x48], xmm0
mulsd xmm0, xmm1
movsd qword [esp + 0x40], xmm1
movss xmm1, dword [esp + 0x18]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
call fcn.0042efaf
cmp eax, 6
jne 0x402420
test edx, edx
jne 0x402420
movss xmm0, dword [0x43a528]
mov esi, 0x69
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x43a52c]
movss dword [esp + 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movss xmm0, dword [esp + 0x20]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [esp + 0x18]
movss dword [esp + 0x18], xmm1
call fcn.0042edce
push edx
push eax
call fcn.00401e70
add esp, 8
mov ecx, eax
call fcn.0042f100
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [0x43a2fc]
movss dword [esp + 0x20], xmm1
mulss xmm0, xmm1
call fcn.0042edce
xor esi, esi
test edx, edx
jl 0x4024d1
jg 0x402537
cmp eax, 0x61
jbe 0x4024d1
mov bl, 0x76
test edx, edx
jg 0x402581
jl 0x402544
cmp eax, 0x36
jae 0x402581
movsx esi, bl
mov ecx, 1
mov bl, 1
imul esi, esi
call fcn.00401cc0
cvttsd2si eax, xmm0
movd xmm0, esi
movsx eax, al
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
call fcn.0042efaf
test edx, edx
jl 0x402544
jg 0x402581
cmp eax, 0x36
jb 0x402544
movss xmm1, dword [esp + 0x2c]
mov ebx, dword [sym.imp.USER32.dll_GetMessageExtraInfo]
cmp eax, 0x79
jne 0x401ec0
test edx, edx
jne 0x401ec0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret