Function at 0x412880
Capabilities:
Check http status code
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x467e55
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x488540]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 4], 0
lea eax, [edi + 0x198]
push dword [ebp + 8]
push dword [edi + 0x190]
push str._s_s.lang
push eax
call fcn.00408d30
add esp, 0x10
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4155c7
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 1
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0x6c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], vtable.CMenu.0
mov dword [ebp - 0x34], 0
push 0
push ecx
mov byte [ebp - 4], 2
mov ebx, esp
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], ebx
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4155d1
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
push str.FILE
mov ecx, ebx
mov byte [ebp - 4], 3
call fcn.00402800
test al, al
jne 0x412951
push 4
push str.FILE
mov ecx, ebx
call fcn.004029e0
push ecx
mov ebx, esp
mov byte [ebp - 4], 4
mov dword [ebp - 0x2c], ebx
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4155db
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
push str.Menu
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.00402800
test al, al
jne 0x412996
push 4
push str.Menu
mov ecx, ebx
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 4
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 6
lea ecx, [esi - 0x10]
mov edx, dword [eax]
or ebx, 0xffffffff
mov dword [ebp - 0x20], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x412a0f
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x412a00
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x412a00
push dword [ebp - 0x1c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x1c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4129f8
mov esi, dword [ebp - 0x20]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x1c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x412a0f
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412a2d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
push esi
push 0
push 0x400
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4155e5
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.SETTINGS
mov byte [ebp - 4], 7
call fcn.00402800
test al, al
jne 0x412a89
mov ecx, dword [ebp - 0x1c]
push 8
push str.SETTINGS
call fcn.004029e0
push ecx
mov byte [ebp - 4], 8
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4155ef
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 9
call fcn.00402800
test al, al
jne 0x412ace
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 8
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0xa
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x20], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x24], eax
cmp eax, ecx
je 0x412b44
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x412b35
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x412b35
push dword [ebp - 0x24]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x24], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x412b2d
mov esi, dword [ebp - 0x20]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x412b44
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412b62
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 1
push 0x400
push 1
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4155f9
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.PROFILE
mov byte [ebp - 4], 0xb
call fcn.00402800
test al, al
jne 0x412bbe
mov ecx, dword [ebp - 0x1c]
push 7
push str.PROFILE
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415603
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0xd
call fcn.00402800
test al, al
jne 0x412c03
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0xe
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x24], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x412c79
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x412c6a
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x412c6a
push dword [ebp - 0x28]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x412c62
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x412c79
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412c97
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 2
push 0x400
push 2
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41560d
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.THEME
mov byte [ebp - 4], 0xf
call fcn.00402800
test al, al
jne 0x412cf3
mov ecx, dword [ebp - 0x1c]
push 5
push str.THEME
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415617
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x11
call fcn.00402800
test al, al
jne 0x412d38
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x10
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x12
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x24], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x412dae
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x412d9f
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x412d9f
push dword [ebp - 0x28]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x412d97
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x412dae
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412dcc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 3
push 0x400
push 3
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415621
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.HELP
mov byte [ebp - 4], 0x13
call fcn.00402800
test al, al
jne 0x412e28
mov ecx, dword [ebp - 0x1c]
push 4
push str.HELP
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41562b
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x15
call fcn.00402800
test al, al
jne 0x412e6d
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x14
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x16
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x24], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x412ee3
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x412ed4
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x412ed4
push dword [ebp - 0x28]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x412ecc
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x412ee3
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412f01
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 4
push 0x400
push 4
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415635
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.LANGUAGE
mov byte [ebp - 4], 0x17
call fcn.00402800
test al, al
jne 0x412f5d
mov ecx, dword [ebp - 0x1c]
push 8
push str.LANGUAGE
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41563f
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x19
call fcn.00402800
test al, al
jne 0x412fa2
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x18
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x1a
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x24], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x413018
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413009
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413009
push dword [ebp - 0x28]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413001
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413018
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413036
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
jl 0x41307e
push 0x476978
push esi
call fcn.0044dba1
add esp, 8
test eax, eax
je 0x41307e
sub eax, esi
sar eax, 1
js 0x41307e
push 9
push 0x47698c
lea ecx, [ebp - 0x10]
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
push esi
push 5
push 0x400
push 5
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
jmp 0x4130c4
push str._Language_
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00419d00
add esp, 0xc
push dword [eax]
mov eax, dword [ebp - 0x14]
push 5
push 0x400
push 5
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov edx, dword [ebp - 0x28]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4130c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str._tAlt__F4
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415649
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.FILE_EXIT
mov byte [ebp - 4], 0x1b
call fcn.00402800
test al, al
jne 0x41310f
mov ecx, dword [ebp - 0x1c]
push 9
push str.FILE_EXIT
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415653
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x1d
call fcn.00402800
test al, al
jne 0x413154
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x1c
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x1e
push eax
call fcn.00419d00
add esp, 0xc
mov byte [ebp - 4], 0x1f
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x24], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x4131db
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4131cc
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4131cc
push dword [ebp - 0x28]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4131c4
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x4131db
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 0x1e
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4131f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413217
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8003
push 0
push 0x8003
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push str._tCtrl__T
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41565d
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.SAVE_TEXT
mov byte [ebp - 4], 0x20
call fcn.00402800
test al, al
jne 0x41327b
mov ecx, dword [ebp - 0x1c]
push 9
push str.SAVE_TEXT
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415667
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x22
call fcn.00402800
test al, al
jne 0x4132c0
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x21
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x23
push eax
call fcn.00419d00
add esp, 0xc
mov byte [ebp - 4], 0x24
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413347
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413338
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413338
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413330
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413347
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 0x23
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413365
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413383
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8033
push 0
push 0x8033
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push str._tCtrl__S
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415671
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.SAVE_IMAGE
mov byte [ebp - 4], 0x25
call fcn.00402800
test al, al
jne 0x4133e7
mov ecx, dword [ebp - 0x1c]
push 0xa
push str.SAVE_IMAGE
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41567b
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x27
call fcn.00402800
test al, al
jne 0x41342c
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x26
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x28
push eax
call fcn.00419d00
add esp, 0xc
mov byte [ebp - 4], 0x29
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x4134b3
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4134a4
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4134a4
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41349c
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x4134b3
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 0x28
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4134d1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4134ef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8034
push 0
push 0x8034
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push str._tCtrl__Shift__C
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415685
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.EDIT_COPY
mov byte [ebp - 4], 0x2a
call fcn.00402800
test al, al
jne 0x413553
mov ecx, dword [ebp - 0x1c]
push 9
push str.EDIT_COPY
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41568f
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x2c
call fcn.00402800
test al, al
jne 0x413598
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x2b
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x2d
push eax
call fcn.00419d00
add esp, 0xc
mov byte [ebp - 4], 0x2e
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x41361f
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413610
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413610
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413608
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x41361f
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 0x2d
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41363d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41365b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8009
push 0
push 0x8009
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov eax, dword [ebp - 0x14]
push 1
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call fcn.0043de3f
test eax, eax
je 0x41368f
mov eax, dword [eax + 4]
push eax
lea ecx, [ebp - 0x38]
call fcn.0043dd97
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415699
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.TEST_DATA
mov byte [ebp - 4], 0x2f
call fcn.00402800
test al, al
jne 0x4136de
mov ecx, dword [ebp - 0x1c]
push 9
push str.TEST_DATA
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x30
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156a3
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x31
call fcn.00402800
test al, al
jne 0x413723
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x30
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x32
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413799
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41378a
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x41378a
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413782
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413799
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4137b7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push esi
push 0
push 0x400
push 0
push dword [ebp - 0x34]
call dword [sym.imp.USER32.dll_ModifyMenuW]
lea ecx, [ebp - 0x38]
call fcn.0043de15
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156ad
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.DEFAULT_RANDOM
mov byte [ebp - 4], 0x33
call fcn.00402800
test al, al
jne 0x413818
mov ecx, dword [ebp - 0x1c]
push 0xe
push str.DEFAULT_RANDOM
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x34
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156b7
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x35
call fcn.00402800
test al, al
jne 0x41385d
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x34
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x36
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x4138d3
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4138c4
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4138c4
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4138bc
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x4138d3
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4138f1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x802f
push 0
push 0x802f
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156c1
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.ALL_ZERO
mov byte [ebp - 4], 0x37
call fcn.00402800
test al, al
jne 0x413950
mov ecx, dword [ebp - 0x1c]
push 8
push str.ALL_ZERO
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x38
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156cb
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x39
call fcn.00402800
test al, al
jne 0x413995
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x38
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x3a
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413a0b
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4139fc
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4139fc
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4139f4
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413a0b
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413a29
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8030
push 0
push 0x8030
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
cmp dword [edi + 0x4bc], 1
mov ecx, edi
jne 0x413a54
call fcn.00418000
jmp 0x413a59
call fcn.00417f10
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156d5
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.DEFAULT
mov byte [ebp - 4], 0x3b
call fcn.00402800
test al, al
jne 0x413a9f
mov ecx, dword [ebp - 0x1c]
push 7
push str.DEFAULT
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x3c
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156df
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Dialog
mov byte [ebp - 4], 0x3d
call fcn.00402800
test al, al
jne 0x413ae4
mov ecx, dword [ebp - 0x1c]
push 6
push str.Dialog
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x3c
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x3e
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413b5a
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413b4b
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413b4b
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413b43
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413b5a
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413b78
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8036
push 0
push 0x8036
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov ecx, edi
call fcn.004178a0
push str._tCtrl__Q
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156e9
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.SETTINGS
mov byte [ebp - 4], 0x3f
call fcn.00402800
test al, al
jne 0x413be3
mov ecx, dword [ebp - 0x1c]
push 8
push str.SETTINGS
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x40
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156f3
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x41
call fcn.00402800
test al, al
jne 0x413c28
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x40
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x42
push eax
call fcn.00419d00
add esp, 0xc
mov byte [ebp - 4], 0x43
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413caf
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413ca0
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413ca0
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413c98
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413caf
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 0x42
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413ccd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413ceb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8032
push 0
push 0x8032
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x4156fd
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.PROFILE_DEFAULT
mov byte [ebp - 4], 0x44
call fcn.00402800
test al, al
jne 0x413d4a
mov ecx, dword [ebp - 0x1c]
push 0xf
push str.PROFILE_DEFAULT
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x45
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415707
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x46
call fcn.00402800
test al, al
jne 0x413d8f
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x45
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x47
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413e05
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413df6
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413df6
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413dee
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413e05
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413e23
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8426
push 0
push 0x8426
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415711
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.PROFILE_PEAK
mov byte [ebp - 4], 0x48
call fcn.00402800
test al, al
jne 0x413e82
mov ecx, dword [ebp - 0x1c]
push 0xc
push str.PROFILE_PEAK
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x49
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41571b
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x4a
call fcn.00402800
test al, al
jne 0x413ec7
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x49
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x4b
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x413f3d
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x413f2e
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413f2e
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413f26
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x413f3d
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413f5b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8427
push 0
push 0x8427
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415725
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.PROFILE_REAL
mov byte [ebp - 4], 0x4c
call fcn.00402800
test al, al
jne 0x413fba
mov ecx, dword [ebp - 0x1c]
push 0xc
push str.PROFILE_REAL
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x4d
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41572f
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x4e
call fcn.00402800
test al, al
jne 0x413fff
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x4d
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x4f
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x414075
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x414066
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x414066
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41405e
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x414075
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x414093
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8428
push 0
push 0x8428
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415739
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.PROFILE_DEMO
mov byte [ebp - 4], 0x50
call fcn.00402800
test al, al
jne 0x4140f2
mov ecx, dword [ebp - 0x1c]
push 0xc
push str.PROFILE_DEMO
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x51
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415743
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x52
call fcn.00402800
test al, al
jne 0x414137
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x51
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
mov byte [ebp - 4], 0x53
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x4141ad
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41419e
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x41419e
push dword [ebp - 0x2c]
call fcn.00402510
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x414196
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
jmp 0x4141ad
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.004029e0
mov esi, dword [ebp - 0x10]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4141cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push esi
push 0x8429
push 0
push 0x8429
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push str.__Mix_
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x41574d
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.PROFILE_DEFAULT
mov byte [ebp - 4], 0x54
call fcn.00402800
test al, al
jne 0x41422f
mov ecx, dword [ebp - 0x1c]
push 0xf
push str.PROFILE_DEFAULT
call fcn.004029e0
push ecx
mov byte [ebp - 4], 0x55
mov dword [ebp - 0x1c], esp
call fcn.00431d31
mov ecx, eax
test ecx, ecx
je 0x415757
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ecx], eax
push str.Menu
mov byte [ebp - 4], 0x56
call fcn.00402800
test al, al
jne 0x414274
mov ecx, dword [ebp - 0x1c]
push 4
push str.Menu
call fcn.004029e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x55
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00422780
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x57
push eax
call fcn.00419d00
add esp, 0xc
mov byte [ebp - 4], 0x58
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x4142fb
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
push 0x80004005
call fcn.00402eb0
lea ecx, [ecx]
and byte [ebp + 0x41], cl
add byte [ecx], ch
dec ebp
inc ecx
add byte [edx], dh
dec ebp
inc ecx
add byte [ebx], bh
dec ebp
inc ecx
add byte [ebp + ecx*2 + 0x41], al
add byte [ebp + 0x4d], cl
inc ecx
add byte [esi + 0x4d], dl
inc ecx
add byte [eax], al
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add dword [esi], eax
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add al, byte [esi]
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, dword [esi]
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add al, 6
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, 0xdc00498d
dec ebp
inc ecx
add byte [esi - 0x50ffbeb3], ah
dec ebp
inc ecx
add byte [eax - 0x3effbeb3], bh
dec ebp
inc ecx
add dl, cl
dec ebp
inc ecx
add bl, dl
dec ebp
inc ecx
add ah, cl
int3