Function at 0x4063c0
Capabilities:
Identify system language via api
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c0
mov eax, dword [0x42a470]
mov dword [ebp - 8], eax
push edi
mov al, byte [0x41c3e9]
mov byte [ebp - 0x120], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x11f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x128], 0
mov byte [ebp - 0x15d], 1
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx ecx, ax
and ecx, 0x3ff
mov dword [ebp - 0x180], ecx
lea ecx, [ebp - 0x12c]
call fcn.00407210
mov edx, dword [ebp + 8]
push edx
push str.SoftwareNIPSON_s
lea eax, [ebp - 0x12c]
push eax
call fcn.004070f0
add esp, 0xc
lea ecx, [ebp - 0x130]
push ecx
push 1
push 0
lea ecx, [ebp - 0x12c]
call fcn.00407540
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x406467
mov byte [ebp - 0x15d], 0
jmp 0x4064ad
mov dword [ebp - 0x124], 0x104
lea edx, [ebp - 0x124]
push edx
lea eax, [ebp - 0x120]
push eax
push 0
push 0
push str.LicenseKey
mov ecx, dword [ebp - 0x130]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x4064a0
mov byte [ebp - 0x15d], 0
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
movzx eax, byte [ebp - 0x15d]
test eax, eax
jne 0x40650d
cmp dword [ebp - 0x180], 0xc
jne 0x4064d8
mov ecx, dword [ebp + 8]
push ecx
push str.Entr
mov edx, dword [ebp + 0xc]
push edx
call fcn.00407e60
add esp, 0xc
jmp 0x4064ed
mov eax, dword [ebp + 8]
push eax
push str.Registry_entry_not_found:_nHKEY_LOCAL_MACHINESoftwareNIPSON_s
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00407e60
add esp, 0xc
mov dword [ebp - 0x1a4], 0xffffffff
lea ecx, [ebp - 0x12c]
call fcn.00407230
mov eax, dword [ebp - 0x1a4]
jmp 0x406b65
lea edx, [ebp - 0x120]
push edx
lea ecx, [ebp - 0x12c]
call fcn.00407010
push 0x2a
lea ecx, [ebp - 0x12c]
call fcn.00407030
lea ecx, [ebp - 0x12c]
call fcn.00407290
cmp eax, 0x3c
je 0x406591
cmp dword [ebp - 0x180], 0xc
jne 0x40655c
mov eax, dword [ebp + 8]
push eax
push 0x41c4a8
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00407e60
add esp, 0xc
jmp 0x406571
mov edx, dword [ebp + 8]
push edx
push 0x41c4c4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00407e60
add esp, 0xc
mov dword [ebp - 0x1a8], 0xfffffffe
lea ecx, [ebp - 0x12c]
call fcn.00407230
mov eax, dword [ebp - 0x1a8]
jmp 0x406b65
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x134], 0
jmp 0x4065b6
mov ecx, dword [ebp - 0x188]
add ecx, 1
mov dword [ebp - 0x188], ecx
cmp dword [ebp - 0x134], 0x3c
jge 0x40669e
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x1b8]
push eax
lea ecx, [ebp - 0x12c]
call fcn.00407120
mov byte [ebp - 0x184], al
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x1bc]
push eax
lea ecx, [ebp - 0x12c]
call fcn.00407120
mov byte [ebp - 0x183], al
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
mov byte [ebp - 0x182], 0
mov edx, dword [ebp - 0x188]
and edx, 0x80000001
jns 0x406643
dec edx
or edx, 0xfffffffe
inc edx
test edx, edx
jne 0x40666c
lea eax, [ebp - 0x184]
push eax
call fcn.004062c0
add esp, 4
mov cl, al
mov eax, dword [ebp - 0x188]
cdq
sub eax, edx
sar eax, 1
mov byte [ebp + eax - 0x120], cl
jmp 0x406699
lea edx, [ebp - 0x184]
push edx
call fcn.004062c0
add esp, 4
mov cl, al
mov eax, dword [ebp - 0x188]
add eax, 1
cdq
sub eax, edx
sar eax, 1
mov edx, 0x1e
sub edx, eax
mov byte [ebp + edx - 0x120], cl
jmp 0x4065a7
mov dword [ebp - 0x134], 0
jmp 0x4066b9
mov eax, dword [ebp - 0x134]
add eax, 1
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0x1e
jge 0x4066f4
mov ecx, dword [ebp - 0x134]
shl ecx, 8
mov edx, dword [ebp - 0x134]
movzx eax, byte [ebp + edx - 0x120]
xor eax, 0xac
mov edx, dword [ebp - 0x134]
mov al, byte [ecx + eax + 0x428648]
mov byte [ebp + edx - 0x120], al
jmp 0x4066aa
mov dword [ebp - 0x134], 0
jmp 0x40670f
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0xf
jge 0x406734
mov edx, dword [ebp - 0x134]
movzx eax, byte [ebp + edx - 0x120]
sar eax, 1
mov ecx, dword [ebp - 0x134]
mov byte [ebp + ecx - 0x18], al
jmp 0x406700
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x18]
push eax
call fcn.0041457a
add esp, 8
test eax, eax
je 0x406757
mov ecx, dword [ebp - 0x128]
add ecx, 1
mov dword [ebp - 0x128], ecx
movzx edx, byte [ebp - 0x111]
sar edx, 1
mov eax, dword [ebp + 0x10]
mov dword [eax], edx
mov word [ebp - 0x138], 0
push 2
lea ecx, [ebp - 0x110]
push ecx
lea edx, [ebp - 0x13c]
push edx
call fcn.004087b0
add esp, 0xc
push 2
push 0
lea eax, [ebp - 0x110]
push eax
call fcn.00407d70
add esp, 0xc
mov dword [ebp - 0x134], 0
jmp 0x4067b4
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0x1e
jge 0x4067dd
mov edx, dword [ebp - 0x134]
movzx eax, byte [ebp + edx - 0x120]
movzx ecx, word [ebp - 0x138]
add ecx, eax
mov word [ebp - 0x138], cx
jmp 0x4067a5
movzx edx, word [ebp - 0x138]
movzx eax, word [ebp - 0x13c]
cmp edx, eax
je 0x4067fe
mov ecx, dword [ebp - 0x128]
add ecx, 1
mov dword [ebp - 0x128], ecx
push 0xc
lea edx, [ebp - 0x10e]
push edx
lea eax, [ebp - 0x170]
push eax
call fcn.004087b0
add esp, 0xc
mov dword [ebp - 0x134], 0
jmp 0x406831
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0xc
jge 0x406859
mov edx, dword [ebp - 0x134]
movzx eax, byte [ebp + edx - 0x170]
sar eax, 1
mov ecx, dword [ebp - 0x134]
mov byte [ebp + ecx - 0x170], al
jmp 0x406822
mov edx, dword [ebp - 0x134]
mov byte [ebp + edx - 0x170], 0
mov dword [ebp - 0x134], 0
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x1bd], al
mov cl, byte [ebp - 0x1bd]
push ecx
lea edx, [ebp - 0x15c]
push edx
call fcn.004060d0
add esp, 8
mov eax, dword [ebp - 0x134]
add eax, 1
mov dword [ebp - 0x134], eax
movsx ecx, byte [ebp - 0x15c]
test ecx, ecx
je 0x4068c7
lea edx, [ebp - 0x170]
push edx
lea eax, [ebp - 0x15c]
push eax
call fcn.00408af0
add esp, 8
test eax, eax
jne 0x406871
lea ecx, [ebp - 0x170]
push ecx
lea edx, [ebp - 0x15c]
push edx
call fcn.00408af0
add esp, 8
test eax, eax
je 0x4068f0
mov eax, dword [ebp - 0x128]
add eax, 1
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x134], 7
jmp 0x406915
mov ecx, dword [ebp - 0x134]
sub ecx, 1
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0
jl 0x40694b
mov edx, dword [ebp - 0x14c]
shl edx, 1
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x134]
movzx ecx, byte [ebp + eax - 0x120]
and ecx, 1
or ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], ecx
jmp 0x406906
mov dword [ebp - 4], 0
mov dword [ebp - 0x134], 0xb
jmp 0x40696d
mov edx, dword [ebp - 0x134]
sub edx, 1
mov dword [ebp - 0x134], edx
cmp dword [ebp - 0x134], 8
jl 0x406997
mov eax, dword [ebp - 4]
shl eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x134]
movzx edx, byte [ebp + ecx - 0x120]
and edx, 1
or edx, dword [ebp - 4]
mov dword [ebp - 4], edx
jmp 0x40695e
cmp dword [ebp - 4], 1
jl 0x4069b5
cmp dword [ebp - 4], 0xc
jg 0x4069b5
cmp dword [ebp - 0x14c], 0
jl 0x4069b5
cmp dword [ebp - 0x14c], 0x7f
jle 0x4069c4
mov eax, dword [ebp - 0x128]
add eax, 1
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x406a22
cmp dword [ebp - 0x180], 0xc
jne 0x4069ed
mov ecx, dword [ebp + 8]
push ecx
push str.Licence_incorrecte_pour__s
mov edx, dword [ebp + 0xc]
push edx
call fcn.00407e60
add esp, 0xc
jmp 0x406a02
mov eax, dword [ebp + 8]
push eax
push str.Incorrect_license_for__s
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00407e60
add esp, 0xc
mov dword [ebp - 0x1ac], 0xfffffffe
lea ecx, [ebp - 0x12c]
call fcn.00407230
mov eax, dword [ebp - 0x1ac]
jmp 0x406b65
lea edx, [ebp - 0x17c]
push edx
call fcn.00406ba0
lea ecx, [ebp - 0x17c]
call fcn.00406c30
sub eax, 0x780
mov dword [ebp - 0x148], eax
lea ecx, [ebp - 0x17c]
call fcn.00406ce0
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x14c]
cmp eax, dword [ebp - 0x148]
jl 0x406a7c
mov ecx, dword [ebp - 0x14c]
cmp ecx, dword [ebp - 0x148]
jne 0x406ad1
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x140]
jge 0x406ad1
cmp dword [ebp - 0x180], 0xc
jne 0x406a9c
mov eax, dword [ebp + 8]
push eax
push str.La_licence_pour__s_a_expir
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00407e60
add esp, 0xc
jmp 0x406ab1
mov edx, dword [ebp + 8]
push edx
push str.The_license_for__s_has_expired.
mov eax, dword [ebp + 0xc]
push eax
call fcn.00407e60
add esp, 0xc
mov dword [ebp - 0x1b0], 0xfffffffd
lea ecx, [ebp - 0x12c]
call fcn.00407230
mov eax, dword [ebp - 0x1b0]
jmp 0x406b65
mov dword [ebp - 0x144], 0
mov ecx, dword [ebp - 0x14c]
cmp ecx, dword [ebp - 0x148]
jne 0x406b48
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x140]
jne 0x406b48
push 0
push 0
push 0
push 1
mov eax, dword [ebp - 4]
add eax, 1
push eax
mov ecx, dword [ebp - 0x14c]
add ecx, 0x780
push ecx
lea ecx, [ebp - 0x1a0]
call fcn.00406c00
lea edx, [ebp - 0x17c]
push edx
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00406ea0
lea ecx, [ebp - 0x194]
call fcn.00406b80
add eax, 1
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x1b4], ecx
lea ecx, [ebp - 0x12c]
call fcn.00407230
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 8]
call fcn.00408089
pop edi
mov esp, ebp
pop ebp
ret