Function at 0x667bb4
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd54
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x278]
mov edx, dword [0x41b150]
call fcn.0040a96c
xor eax, eax
push ebp
push 0x6680a7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [eax]
call dword [edx + 0x48]
lea eax, [ebp - 0x288]
mov ecx, 0x6680c4
mov edx, dword [0x686918]
call fcn.0040a390
mov eax, dword [ebp - 0x288]
lea ecx, [ebp - 0x278]
mov edx, 0x1ff
call fcn.004247fc
test eax, eax
jne 0x667cc6
mov eax, dword [ebp - 0x268]
and eax, 0x10
cmp eax, 0x10
je 0x667cb7
mov eax, dword [ebp - 0x264]
mov ebx, eax
test ebx, ebx
je 0x667c7f
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0x28c]
push eax
mov ecx, ebx
sub ecx, 6
mov edx, 1
mov eax, dword [ebp - 0x264]
call fcn.0040a500
mov edx, dword [ebp - 0x28c]
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0x278]
call fcn.0042484c
test eax, eax
je 0x667c60
lea eax, [ebp - 0x278]
call fcn.00424870
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x667d13
mov eax, dword [0x6868ec]
call fcn.004078f0
mov eax, dword [0x686950]
call fcn.004078f0
mov eax, dword [0x686958]
call fcn.004078f0
mov eax, 4
call fcn.00666554
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jne 0x667d9a
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x108]
push dword [0x686918]
push 0x6680e4
lea ecx, [ebp - 0x294]
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x294]
push 0x6680f4
lea eax, [ebp - 0x290]
mov edx, 4
call fcn.0040a418
mov edx, dword [ebp - 0x290]
mov eax, dword [0x6868b0]
call fcn.00667878
jmp 0x66803f
push 0x668110
lea eax, [ebp - 4]
push eax
mov ecx, 0x66812c
mov edx, 0x668158
mov eax, dword [0x6868ec]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x667e70
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x27c], 0
lea ecx, [ebp - 0x298]
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [ebp - 0x27c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, dword [ebp - 0x298]
cmp ebx, dword [ebp - 4]
jne 0x667e18
mov al, 1
jmp 0x667e3f
test ebx, ebx
je 0x667e22
cmp dword [ebp - 4], 0
jne 0x667e26
xor eax, eax
jmp 0x667e3f
mov edx, dword [ebp - 4]
mov dword [ebp - 0x29c], ebx
mov eax, dword [ebp - 0x29c]
call fcn.004229cc
test eax, eax
sete al
test al, al
je 0x667e5e
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov edx, dword [ebp - 0x27c]
mov ecx, dword [eax]
call dword [ecx + 0x108]
jmp 0x667e70
inc dword [ebp - 0x27c]
dec dword [ebp - 0x284]
jne 0x667de7
push 0
mov ecx, 0x668170
mov edx, 0x6681a4
mov eax, dword [0x6868ec]
mov ebx, dword [eax]
call dword [ebx + 0x14]
test al, al
je 0x667ff3
push 0
mov ecx, 0x6681bc
mov edx, 0x6681e4
mov eax, dword [0x6868ec]
mov ebx, dword [eax]
call dword [ebx + 0xc]
sub eax, 1
jb 0x667eb0
je 0x667ebe
dec eax
je 0x667ecc
jmp 0x667ed8
call sub.KERNEL32.DLL_GetUserDefaultUILanguage
mov word [ebp - 0x27e], ax
jmp 0x667ed8
call sub.KERNEL32.DLL_GetSystemDefaultLangID
mov word [ebp - 0x27e], ax
jmp 0x667ed8
call sub.KERNEL32.DLL_GetSystemDefaultUILanguage
mov word [ebp - 0x27e], ax
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x667ff3
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x27c], 0
xor eax, eax
push ebp
push 0x667fd7
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [0x686918]
push 0x6681fc
lea ecx, [ebp - 0x2a4]
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov eax, dword [eax + 0x2cc]
mov edx, dword [ebp - 0x27c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x2a4]
push 0x66820c
lea eax, [ebp - 0x2a0]
mov edx, 4
call fcn.0040a418
mov ecx, dword [ebp - 0x2a0]
mov dl, 1
mov eax, dword [0x507798]
call fcn.0050a944
mov dword [0x6868f0], eax
push 0
mov ecx, 0x668228
mov edx, 0x66823c
mov eax, dword [0x6868f0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
movzx edx, word [ebp - 0x27e]
cmp eax, edx
jne 0x667fc3
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
mov edx, dword [ebp - 0x27c]
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x6868f0]
call fcn.004078f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x667ff3
mov eax, dword [0x6868f0]
call fcn.004078f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x667fe1
inc dword [ebp - 0x27c]
dec dword [ebp - 0x284]
jne 0x667f08
push dword [0x686918]
push 0x668254
lea edx, [ebp - 0x2ac]
mov eax, dword [0x6868b0]
mov eax, dword [eax + 0x44c]
call fcn.00541938
push dword [ebp - 0x2ac]
push 0x668264
lea eax, [ebp - 0x2a8]
mov edx, 4
call fcn.0040a418
mov edx, dword [ebp - 0x2a8]
mov eax, dword [0x6868b0]
call fcn.00667878
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6680ae
lea eax, [ebp - 0x2ac]
call fcn.0040956c
lea eax, [ebp - 0x2a8]
mov edx, 3
call fcn.004095cc
lea eax, [ebp - 0x298]
mov edx, 3
call fcn.004095cc
lea eax, [ebp - 0x28c]
call fcn.0040956c
lea eax, [ebp - 0x288]
call fcn.0040956c
lea eax, [ebp - 0x278]
mov edx, dword [0x41b150]
call fcn.0040aa44
lea eax, [ebp - 4]
call fcn.0040956c
ret