Function at 0x40ccab
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7d0
cmp dword [ebp + 0xc], 0
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov eax, dword [esi]
mov dword [ebp + 0x10], eax
je 0x40d403
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x40d403
push 1
pop edi
push edi
push ebx
push dword [ebp + 0xc]
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebp + 0xc]
add esp, 0xc
inc eax
mov dword [esi], edi
mov dword [ebp + 8], eax
movsx eax, byte [ebx]
inc ebx
sub eax, 6
je 0x40d039
dec eax
je 0x40cd7a
dec eax
je 0x40cd19
dec eax
dec eax
jne 0x40d411
push dword [ebx]
mov ecx, 0x4289b0
call fcn.00414dee
jmp 0x40d411
mov ebx, dword [ebx]
cmp ebx, 0x12
je 0x40cd3f
mov eax, dword [0x428970]
mov dword [0x428974], ebx
test eax, eax
je 0x40d411
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x40d411
mov byte [0x428978], 1
call fcn.00402ee1
cmp ax, 0x804
jne 0x40cd58
push 0x42677c
jmp 0x40cd5d
push 0x42675c
push 0x9c58
push 0x400
push 8
push dword [0x428688]
call dword [sym.imp.USER32.dll_InsertMenuW]
jmp 0x40d411
mov ebx, dword [ebx]
mov eax, ebx
sub eax, 0xd
je 0x40cf9f
sub eax, 0x20
je 0x40ce8f
sub eax, 0x3e
je 0x40ce85
sub eax, 0xd
je 0x40ce74
sub eax, 0x378
je 0x40ce05
dec eax
je 0x40cdc1
sub eax, 4
jne 0x40cea9
push 0xfffffffffffffff4
call fcn.00404722
jmp 0x40d410
push 0x7f
xor esi, esi
pop ecx
xor eax, eax
lea edi, [ebp - 0x206]
mov word [ebp - 0x208], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x208]
push 0x100
push eax
push 0x3f1
push dword [0x428fe4]
call dword [sym.imp.USER32.dll_LoadStringW]
push 4
push 0x4240e4
lea eax, [ebp - 0x208]
jmp 0x40ce47
push 0x7f
xor esi, esi
pop ecx
xor eax, eax
lea edi, [ebp - 0x206]
mov word [ebp - 0x208], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x208]
push 0x100
push eax
push 0x3f0
push dword [0x428fe4]
call dword [sym.imp.USER32.dll_LoadStringW]
push 4
push 0x4240e4
lea eax, [ebp - 0x208]
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x40d411
push esi
push 0x9c4c
push 0x111
push dword [0x4289ac]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x40d411
mov byte [0x429cc5], 1
call fcn.004094cf
jmp 0x40d411
push 0x426710
jmp 0x40d3b6
cmp byte [0x429cc4], 0
jne 0x40cea9
mov byte [0x429cc4], 1
call fcn.0040c173
jmp 0x40d411
cmp byte [0x429bb9], 0
je 0x40cebc
mov eax, dword [0x429cbc]
jmp 0x40cd2b
cmp byte [0x429bba], 0
jne 0x40cee7
call fcn.0040ee2a
test al, al
je 0x40cee7
push edi
mov byte [0x429bb9], 1
mov byte [0x429bba], 1
call fcn.0040e6df
jmp 0x40d410
mov eax, dword [0x429bb4]
test eax, eax
je 0x40cf0b
mov esi, eax
test esi, esi
je 0x40cf04
mov ecx, esi
call fcn.00406332
push esi
call fcn.0041c0c6
pop ecx
and dword [0x429bb4], 0
call fcn.0040953c
test eax, eax
je 0x40cf1d
push edi
push eax
call fcn.00409576
pop ecx
pop ecx
cmp ebx, 0x3eb
mov esi, 0x3f6
je 0x40cf38
cmp ebx, 0x57
je 0x40cf38
cmp ebx, 0xa
je 0x40cf38
cmp ebx, esi
jne 0x40cf4c
push dword [0x428ff8]
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp ebx, esi
je 0x40d411
and word [ebp - 0x208], 0
push 0x7f
pop ecx
xor eax, eax
lea edi, [ebp - 0x206]
push 0x100
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x208]
push eax
push ebx
push dword [0x428fe4]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x208]
push 0x10
push eax
call fcn.0040f17a
and byte [0x429bba], 0
and byte [0x429bb9], 0
pop ecx
pop ecx
jmp 0x40d411
mov eax, dword [0x429bb4]
test eax, eax
je 0x40cfce
push eax
call fcn.004089c9
mov esi, dword [0x429bb4]
pop ecx
test esi, esi
je 0x40cfc7
mov ecx, esi
call fcn.00406332
push esi
call fcn.0041c0c6
pop ecx
and dword [0x429bb4], 0
push dword [0x428ff8]
mov esi, dword [sym.imp.KERNEL32.dll_SetEvent]
call esi
push 0x4266b4
push 7
call fcn.0040148c
cmp byte [0x429bb9], 0
pop ecx
pop ecx
je 0x40d01b
mov eax, dword [0x429cbc]
and byte [0x429bb9], 0
test eax, eax
mov byte [0x429bbb], 1
je 0x40d00d
push eax
call esi
push 0x42663c
push 7
call fcn.0040148c
pop ecx
pop ecx
and byte [0x429bba], 0
cmp byte [0x429238], 0
je 0x40d411
call fcn.0040f352
jmp 0x40d411
push edi
lea eax, [ebp + 0xf]
push ebx
push eax
call sub.MSVCRT.dll_memcpy
movsx eax, byte [ebp + 0xf]
add esp, 0xc
inc ebx
dec eax
je 0x40d3a8
dec eax
je 0x40d2e7
dec eax
dec eax
je 0x40d27e
dec eax
dec eax
je 0x40d23f
dec eax
je 0x40d17c
push 3
pop esi
sub eax, esi
je 0x40d0f3
dec eax
jne 0x40d411
cmp dword [ebp + 0x10], 0x104
mov byte [0x429dc8], 1
ja 0x40d0fc
and word [ebp - 0x210], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x20e]
rep stosd dword es:[edi], eax
push 0x100
mov esi, 0x429cc8
push 0
push esi
stosw word es:[edi], ax
call sub.MSVCRT.dll_memset
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffe
push eax
push ebx
push esi
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x210]
push eax
push esi
call fcn.0040fc66
add esp, 0x20
lea eax, [ebp - 0x210]
push eax
push 0x426600
push 6
call fcn.0040148c
add esp, 0xc
jmp 0x40d411
cmp dword [ebp + 0x10], 0x104
jbe 0x40d107
push 0x4265dc
push esi
jmp 0x40d40a
and word [ebp - 0x7d0], 0
mov ecx, 0x103
xor eax, eax
lea edi, [ebp - 0x7ce]
rep stosd dword es:[edi], eax
and byte [ebp - 0x10c], 0
push 0x40
stosw word es:[edi], ax
pop ecx
xor eax, eax
lea edi, [ebp - 0x10b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffe
push eax
lea eax, [ebp - 0x10c]
push ebx
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x7d0]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.0040fc66
add esp, 0x14
test eax, eax
jle 0x40d411
lea eax, [ebp - 0x7d0]
push 0x10
push eax
call fcn.0040f17a
jmp 0x40d40f
cmp dword [ebp + 0x10], 0x80
jbe 0x40d18f
push 0x4265ac
jmp 0x40d408
and byte [ebp - 0x108], 0
push 0x3f
pop ecx
xor eax, eax
lea edi, [ebp - 0x107]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffe
push eax
lea eax, [ebp - 0x108]
push ebx
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x108]
push eax
call fcn.0040f240
add esp, 0x10
test eax, eax
jne 0x40d411
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, 0x804
mov esi, 0x9c57
jne 0x40d1e9
push 0x429b18
jmp 0x40d1ee
push 0x429a98
call fcn.0040108a
mov edi, eax
pop ecx
test edi, edi
je 0x40d224
cmp byte [0x428978], 0
push edi
push esi
push 0x400
je 0x40d20e
push 0xa
jmp 0x40d210
push 9
push dword [0x428688]
call dword [sym.imp.USER32.dll_InsertMenuW]
push edi
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
push 0
push esi
push dword [0x428688]
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov byte [0x429b98], 1
jmp 0x40d411
mov eax, 0x104
cmp dword [ebp + 0x10], eax
jbe 0x40d253
push 0x426584
jmp 0x40d408
push eax
mov esi, 0x429998
push 0
push esi
call sub.MSVCRT.dll_memset
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffe
push eax
push ebx
push esi
call sub.MSVCRT.dll_memcpy
add esp, 0x18
mov byte [0x429238], 1
jmp 0x40d411
lea eax, [ebp + 0xf]
push edi
push eax
push dword [ebp + 8]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
inc dword [ebp + 8]
inc dword [esi]
mov eax, dword [0x429bb4]
test eax, eax
je 0x40d2b3
add eax, 0x8fc
push 0x4252bc
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
pop ecx
test eax, eax
pop ecx
jne 0x40d2cb
cmp byte [0x429bb9], 0
jne 0x40d2cb
cmp byte [0x429bbb], 0
jne 0x40d2cb
and dword [ebp + 0x10], 0
jmp 0x40d2ce
mov dword [ebp + 0x10], edi
lea eax, [ebp + 0x10]
push 4
push eax
push dword [ebp + 8]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add dword [esi], 4
jmp 0x40d411
mov eax, dword [0x4289ac]
mov ebx, dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov dword [ebp - 0x3bc], eax
lea eax, [ebp - 0x3c0]
push eax
push 2
mov dword [ebp - 0x3c0], 0x3b8
mov dword [ebp - 0x3b8], 0x3e8
call ebx
push 0x4240e4
lea eax, [ebp - 0x3a8]
push 0x7f
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0xc
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3b0], 0x8001
push 3
pop esi
push 0x66
mov dword [ebp - 0x3b4], esi
push dword [0x4289a8]
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp - 0x3ac], eax
lea eax, [ebp - 0x3c0]
push eax
push 0
call ebx
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x1c], esi
mov esi, dword [sym.imp.MSVCRT.dll_wcscpy]
push 0x42655c
push eax
mov dword [ebp - 0x3b4], 0x10
call esi
lea eax, [ebp - 0x2a0]
push 0x426500
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x3c0]
mov byte [0x42896c], 1
push eax
push edi
call ebx
jmp 0x40d411
cmp byte [0x429bbb], 0
je 0x40d3ba
push 0x4264a8
push 7
jmp 0x40d40a
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
push eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
call fcn.0040ed43
test al, al
pop ecx
jne 0x40d3f6
mov ebx, dword [ebp + 8]
lea eax, [ebp + 0xf]
push edi
push eax
push ebx
call sub.MSVCRT.dll_memcpy
inc dword [esi]
lea eax, [ebp + 0x10]
push 4
inc ebx
push eax
push ebx
mov dword [ebp + 0x10], edi
call sub.MSVCRT.dll_memcpy
add esp, 0x18
add dword [esi], 4
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.0040e5c9
jmp 0x40d40f
push 0x4262bc
push 3
call fcn.0040148c
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret