Function at 0x65f5d8
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x57
push 0
push 0
dec ecx
jne 0x65f5e0
push ecx
push ebx
push esi
push edi
lea eax, [ebp - 0x278]
mov edx, dword [0x41b148]
call fcn.0040a96c
xor eax, eax
push ebp
push 0x65fc3b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [eax]
call dword [edx + 0x48]
lea eax, [ebp - 0x28c]
mov ecx, 0x65fc58
mov edx, dword [0x685904]
call fcn.0040a390
mov eax, dword [ebp - 0x28c]
lea ecx, [ebp - 0x278]
mov edx, 0x1ff
call fcn.004247f4
test eax, eax
jne 0x65f6b6
mov eax, dword [ebp - 0x268]
and eax, 0x10
cmp eax, 0x10
je 0x65f6a7
mov eax, dword [ebp - 0x264]
mov ebx, eax
test ebx, ebx
je 0x65f66f
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0x290]
push eax
mov ecx, ebx
sub ecx, 6
mov edx, 1
mov eax, dword [ebp - 0x264]
call fcn.0040a500
mov edx, dword [ebp - 0x290]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0x278]
call fcn.00424844
test eax, eax
je 0x65f650
lea eax, [ebp - 0x278]
call fcn.00424868
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x65f703
mov eax, dword [0x6858d8]
call fcn.004078f0
mov eax, dword [0x685950]
call fcn.004078f0
mov eax, dword [0x685958]
call fcn.004078f0
mov eax, 4
call fcn.0065d72c
lea ecx, [ebp - 0x294]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x294]
mov eax, 0x685934
call fcn.0040994c
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jne 0x65f785
push dword [0x685904]
push 0x65fc78
push dword [0x685934]
push 0x65fc88
lea eax, [ebp - 0x298]
mov edx, 4
call fcn.0040a418
mov edx, dword [ebp - 0x298]
mov eax, dword [0x68589c]
call fcn.0065ea3c
jmp 0x65fbde
push 0x65fca4
lea eax, [ebp - 4]
push eax
mov ecx, 0x65fcc0
mov edx, 0x65fcec
mov eax, dword [0x6858d8]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x65f874
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x27c], 0
lea ecx, [ebp - 0x29c]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [ebp - 0x27c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, dword [ebp - 0x29c]
cmp ebx, dword [ebp - 4]
jne 0x65f803
mov al, 1
jmp 0x65f82a
test ebx, ebx
je 0x65f80d
cmp dword [ebp - 4], 0
jne 0x65f811
xor eax, eax
jmp 0x65f82a
mov edx, dword [ebp - 4]
mov dword [ebp - 0x2a0], ebx
mov eax, dword [ebp - 0x2a0]
call fcn.004229c4
test eax, eax
sete al
test al, al
je 0x65f862
lea ecx, [ebp - 0x2a4]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [ebp - 0x27c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x2a4]
mov eax, 0x685934
call fcn.0040994c
jmp 0x65f874
inc dword [ebp - 0x27c]
dec dword [ebp - 0x288]
jne 0x65f7d2
push 0
mov ecx, 0x65fd04
mov edx, 0x65fd38
mov eax, dword [0x6858d8]
mov ebx, dword [eax]
call dword [ebx + 0x14]
test al, al
je 0x65fa10
push 0
mov ecx, 0x65fd50
mov edx, 0x65fd78
mov eax, dword [0x6858d8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
sub eax, 1
jb 0x65f8b4
je 0x65f8c2
dec eax
je 0x65f8d0
jmp 0x65f8dc
call sub.kernel32.dll_GetUserDefaultUILanguage_1
mov word [ebp - 0x27e], ax
jmp 0x65f8dc
call sub.kernel32.dll_GetSystemDefaultLangID
mov word [ebp - 0x27e], ax
jmp 0x65f8dc
call sub.kernel32.dll_GetSystemDefaultUILanguage_1
mov word [ebp - 0x27e], ax
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x65fa10
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x27c], 0
xor eax, eax
push ebp
push 0x65f9f4
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [0x685904]
push 0x65fd90
lea ecx, [ebp - 0x2ac]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [ebp - 0x27c]
test ch, bh
invalid
dec dword [ebx + 0xc53ff18]
push dword [ebp - 0x2ac]
push 0x65fda0
lea eax, [ebp - 0x2a8]
mov edx, 4
call fcn.0040a418
mov ecx, dword [ebp - 0x2a8]
mov dl, 1
mov eax, dword [0x507730]
call fcn.0050a8dc
mov dword [0x6858dc], eax
push 0
mov ecx, 0x65fdbc
mov edx, 0x65fdd0
mov eax, dword [0x6858dc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
movzx edx, word [ebp - 0x27e]
cmp eax, edx
jne 0x65f9e0
lea ecx, [ebp - 0x2b0]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [ebp - 0x27c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x2b0]
mov eax, 0x685934
call fcn.0040994c
mov eax, dword [0x6858dc]
call fcn.004078f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x65fa10
mov eax, dword [0x6858dc]
call fcn.004078f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x65f9fe
inc dword [ebp - 0x27c]
dec dword [ebp - 0x288]
jne 0x65f90c
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3c8]
call fcn.00541f2c
mov dl, 1
mov eax, dword [0x5174a0]
call fcn.00520504
mov dword [ebp - 0x284], eax
xor eax, eax
push ebp
push 0x65fa82
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x685934]
call fcn.0064635c
mov edx, eax
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3dc]
mov ecx, dword [ebp - 0x284]
call fcn.005f0844
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3c8]
mov edx, dword [ebp - 0x284]
call fcn.0063cb1c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x65fa8c
mov eax, dword [ebp - 0x284]
call fcn.004078f0
push dword [0x685904]
push 0x65fde8
push dword [0x685934]
push 0x65fdf8
lea eax, [ebp - 0x2b4]
mov edx, 4
call fcn.0040a418
mov edx, dword [ebp - 0x2b4]
mov eax, dword [0x68589c]
call fcn.0065ea3c
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x65fbde
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x27c], 0
xor eax, eax
push ebp
push 0x65fbc2
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
mov eax, dword [0x68589c]
push eax
push 0x65e8bc
push 0
push 0x65fe14
lea ecx, [ebp - 0x2b8]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [ebp - 0x27c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x2b8]
xor ecx, ecx
xor edx, edx
call fcn.005fc2a8
mov edx, eax
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3c4]
mov eax, dword [eax + 0x44]
call fcn.005f91d8
lea ecx, [ebp - 0x2bc]
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x2a0]
mov edx, dword [ebp - 0x27c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x2bc]
call fcn.0064635c
push eax
mov eax, dword [0x68589c]
mov eax, dword [eax + 0x3c4]
mov ebx, dword [eax + 0x44]
mov eax, ebx
call fcn.005f8e38
mov edx, eax
dec edx
mov eax, ebx
call fcn.005f8e48
pop edx
call fcn.005f8e9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x65fbcc
inc dword [ebp - 0x27c]
dec dword [ebp - 0x288]
jne 0x65fafd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x65fc42
lea eax, [ebp - 0x2bc]
mov edx, 7
call fcn.004095cc
lea eax, [ebp - 0x29c]
mov edx, 3
call fcn.004095cc
lea eax, [ebp - 0x290]
call fcn.0040956c
lea eax, [ebp - 0x28c]
call fcn.0040956c
lea eax, [ebp - 0x278]
mov edx, dword [0x41b148]
call fcn.0040aa44
lea eax, [ebp - 4]
call fcn.0040956c
ret