Function at 0x414814
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
cmp dword [0x518b80], 0
push ebx
push esi
push edi
setne cl
call fcn.00413f3a
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call fcn.004147f6
xor ebx, ebx
mov dword [ebp - 4], eax
push ebx
mov edx, eax
lea ecx, [ebp - 0xc]
call fcn.0046311e
mov edx, dword [ebp - 0xc]
mov ecx, 0x4f25f0
call fcn.0046ee8f
mov esi, eax
mov dword [0x518b80], esi
pop ecx
test esi, esi
jne 0x414867
mov byte [ebx], bl
push dword [ebp - 0xc]
call fcn.004c5e5a
lea edi, [esi + 0x178]
mov edx, dword [edi]
pop ecx
test edx, edx
je 0x41489a
mov ecx, 0x5007c0
call fcn.00460144
test eax, eax
js 0x41489a
mov edx, eax
mov ecx, 0x5007c0
call fcn.004601c0
test eax, eax
jne 0x4148a8
call fcn.00453aa0
mov edx, eax
mov ecx, edi
call fcn.0045f755
mov ecx, dword [ebp - 4]
call fcn.0046349c
mov ecx, dword [esi + 0x184]
mov dword [esi + 0x208], eax
mov dword [esi + 0x20c], edx
call fcn.0041f15c
movss xmm1, dword [0x50712c]
mov ecx, dword [esi + 0x188]
mov dword [esi + 0x210], eax
call fcn.0041f187
movss dword [esi + 0x214], xmm0
call fcn.0041f0e4
xor al, 1
mov cl, al
call fcn.00413f3a
call fcn.00414765
mov edi, eax
sub edi, dword [esi + 0x204]
mov dword [ebp - 8], edi
call fcn.00414765
mov dword [esi + 0x204], eax
test edi, edi
jle 0x414937
mov eax, dword [esi + 0x1f0]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
lea edi, [edx + eax*4]
cmp edx, edi
je 0x414937
mov ecx, dword [ebp - 8]
mov eax, dword [edx]
add edx, 4
sar dword [eax + 0xc], cl
cmp edx, edi
jne 0x41492b
mov eax, dword [esi + 0x98]
push 0x4147d1
push 4
push dword [eax + 4]
push dword [eax + 0x10]
call fcn.004c69c0
add esp, 0x10
jmp 0x4149c2
push ebx
mov ecx, eax
call fcn.004152ec
movss xmm0, dword [0x5070c8]
comiss xmm0, dword [eax]
jbe 0x414a3b
mov edi, dword [esi + 0x98]
xor eax, eax
cmp eax, dword [edi + 4]
sbb cl, cl
inc cl
call fcn.00413f3a
xor eax, eax
cmp eax, dword [edi + 4]
sbb cl, cl
inc cl
call fcn.00413f3a
mov edx, dword [edi + 4]
lea eax, [edi + 0x10]
mov dword [ebp - 8], eax
cmp edx, 1
jbe 0x4149b7
mov ecx, dword [eax]
lea eax, [edx*4 - 4]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call fcn.004b8db0
mov eax, dword [ebp - 8]
add esp, 0xc
dec dword [edi + 4]
mov ecx, dword [edi + 4]
mov eax, dword [eax]
mov dword [eax + ecx*4], ebx
mov eax, dword [esi + 0x98]
cmp dword [eax + 4], ebx
ja 0x414954
jmp 0x414a3b
mov ecx, eax
call fcn.004152c2
movss xmm0, dword [eax]
comiss xmm0, dword [0x507158]
jbe 0x414a46
mov edi, dword [esi + 0x98]
cmp dword [edi + 4], ebx
sete cl
call fcn.00413f3a
mov ecx, dword [edi + 4]
lea eax, [ecx - 1]
cmp eax, ecx
sbb cl, cl
inc cl
call fcn.00413f3a
mov eax, dword [edi + 4]
lea ecx, [eax - 1]
cmp ecx, eax
mov dword [ebp - 8], ecx
sbb cl, cl
inc cl
call fcn.00413f3a
mov ecx, dword [ebp - 8]
cmp ecx, dword [edi + 4]
jae 0x414a3b
mov eax, dword [edi + 0x10]
lea edx, [eax + ecx*4]
mov ecx, dword [edi + 4]
dec ecx
lea ecx, [eax + ecx*4]
cmp edx, ecx
je 0x414a36
mov eax, dword [ecx]
mov dword [edx], eax
mov dword [ecx], ebx
dec dword [edi + 4]
mov eax, dword [esi + 0x98]
cmp dword [eax + 4], ebx
ja 0x4149cf
cmp dword [esi + 0x58], ebx
jge 0x414a4e
mov dword [esi + 0x58], ebx
cmp dword [esi + 0x50], ebx
jge 0x414a56
mov dword [esi + 0x50], ebx
cmp dword [esi + 0x5c], ebx
jge 0x414a5e
mov dword [esi + 0x5c], ebx
cmp dword [esi + 0x54], ebx
jge 0x414a66
mov dword [esi + 0x54], ebx
cmp dword [esi + 0x78], ebx
jge 0x414a6e
mov dword [esi + 0x78], ebx
cmp dword [esi + 0x70], ebx
jge 0x414a76
mov dword [esi + 0x70], ebx
cmp dword [esi + 0x7c], ebx
jge 0x414a7e
mov dword [esi + 0x7c], ebx
cmp dword [esi + 0x74], ebx
jge 0x414a86
mov dword [esi + 0x74], ebx
cmp dword [esi + 0x60], ebx
jge 0x414a8e
mov dword [esi + 0x60], ebx
cmp dword [esi + 0x64], ebx
jge 0x414a96
mov dword [esi + 0x64], ebx
cmp dword [esi + 0x80], ebx
jge 0x414aa4
mov dword [esi + 0x80], ebx
cmp dword [esi + 0x84], ebx
jge 0x414ab2
mov dword [esi + 0x84], ebx
push 0x3c
pop eax
cmp dword [esi + 0x1bc], eax
jge 0x414ac3
mov dword [esi + 0x1bc], eax
cmp dword [esi + 0x1b4], ebx
jge 0x414ad1
mov dword [esi + 0x1b4], ebx
cmp dword [esi + 0x1b0], ebx
jge 0x414adf
mov dword [esi + 0x1b0], ebx
cmp dword [esi + 0x1c0], ebx
jge 0x414aed
mov dword [esi + 0x1c0], ebx
mov eax, dword [esi + 0x1b8]
push 8
pop ecx
cmp eax, ecx
jl 0x414b01
push 0x40
pop ecx
cmp eax, ecx
jle 0x414b07
mov dword [esi + 0x1b8], ecx
cmp dword [esi + 0x1c8], ebx
jne 0x414b19
mov dword [esi + 0x1c8], 0x4f3578
mov eax, dword [esi + 0x1f0]
mov dword [0x5191d8], eax
mov eax, dword [0x518b80]
mov esi, dword [eax]
mov ecx, dword [ebx*4 + 0x4f2800]
mov edx, esi
mov ecx, dword [ecx]
call fcn.0045f52b
test al, al
jne 0x414b47
inc ebx
cmp ebx, 3
jl 0x414b2b
jmp 0x414b51
cmp dword [ebx*4 + 0x4f2800], 0
jne 0x414b64
mov edx, dword [str.Light]
mov ecx, dword [0x518b80]
call fcn.0045f755
jmp 0x414b6b
mov ecx, ebx
call fcn.00451cf5
mov ecx, dword [ebp - 4]
call fcn.0046330d
test al, al
jne 0x414b7c
call fcn.00414e76
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00414714
movsd qword [esp], xmm0
push str.LoadSettings___took__.2f_ms_n
call fcn.004620b3
add esp, 0xc
mov al, 1
pop edi
pop esi
pop ebx
leave
ret