Function at 0x472a20
Capabilities:
Check if file exists
Hide graphical window
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5765d3
mov eax, dword fs:[0]
push eax
sub esp, 0x45c
mov eax, dword [0x5fc150]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x3f4], ebx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x3d8], edi
call fcn.0040baa0
mov esi, eax
push edi
mov dword [ebp - 0x3d4], esi
call dword [sym.imp.USER32.dll_GetMenu]
xor ecx, ecx
mov dword [ebx + 0x68934], eax
cmp byte [esi + 0xec], cl
push 0x400
sete cl
add ecx, 5
push ecx
push eax
call dword [sym.imp.USER32.dll_RemoveMenu]
mov edx, dword [ebx + 0x478]
lea eax, [ebx + 0x310]
mov dword [ebx + 0x418], eax
lea ecx, [ebx + 0x478]
lea eax, [ebx + 0x580]
mov dword [ebp - 0x3e8], ecx
mov dword [eax], ecx
mov dword [ebp - 0x3e4], eax
lea eax, [ebx + 0x394]
mov dword [ebx + 0x41c], eax
lea eax, [ebx + 0x420]
mov dword [ebx + 0x584], eax
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebx]
push edi
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
lea ecx, [ebx + 0x420]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
lea edi, [ebx + 0x528]
push dword [ebp - 0x3d8]
mov edx, dword [edi]
mov ecx, edi
push dword [eax + 4]
call dword [edx + 4]
push edi
push ebx
call fcn.00439ba0
mov ecx, eax
call fcn.0041b780
mov edi, dword [ebp - 0x3d8]
mov ecx, esi
push edi
call fcn.004ba740
mov byte [ebx + 0x68ff4], 1
mov dword [ebx + 0x68ff8], 0
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x3dc], eax
shr eax, 3
and al, 1
mov byte [ebx + 0x75c], al
movzx eax, al
neg eax
push 0x60
push dword [esi + 0x10]
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x14
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [ebx]
push 4
push 0x5f9748
push dword [ecx + 4]
lea ecx, [ebx + 0x710]
push eax
call fcn.0045b540
mov eax, dword [ebx]
push 0
push 0
push edi
push dword [eax + 4]
lea ecx, [ebx + 0x310]
call fcn.004eacd0
lea eax, [ebx + 0x710]
lea ecx, [ebx + 0x478]
mov dword [ebx + 0x390], ecx
test eax, eax
je 0x472bba
push dword [eax]
lea ecx, [ebx + 0x310]
call fcn.004ebc60
mov eax, dword [ebx]
lea ecx, [ebx + 0x394]
push 0
push 0
push dword [ebp - 0x3d8]
push dword [eax + 4]
call fcn.004eacd0
lea eax, [ebx + 0x420]
mov dword [ebx + 0x414], eax
lea eax, [ebx + 0x710]
test eax, eax
je 0x472bf7
push dword [eax]
lea ecx, [ebx + 0x394]
call fcn.004ebc60
mov eax, dword [ebx + 0x478]
lea ecx, [ebx + 0x478]
push 1
call dword [eax + 0xc]
mov eax, dword [ebx]
lea ecx, [ebx + 0x4d0]
push dword [ebp - 0x3d8]
mov edx, dword [ebx + 0x4d0]
push dword [eax + 4]
call dword [edx + 4]
push 0
push 0
push 0x7dc
lea ecx, [ebx + 0x4d0]
call fcn.0040d9f0
push 0
push 0
push 0x87f
lea ecx, [ebx + 0x4d0]
call fcn.0040d9f0
push 0
push 0
push 0x8dc
lea ecx, [ebx + 0x4d0]
call fcn.0040d9f0
movzx eax, byte [esi + 0x740]
lea ecx, [ebx + 0x478]
push eax
push dword [0x5bdda8]
call fcn.00413ac0
movzx eax, byte [esi + 0x740]
lea ecx, [ebx + 0x420]
push eax
push dword [0x5bdda8]
call fcn.00413ac0
movzx eax, byte [esi + 0x741]
lea ecx, [ebx + 0x478]
push eax
push dword [0x5bddac]
call fcn.00413ac0
movzx eax, byte [esi + 0x741]
lea ecx, [ebx + 0x420]
push eax
push dword [0x5bddac]
call fcn.00413ac0
movzx eax, byte [esi + 0x74d]
lea ecx, [ebx + 0x478]
push eax
call fcn.004de8a0
movzx eax, byte [esi + 0x74d]
lea ecx, [ebx + 0x420]
push eax
call fcn.004de8a0
mov edi, dword [ebp - 0x3d8]
push 0
push 0
push 0x412
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x413
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx]
lea ecx, [ebx + 0x1480]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
lea ecx, [ebx + 0x46208]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov dword [ebx + 0x68740], eax
mov dword [ebx + 0x68744], edi
push dword [esi + 0x744]
lea ecx, [ebx + 0x478]
call fcn.0044a650
push dword [esi + 0x744]
lea ecx, [ebx + 0x420]
call fcn.0044a650
mov eax, dword [ebx + 0x498]
lea ecx, [ebx + 0x478]
push dword [eax + 0x14]
call fcn.004d6f20
mov eax, dword [ebx + 0x440]
lea ecx, [ebx + 0x420]
push dword [eax + 0x14]
call fcn.004d6f20
mov ecx, dword [esi + 0x748]
cmp ecx, 1
jne 0x472d9a
mov eax, ecx
jmp 0x472da6
xor eax, eax
cmp ecx, 2
setne al
dec eax
and eax, 2
mov ebx, dword [ebp - 0x3e8]
mov ecx, ebx
push 0
push eax
push 0x9a8
call fcn.0040d9f0
mov ecx, dword [esi + 0x748]
cmp ecx, 1
jne 0x472dca
mov eax, ecx
jmp 0x472dd6
xor eax, eax
cmp ecx, 2
setne al
dec eax
and eax, 2
mov ecx, dword [ebp - 0x3e0]
push 0
push eax
push 0x9a8
call fcn.0040d9f0
movzx eax, byte [esi + 0x74e]
mov ecx, ebx
push 0
push eax
push 0x830
call fcn.0040d9f0
movzx eax, byte [esi + 0x74e]
mov ecx, dword [ebp - 0x3e0]
push 0
push eax
push 0x830
call fcn.0040d9f0
xor eax, eax
mov ecx, ebx
cmp byte [esi + 0x770], al
push 0
sete al
push eax
push 0x8e5
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e0]
xor eax, eax
cmp byte [esi + 0x770], al
push 0
sete al
push eax
push 0x8e5
call fcn.0040d9f0
cmp byte [esi + 0x772], 0
je 0x472e7e
push 0
push 3
push 0xa33
mov ecx, ebx
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e0]
push 0
push 3
push 0xa33
call fcn.0040d9f0
movzx eax, byte [esi + 0x773]
mov ecx, ebx
push eax
call fcn.004db140
movzx eax, byte [esi + 0x773]
mov ecx, dword [ebp - 0x3e0]
push eax
call fcn.004db140
push 0
push 1
push 0xa5f
mov ecx, ebx
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e0]
push 0
push 1
push 0xa5f
call fcn.0040d9f0
movzx eax, byte [esi + 0x750]
mov ecx, ebx
push 0
push eax
push 0x8dc
call fcn.0040d9f0
movzx eax, byte [esi + 0x750]
mov ecx, dword [ebp - 0x3e0]
push 0
push eax
push 0x8dc
call fcn.0040d9f0
push 0
push 0
push 0x433
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
movzx eax, byte [esi + 0x769]
mov ecx, ebx
push 0
push eax
push 0x934
call fcn.0040d9f0
movzx eax, byte [esi + 0x769]
mov ecx, dword [ebp - 0x3e0]
push 0
push eax
push 0x934
call fcn.0040d9f0
mov cl, byte [esi + 0x768]
xor eax, eax
test cl, cl
mov ecx, ebx
push 0
setne al
push eax
push 0x7e5
call fcn.0040d9f0
push 0
push 2
push 0x826
mov ecx, ebx
call fcn.0040d9f0
mov cl, byte [esi + 0x768]
xor eax, eax
test cl, cl
mov ecx, dword [ebp - 0x3e0]
push 0
setne al
push eax
push 0x7e5
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e0]
push 0
push 2
push 0x826
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e8]
mov bl, byte [esi + 0x74f]
push 0
push 0
push 0x99e
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e8]
xor eax, eax
test bl, bl
push 0
setne al
push eax
push 0x99c
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e0]
mov bl, byte [esi + 0x74f]
push 0
push 0
push 0x99e
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e0]
xor eax, eax
test bl, bl
push 0
setne al
push eax
push 0x99c
call fcn.0040d9f0
mov ecx, dword [ebp - 0x3e8]
call fcn.004da190
mov ecx, dword [ebp - 0x3e0]
call fcn.004da190
mov eax, dword [ebp - 0x3e4]
push 0
push 0
push 0x946
mov ecx, dword [eax]
call fcn.0040d9f0
mov ebx, dword [ebp - 0x3f4]
push 0
mov dword [ebx + 0x689d4], eax
lea ecx, [ebx + 0x478]
push dword [esi + 0x760]
push 0x945
call fcn.0040d9f0
push 0
push dword [esi + 0x764]
lea ecx, [ebx + 0x420]
push 0x945
call fcn.0040d9f0
push 0
push 0
push 0x421
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 1
push 0xa05
lea ecx, [ebx + 0x478]
call fcn.0040d9f0
push 0
push 1
push 0xa05
lea ecx, [ebx + 0x420]
call fcn.0040d9f0
push 0
push 1
push 0xa24
lea ecx, [ebx + 0x478]
call fcn.0040d9f0
push 0
push 1
push 0xa24
lea ecx, [ebx + 0x420]
call fcn.0040d9f0
push 0
push 1
push 0xa36
lea ecx, [ebx + 0x478]
call fcn.0040d9f0
push 0
push 1
push 0xa36
lea ecx, [ebx + 0x420]
call fcn.0040d9f0
push 0
push 1
push 0xa67
lea ecx, [ebx + 0x478]
call fcn.0040d9f0
push 0
push 1
push 0xa67
lea ecx, [ebx + 0x420]
call fcn.0040d9f0
mov byte [0x611304], 1
cmp byte [ebx + 0x75c], 0
je 0x4731a3
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov edi, eax
test edi, edi
je 0x473154
push 1
push edi
push 0x30
push dword [ebx + 0x31c]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push edi
push 0x30
push dword [ebx + 0x3a0]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x60
push dword [esi + 0x10]
push 0x16
call dword [sym.imp.KERNEL32.dll_MulDiv]
push 0x60
push dword [esi + 0xc]
mov edi, eax
push 0x2d
call dword [sym.imp.KERNEL32.dll_MulDiv]
movzx edi, di
movzx eax, ax
shl edi, 0x10
or edi, eax
push edi
push 0
push 0x1329
push dword [ebx + 0x31c]
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push 0
push 0x1329
push dword [ebx + 0x3a0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx + 0x310]
lea ecx, [ebx + 0x310]
push 1
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x3dc]
mov eax, ecx
shr eax, 2
and cl, 1
and al, 1
mov byte [0x5fbed9], cl
mov byte [0x611304], al
call fcn.004e9fc0
mov eax, dword [ebp - 0x3dc]
shr eax, 1
and al, 1
mov byte [0x5fbed8], al
call fcn.004e9fc0
mov eax, dword [ebp - 0x3dc]
shr eax, 4
and al, 1
mov byte [0x611305], al
call fcn.004e9fc0
mov ecx, dword [ebp - 0x3dc]
mov eax, ecx
shr eax, 5
shr ecx, 6
and al, 1
and cl, 1
mov byte [0x611306], al
mov byte [0x611307], cl
call fcn.004ea090
mov ecx, ebx
call fcn.0046dfb0
mov eax, dword [ebx]
lea ecx, [ebx + 0x590]
push dword [ebp - 0x3d8]
cmp byte [esi + 0x60], 1
mov edx, dword [ebx + 0x590]
push dword [eax + 4]
sete byte [ebp - 0x3e4]
call dword [edx + 4]
push dword [ebp - 0x3e4]
lea eax, [ebx + 0x394]
push 0x32
push 0
push 8
push eax
lea eax, [ebx + 0x310]
push eax
lea ecx, [ebx + 0x590]
call fcn.004e8910
mov edi, dword [ebp - 0x3f4]
mov bl, byte [esi + 0x59]
push 6
push dword [ebp - 0x3d8]
mov eax, dword [edi]
add edi, 0x724
mov ecx, edi
push dword [eax + 4]
call fcn.004e9970
push 0x60
push dword [esi + 0xc]
push 0xc8
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 1
mov ecx, edi
call fcn.004e9c80
push 0x60
push dword [esi + 0xc]
push 0x104
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 2
mov ecx, edi
call fcn.004e9c80
push 0x60
push dword [esi + 0xc]
push 0x6e
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 3
mov ecx, edi
call fcn.004e9c80
push 0x60
push dword [esi + 0xc]
push 0x78
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 4
mov ecx, edi
call fcn.004e9c80
push 0x60
push dword [esi + 0xc]
push 0x1e
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 5
mov ecx, edi
call fcn.004e9c80
movzx eax, bl
mov ebx, dword [ebp - 0x3f4]
neg eax
sbb eax, eax
and eax, 5
push eax
push dword [ebx + 0x730]
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [ebp - 0x3d8]
lea ecx, [ebx + 4]
lea eax, [ebx + 0x310]
mov dword [ecx], eax
lea edx, [ebx + 8]
mov eax, dword [ebx]
push ecx
push edi
mov ecx, edx
mov dword [ebp - 0x404], edx
push dword [eax + 4]
call fcn.00437eb0
cmp byte [esi + 0x99], 0
je 0x4733c0
cmp dword [ebx + 0x689d0], 0
jne 0x4733c0
mov eax, dword [ebx]
push 0x64
push dword [eax + 4]
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x3b9
mov dword [ebp - 0x3e4], eax
call fcn.0052bd3f
add esp, 4
mov dword [ebp - 0x3ec], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x4733b1
push 0x5883b8
push dword [ebp - 0x3e4]
mov ecx, eax
push 0x105b9
push 0x64
push edi
call fcn.004f73d0
jmp 0x4733b3
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebx + 0x689d0], eax
mov ecx, ebx
call fcn.0046b410
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x484]
mov edx, dword [ebx + 0x42c]
mov eax, dword [eax + 4]
mov dword [ebx + 0x68a90], eax
lea eax, [esi + 0x233b0]
mov dword [ebx + 0x68a94], edi
mov dword [ebx + 0x68a08], edi
mov dword [ebx + 0x68a0c], ecx
mov dword [ebx + 0x68a10], edx
cmp dword [eax + 0x14], 8
jb 0x473404
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x68a08]
call fcn.004c09b0
mov eax, dword [ebx]
lea ecx, [ebx + 0x68a5c]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
push 8
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetSubMenu]
mov ecx, dword [esi + 0x23200]
sub ecx, dword [esi + 0x231fc]
mov edi, dword [sym.imp.USER32.dll_InsertMenuW]
mov dword [ebp - 0x3e0], eax
mov eax, 0x30c30c31
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x3e8], eax
cmp eax, 1
jb 0x47347c
push 0
push 0xffffffffffffffff
push 0x400
push 5
push dword [ebp - 0x3e0]
call edi
mov eax, dword [ebp - 0x3e8]
test eax, eax
je 0x473579
xor edx, edx
mov edi, 6
mov dword [ebp - 0x3dc], edx
mov ecx, dword [esi + 0x231fc]
lea eax, [ebp - 0x370]
add ecx, edx
push eax
call fcn.0047c510
mov dword [ebp - 4], 1
cmp dword [eax + 0x14], 8
jb 0x4734b4
mov eax, dword [eax]
push eax
lea eax, [edi + 0x4e1a]
push eax
push 0x400
push edi
push dword [ebp - 0x3e0]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x35c]
cmp eax, 8
jb 0x47352e
mov ecx, dword [ebp - 0x370]
inc eax
cmp eax, 0x7fffffff
ja 0x47383f
add eax, eax
cmp eax, 0x1000
jb 0x473525
test cl, 0x1f
jne 0x47383f
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x47383f
sub ecx, eax
cmp ecx, 4
jb 0x47383f
cmp ecx, 0x23
ja 0x47383f
mov ecx, eax
push ecx
call fcn.0052bd72
add esp, 4
mov edx, dword [ebp - 0x3dc]
inc edi
xor eax, eax
mov dword [ebp - 0x35c], 7
mov word [ebp - 0x370], ax
add edx, 0x150
mov dword [ebp - 0x360], 0
lea eax, [edi - 6]
mov dword [ebp - 0x3dc], edx
cmp eax, dword [ebp - 0x3e8]
jb 0x473491
mov edi, dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x3e8]
cmp eax, 1
jb 0x4735b1
push 0
push 0xffffffffffffffff
push 0x400
add eax, 7
push eax
push dword [ebp - 0x3e0]
call edi
mov eax, dword [ebp - 0x3e8]
push str.Modify_Shortcut_Delete_Macro...
push 0xbb90
push 0
add eax, 8
push eax
push dword [ebp - 0x3e0]
call edi
push 9
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetSubMenu]
mov ecx, dword [esi + 0x2320c]
sub ecx, dword [esi + 0x23208]
mov dword [ebp - 0x3e0], eax
mov eax, 0x2f149903
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x3e8], eax
cmp eax, 1
jb 0x473606
push 0
push 0xffffffffffffffff
push 0x400
push 1
push dword [ebp - 0x3e0]
call edi
mov eax, dword [ebp - 0x3e8]
test eax, eax
je 0x473702
xor edx, edx
mov edi, 2
mov dword [ebp - 0x3dc], edx
jmp 0x473620
mov ecx, dword [esi + 0x23208]
lea eax, [ebp - 0x370]
add ecx, edx
push eax
call fcn.0047c510
mov dword [ebp - 4], 2
cmp dword [eax + 0x14], 8
jb 0x473643
mov eax, dword [eax]
push eax
lea eax, [edi + 0x5206]
push eax
push 0x400
push edi
push dword [ebp - 0x3e0]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x35c]
cmp eax, 8
jb 0x4736bd
mov ecx, dword [ebp - 0x370]
inc eax
cmp eax, 0x7fffffff
ja 0x47383f
add eax, eax
cmp eax, 0x1000
jb 0x4736b4
test cl, 0x1f
jne 0x47383f
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x47383f
sub ecx, eax
cmp ecx, 4
jb 0x47383f
cmp ecx, 0x23
ja 0x47383f
mov ecx, eax
push ecx
call fcn.0052bd72
add esp, 4
mov edx, dword [ebp - 0x3dc]
inc edi
xor eax, eax
mov dword [ebp - 0x35c], 7
mov word [ebp - 0x370], ax
add edx, 0x15c
mov dword [ebp - 0x360], 0
lea eax, [edi - 2]
mov dword [ebp - 0x3dc], edx
cmp eax, dword [ebp - 0x3e8]
jb 0x473620
mov eax, dword [ebp - 0x3e8]
cmp eax, 1
jb 0x473740
mov edi, dword [sym.imp.USER32.dll_InsertMenuW]
add eax, 3
push 0
push 0xffffffffffffffff
push 0x400
push eax
push dword [ebp - 0x3e0]
call edi
mov eax, dword [ebp - 0x3e8]
push str.Modify_Shortcut_Delete_Command...
push 0xbb91
push 0
add eax, 4
push eax
push dword [ebp - 0x3e0]
call edi
cmp byte [esi + 0x2bc], 0
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
jne 0x4737a7
push 0
push 0xb79e
push dword [ebx + 0x68934]
call edi
push 0
push 0xb7a1
push dword [ebx + 0x68934]
call edi
push 0xb
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetSubMenu]
test eax, eax
jne 0x473791
push 0xa
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetSubMenu]
test eax, eax
je 0x47379b
push 0x400
push 7
push eax
call edi
push dword [ebp - 0x3d8]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push 5
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetSubMenu]
cmp dword [esi + 0xb10], 0
mov edi, eax
mov dword [ebp - 0x3e4], edi
mov dword [ebp - 0x3dc], 0
jle 0x4738a0
lea ecx, [esi + 0xa98]
mov ebx, eax
mov dword [ebp - 0x3ec], ecx
mov eax, dword [ecx]
push ebx
mov dword [ebp - 0x3e0], eax
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov esi, dword [ebp - 0x3e0]
xor edi, edi
mov dword [ebp - 0x3e8], eax
nop
test edi, edi
je 0x47381c
lea eax, [ebp - 0x158]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jle 0x473844
mov eax, dword [ebp - 0x3e8]
cmp edi, eax
jge 0x473844
push 0x400
push 0x64
lea eax, [ebp - 0x158]
push eax
push edi
push ebx
call dword [sym.imp.USER32.dll_GetMenuStringW]
mov eax, dword [ebp - 0x3e8]
inc edi
jmp 0x473800
call fcn.00547c01
push dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3dc]
add eax, 0xb455
push eax
push 0x400
lea eax, [edi - 1]
push eax
push ebx
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x3dc]
mov esi, dword [ebp - 0x3d4]
inc eax
mov ecx, dword [ebp - 0x3ec]
add ecx, 4
mov dword [ebp - 0x3dc], eax
mov dword [ebp - 0x3ec], ecx
cmp eax, dword [esi + 0xb10]
jl 0x4737e2
mov ebx, dword [ebp - 0x3f4]
mov edi, dword [ebp - 0x3e4]
mov eax, dword [esi + 0xe4]
sub eax, dword [esi + 0xe0]
sar eax, 5
test eax, eax
je 0x473999
mov eax, dword [esi + 0xe4]
sub eax, dword [esi + 0xe0]
sar eax, 5
mov dword [ebp - 0x3ec], eax
test eax, eax
je 0x473999
xor ebx, ebx
jmp 0x4738e0
mov eax, dword [esi + 0xe0]
mov ecx, esi
push dword [eax + ebx]
call fcn.004b7470
push 0
push 0x100
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x3e4], eax
push ecx
push eax
push edi
call dword [sym.imp.USER32.dll_GetMenuStringW]
mov ecx, dword [esi + 0xe0]
mov eax, dword [ebp - 0x3e4]
mov dword [ebx + ecx + 4], eax
mov eax, dword [esi + 0xe0]
add eax, 8
add eax, ebx
cmp word [ebp - 0x358], 0
mov dword [ebp - 0x3dc], eax
jne 0x47393b
xor ecx, ecx
jmp 0x473959
lea ecx, [ebp - 0x358]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x473944
mov eax, dword [ebp - 0x3dc]
sub ecx, edx
sar ecx, 1
push ecx
lea ecx, [ebp - 0x358]
push ecx
mov ecx, eax
call fcn.00406c80
push 0
push dword [ebp - 0x3e4]
push edi
call dword [sym.imp.USER32.dll_DeleteMenu]
push dword [ebp - 0x3d8]
call dword [sym.imp.USER32.dll_DrawMenuBar]
add ebx, 0x20
sub dword [ebp - 0x3ec], 1
jne 0x4738e0
mov ebx, dword [ebp - 0x3f4]
push edi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
dec eax
mov dword [ebp - 0x3ec], eax
movzx eax, byte [esi + 0xa64]
mov dword [ebp - 0x3e4], eax
test eax, eax
je 0x473a20
mov ebx, dword [ebp - 0x3ec]
lea eax, [esi + 0x9ec]
mov ecx, 0xb465
mov dword [ebp - 0x3dc], eax
sub ecx, ebx
mov esi, eax
mov dword [ebp - 0x3ec], ecx
lea esp, [esp]
mov eax, dword [esi]
add eax, 0x52c
cmp dword [eax + 0x14], 8
jb 0x4739ef
mov eax, dword [eax]
push eax
lea eax, [ecx + ebx]
push eax
push 0x400
push ebx
push edi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov ecx, dword [ebp - 0x3ec]
add esi, 4
inc ebx
sub dword [ebp - 0x3e4], 1
jne 0x4739e0
mov esi, dword [ebp - 0x3d4]
mov ebx, dword [ebp - 0x3f4]
push 0
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetSubMenu]
mov cl, byte [esi + 0x988]
lea edx, [ebx + 0x689d8]
mov edi, dword [esi + 0x980]
mov byte [ebp - 0x3d4], cl
lea ecx, [ebx + 0x688dc]
push dword [ebp - 0x3d4]
mov dword [ebp - 0x3e4], edi
push edx
push 0x16
push 0xa041
push eax
mov dword [ebp - 0x3ec], ecx
call fcn.0045cbc0
mov eax, dword [ebx + 0x304]
mov dword [ebx + 0x688fc], eax
test edi, edi
jle 0x473add
mov ebx, dword [ebp - 0x3ec]
lea eax, [esi + 0x908]
mov dword [ebp - 0x3d4], eax
mov edi, edi
cmp byte [esi + 0x74], 0
mov edi, dword [eax]
je 0x473aaf
cmp dword [edi + 0x14], 8
jb 0x473aa2
mov eax, dword [edi]
jmp 0x473aa4
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x473abf
cmp dword [edi + 0x14], 8
jb 0x473ab7
mov edi, dword [edi]
push edi
mov ecx, ebx
call fcn.0045c380
mov eax, dword [ebp - 0x3d4]
add eax, 4
sub dword [ebp - 0x3e4], 1
mov dword [ebp - 0x3d4], eax
jne 0x473a90
mov ebx, dword [ebp - 0x3f4]
lea ecx, [ebx + 0x6873c]
call fcn.004307d0
mov byte [ebp - 0x3d4], al
lea eax, [ebx + 0x68a08]
push dword [ebp - 0x3d4]
mov ecx, eax
mov dword [ebx + 0x68870], eax
push 0
push dword [ebx + 0x68934]
call fcn.004c2070
push dword [ebx + 0x68a14]
mov ecx, esi
push dword [ebx + 0x68934]
call fcn.004b1b40
mov eax, dword [esi + 0x232c0]
cmp eax, dword [esi + 0x232c4]
je 0x473b58
push 0
push 0
push 0x943
lea ecx, [ebx + 0x478]
call fcn.0040d9f0
push 0
push 0
push 0x943
lea ecx, [ebx + 0x420]
call fcn.0040d9f0
xor eax, eax
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 0
mov dword [ebp - 0x374], 7
mov dword [ebp - 0x378], 0
mov word [ebp - 0x388], ax
mov dword [ebp - 4], 3
mov dword [ebp - 0x390], eax
mov dword [ebp - 0x38c], eax
mov dword [ebp - 0x38c], 7
mov dword [ebp - 0x390], eax
mov word [ebp - 0x3a0], ax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x3a0]
push ecx
lea ecx, [ebp - 0x388]
push ecx
push dword [ebx + 0x68934]
lea ecx, [ebx + 0x300]
call fcn.0045e9e0
push dword [ebp - 0x3d8]
call dword [sym.imp.USER32.dll_DrawMenuBar]
cmp dword [ebp - 0x378], 0
jbe 0x473c16
cmp dword [ebp - 0x374], 8
mov eax, dword [ebp - 0x388]
jae 0x473c00
lea eax, [ebp - 0x388]
push eax
push 0
push 0x400
push 0xa
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_ModifyMenuW]
cmp dword [ebp - 0x38c], 8
mov ecx, dword [ebp - 0x3a0]
jae 0x473c2b
lea ecx, [ebp - 0x3a0]
mov eax, dword [ebx]
push ecx
push dword [ebx + 0x68934]
lea ecx, [ebx + 0x68930]
push dword [eax + 4]
call fcn.00505d30
mov ecx, dword [esi + 0x232c4]
mov eax, 0x4ec4ec4f
sub ecx, dword [esi + 0x232c0]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0
mov dword [ebp - 0x3ec], eax
mov dword [ebp - 0x3e4], edx
je 0x473e51
xor ecx, ecx
mov dword [ebp - 0x3dc], ecx
mov edi, edi
mov eax, dword [esi + 0x232c0]
add eax, ecx
cmp dword [eax + 0x14], 0
jne 0x473e35
push 0
push 0x40
lea ecx, [ebp - 0x90]
push ecx
push dword [eax]
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetMenuStringW]
push 0
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x370]
push eax
call fcn.004264f0
add esp, 0xc
mov edi, eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x3dc]
mov ecx, dword [esi + 0x232c0]
add eax, 4
add ecx, eax
mov dword [ebp - 0x3d4], ecx
cmp ecx, edi
je 0x473daf
mov eax, dword [ecx + 0x14]
cmp eax, 8
jb 0x473d40
mov ecx, dword [ecx]
inc eax
cmp eax, 0x7fffffff
ja 0x47383f
add eax, eax
cmp eax, 0x1000
jb 0x473d31
test cl, 0x1f
jne 0x47383f
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x47383f
sub ecx, eax
cmp ecx, 4
jb 0x47383f
cmp ecx, 0x23
ja 0x47383f
mov ecx, eax
push ecx
call fcn.0052bd72
mov ecx, dword [ebp - 0x3d4]
add esp, 4
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x473d58
mov eax, dword [ecx]
jmp 0x473d5a
mov eax, ecx
xor edx, edx
mov word [eax], dx
cmp dword [edi + 0x14], 8
jae 0x473d82
mov eax, dword [edi + 0x10]
add eax, 1
je 0x473d88
add eax, eax
push eax
push edi
push ecx
call fcn.00543060
mov ecx, dword [ebp - 0x3d4]
add esp, 0xc
jmp 0x473d88
mov eax, dword [edi]
mov dword [ecx], eax
mov dword [edi], edx
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x14], eax
mov dword [edi + 0x14], 7
cmp dword [edi + 0x14], 8
mov dword [edi + 0x10], 0
jb 0x473daa
mov edi, dword [edi]
xor eax, eax
mov word [edi], ax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x35c]
cmp eax, 8
jb 0x473e0c
mov ecx, dword [ebp - 0x370]
inc eax
cmp eax, 0x7fffffff
ja 0x47383f
add eax, eax
cmp eax, 0x1000
jb 0x473e03
test cl, 0x1f
jne 0x47383f
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x47383f
sub ecx, eax
cmp ecx, 4
jb 0x47383f
cmp ecx, 0x23
ja 0x47383f
mov ecx, eax
push ecx
call fcn.0052bd72
add esp, 4
mov ecx, dword [ebp - 0x3dc]
xor eax, eax
mov edx, dword [ebp - 0x3e4]
mov dword [ebp - 0x35c], 7
mov dword [ebp - 0x360], 0
mov word [ebp - 0x370], ax
inc edx
add ecx, 0x34
mov dword [ebp - 0x3e4], edx
mov dword [ebp - 0x3dc], ecx
cmp edx, dword [ebp - 0x3ec]
jb 0x473c80
mov ecx, dword [esi + 0x231e8]
mov eax, 0x1948b0fd
sub ecx, dword [esi + 0x231e4]
imul ecx
mov dword [ebp - 0x3d4], 0
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x3ec], eax
je 0x474073
xor eax, eax
mov dword [ebp - 0x3e4], eax
lea esp, [esp]
mov edi, dword [esi + 0x231e4]
add edi, eax
cmp word [edi + 0x26], 0
jne 0x473f6b
push 0
push 0x40
lea eax, [ebp - 0x90]
push eax
push dword [edi + 0x128]
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_GetMenuStringW]
push 1
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x3d0]
push eax
call fcn.004264f0
add esp, 0xc
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 8
jb 0x473ee4
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.004e1500
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x3bc]
cmp eax, 8
jb 0x473f49
mov ecx, dword [ebp - 0x3d0]
inc eax
cmp eax, 0x7fffffff
ja 0x47383f
add eax, eax
cmp eax, 0x1000
jb 0x473f40
test cl, 0x1f
jne 0x47383f
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x47383f
sub ecx, eax
cmp ecx, 4
jb 0x47383f
cmp ecx, 0x23
ja 0x47383f
mov ecx, eax
push ecx
call fcn.0052bd72
add esp, 4
xor eax, eax
mov dword [ebp - 0x3bc], 7
mov dword [ebp - 0x3c0], 0
mov word [ebp - 0x3d0], ax
jmp 0x474049
push dword [edi + 0x128]
lea eax, [ebp - 0x370]
push eax
lea ecx, [ebx + 0x300]
call fcn.00460200
mov byte [ebp - 4], 7
cmp dword [ebp - 0x360], 0
je 0x47400a
cmp dword [ebp - 0x35c], 8
mov eax, dword [ebp - 0x370]
jae 0x473fa5
lea eax, [ebp - 0x370]
push 1
push eax
lea eax, [ebp - 0x3b8]
push eax
call fcn.004264f0
add esp, 0xc
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
jb 0x473fc3
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.004e1500
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x3a4]
cmp eax, 8
jb 0x473fed
inc eax
lea ecx, [ebp - 0x3b8]
push eax
push dword [ebp - 0x3b8]
call fcn.00407270
xor eax, eax
mov dword [ebp - 0x3a4], 7
mov dword [ebp - 0x3a8], 0
mov word [ebp - 0x3b8], ax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x35c]
cmp eax, 8
jb 0x47402c
inc eax
lea ecx, [ebp - 0x370]
push eax
push dword [ebp - 0x370]
call fcn.00407270
xor eax, eax
mov dword [ebp - 0x35c], 7
mov dword [ebp - 0x360], 0
mov word [ebp - 0x370], ax
mov ecx, dword [ebp - 0x3d4]
mov eax, dword [ebp - 0x3e4]
inc ecx
add eax, 0x144
mov dword [ebp - 0x3d4], ecx
mov dword [ebp - 0x3e4], eax
cmp ecx, dword [ebp - 0x3ec]
jb 0x473e90
lea ecx, [ebx + 0x300]
call fcn.0045f500
mov ecx, esi
call fcn.004b38b0
mov eax, dword [ebx + 0x68934]
lea edi, [ebx + 0x689d8]
mov dword [edi], eax
mov ecx, edi
mov eax, dword [ebp - 0x3d8]
mov dword [edi + 4], eax
call fcn.004e2890
mov dword [esi + 0x23464], edi
mov dword [ebp - 0x400], 0
mov dword [ebp - 0x3fc], 0
mov dword [ebp - 0x3f8], 0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x400]
mov eax, dword [ebx + 0x484]
mov dword [ebp - 0x3d4], eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.00514e20
mov eax, dword [ebx + 0x42c]
lea ecx, [ebp - 0x400]
mov dword [ebp - 0x3d4], eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.00514e20
push dword [ebp - 0x3d8]
lea eax, [ebp - 0x400]
push dword [ebx + 0x68934]
lea edi, [ebx + 0x689f4]
push eax
mov ecx, edi
call fcn.004e0410
mov ecx, edi
mov dword [esi + 0x23468], edi
call fcn.004e22b0
push dword [ebp - 0x3d8]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov al, byte [esi + 0x58]
lea ecx, [ebx + 0x68a08]
mov edi, dword [esi + 0x54]
mov byte [ebp - 0x3d4], al
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x468], eax
lea eax, [ebp - 0x468]
push eax
mov dword [ebp - 0x460], 0x3ea
mov dword [ebp - 0x464], 0
call fcn.004c1430
mov eax, dword [ebx]
add ebx, 0x65c
push 0x26
push 0x5f9758
push edi
push dword [ebp - 0x3d8]
mov edx, dword [ebx]
mov ecx, ebx
push dword [eax + 4]
call dword [edx + 0x30]
mov ecx, ebx
call fcn.0046abe0
mov edi, dword [ebp - 0x3f4]
push dword [ebp - 0x3d8]
mov eax, dword [edi]
add edi, 0x760
mov ecx, edi
mov edx, dword [edi]
push dword [eax + 4]
call dword [edx + 4]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3d8]
mov eax, dword [ecx]
add ecx, 0x77c
mov edx, dword [ecx]
push dword [eax + 4]
call dword [edx + 4]
push edi
mov ecx, ebx
call fcn.004f6000
push dword [ebp - 0x3d4]
mov ecx, edi
push 0
call fcn.004f7120
mov edi, dword [ebp - 0x3f4]
mov ecx, edi
call fcn.0046b260
mov eax, dword [edi]
lea ecx, [edi + 0x580]
push ecx
push dword [ebp - 0x3d8]
lea ebx, [edi + 0x798]
push dword [eax + 4]
mov ecx, ebx
call fcn.004728e0
mov eax, dword [edi]
lea ecx, [edi + 0x10e8]
push dword [ebp - 0x3d8]
mov edx, dword [ecx]
push dword [eax + 4]
call dword [edx + 4]
mov al, byte [edi + 0x308]
lea ecx, [edi + 0x1180]
mov byte [ebp - 0x3d4], al
push dword [ebp - 0x3d4]
mov eax, dword [edi]
push ebx
push dword [ebp - 0x3d8]
push dword [eax + 4]
call fcn.00444030
mov ebx, edi
lea ecx, [edi + 0x1180]
lea eax, [ebx + 0x77c]
push eax
call fcn.0043fd30
mov eax, dword [ebx]
lea ecx, [ebx + 0x580]
mov edi, dword [ebp - 0x3d8]
push ecx
push edi
push dword [eax + 4]
lea ecx, [ebx + 0x1434]
call fcn.00472980
mov eax, dword [ebx]
lea ecx, [ebx + 0x580]
push ecx
push edi
lea ecx, [ebx + 0x68718]
push dword [eax + 4]
call fcn.00472840
mov eax, dword [ebx]
lea ecx, [ebx + 0x580]
push ecx
push edi
lea ecx, [ebx + 0x145c]
push dword [eax + 4]
call fcn.004213f0
mov eax, dword [ebx]
lea ecx, [ebx + 0x1200]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
lea eax, [ebp - 0x3b8]
push eax
lea ecx, [ebx + 0x68a08]
call fcn.004bfe80
mov byte [ebp - 4], 0xa
mov ecx, dword [ebx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x3d4], ecx
mov cl, byte [ebx + 0x68a81]
mov byte [ebx + 0x12e8], cl
lea ecx, [ebx + 0x12ec]
cmp ecx, eax
je 0x474315
push 0xffffffffffffffff
push 0
push eax
call fcn.00406ac0
mov eax, dword [ebp - 0x3d4]
mov dword [ebx + 0x12b4], eax
mov dword [ebx + 0x12b8], edi
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x3a4]
cmp eax, 8
jb 0x474349
inc eax
lea ecx, [ebp - 0x3b8]
push eax
push dword [ebp - 0x3b8]
call fcn.00407270
mov edx, dword [ebx + 0x134c]
lea ecx, [ebx + 0x134c]
xor eax, eax
mov dword [ebp - 0x3a4], 7
mov word [ebp - 0x3b8], ax
mov eax, dword [ebx]
push edi
mov dword [ebp - 0x3a8], 0
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
lea ecx, [ebx + 0x68984]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
lea ecx, [ebx + 0x688ac]
mov edx, dword [ecx]
push edi
push dword [eax + 4]
call dword [edx + 4]
mov eax, dword [ebx]
lea ecx, [ebx + 0x1384]
push dword [ebp - 0x3d8]
mov edx, dword [ebx + 0x1384]
push dword [eax + 4]
call dword [edx + 4]
push 0
lea ecx, [ebx + 0x1384]
call fcn.0040c3d0
mov eax, dword [ebx]
lea ecx, [ebx + 0x13b0]
push dword [ebp - 0x3d8]
mov edx, dword [ebx + 0x13b0]
push dword [eax + 4]
call dword [edx + 4]
push 0
lea ecx, [ebx + 0x13b0]
call fcn.0040c3d0
mov eax, dword [ebx]
lea ecx, [ebx + 0x13dc]
push dword [ebp - 0x3d8]
mov edx, dword [ebx + 0x13dc]
push dword [eax + 4]
call dword [edx + 4]
push 1
lea ecx, [ebx + 0x13dc]
call fcn.0040c3d0
mov eax, dword [ebx]
lea ecx, [ebx + 0x1408]
push dword [ebp - 0x3d8]
mov edx, dword [ebx + 0x1408]
push dword [eax + 4]
call dword [edx + 4]
push 1
lea ecx, [ebx + 0x1408]
call fcn.0040c3d0
mov eax, dword [esi + 0x64]
xor cl, cl
mov byte [ebp - 0x3ed], cl
sub eax, 1
je 0x4744d5
sub eax, 1
je 0x4744cc
sub eax, 1
jne 0x474534
mov al, byte [ebx + 0x308]
mov ecx, 0x611190
mov byte [ebp - 0x3d4], al
mov eax, dword [0x611190]
mov eax, dword [eax + 0x34]
call eax
test al, al
jne 0x474494
mov eax, dword [0x611190]
mov ecx, 0x611190
push 1
push dword [ebp - 0x3d4]
push 0x4e20
call dword [eax + 0x30]
push 0
push 1
mov ecx, 0x611190
call fcn.004e92f0
push 0x611190
lea ecx, [ebx + 0x300]
call fcn.0045f7c0
push 0
push 0x4e21
push 0x111
push dword [0x61119c]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x47452c
mov byte [ebx + 0x689cc], 1
jmp 0x474534
mov al, byte [ebx + 0x308]
mov ecx, 0x611190
mov byte [ebp - 0x3d4], al
mov eax, dword [0x611190]
mov eax, dword [eax + 0x34]
call eax
test al, al
jne 0x47450e
mov eax, dword [0x611190]
mov ecx, 0x611190
push 1
push dword [ebp - 0x3d4]
push 0x4e20
call dword [eax + 0x30]
push 0
push 1
mov ecx, 0x611190
call fcn.004e92f0
push 0x611190
lea ecx, [ebx + 0x300]
call fcn.0045f7c0
mov cl, 1
mov byte [ebp - 0x3ed], cl
movzx eax, cl
neg eax
sbb eax, eax
and eax, 8
push eax
push 0xb4aa
push dword [ebx + 0x68934]
call dword [sym.imp.USER32.dll_CheckMenuItem]
movzx eax, byte [ebp - 0x3ed]
push eax
push 0xb4aa
push 0x402
push dword [ebx + 0x668]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esi + 0x231ac]
xor eax, eax
test edx, edx
jle 0x4745b1
lea ecx, [esi + 0x22c84]
cmp dword [ecx], 0x20
je 0x47458f
inc eax
add ecx, 0x2c
cmp eax, edx
jl 0x474580
jmp 0x4745b1
cmp eax, 0xffffffff
je 0x4745b1
imul ecx, eax, 0x2c
mov eax, dword [ecx + esi + 0x22c8c]
mov dword [esi + 0x234e0], eax
mov eax, dword [ecx + esi + 0x22c90]
mov dword [esi + 0x234dc], eax
push dword [esi + 0x1f8]
lea ecx, [ebx + 8]
push 0
call fcn.00438a60
push dword [esi + 0x1fc]
lea ecx, [ebx + 8]
push 1
call fcn.00438a60
push dword [esi + 0x200]
lea ecx, [ebx + 8]
push 2
call fcn.00438a60
push dword [esi + 0x204]
lea ecx, [ebx + 8]
push 3
call fcn.00438a60
mov ecx, dword [esi + 0x218]
mov eax, 0x66666667
sub ecx, dword [esi + 0x214]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x3e8], eax
je 0x4746ad
mov ecx, dword [ebp - 0x3e8]
xor eax, eax
mov dword [ebp - 0x3dc], eax
jmp 0x474630
mov edi, dword [esi + 0x214]
add edi, eax
cmp byte [edi + 0x24], 0
je 0x474699
cmp dword [edi + 0x14], 8
jb 0x474648
mov eax, dword [edi]
jmp 0x47464a
mov eax, edi
push 0x1b
push str.Notepad::InternalFunction
push dword [edi + 0x10]
push eax
call fcn.00406240
add esp, 0x10
test eax, eax
jne 0x474672
lea eax, [edi + 0x18]
push eax
lea ecx, [ebx + 0x178]
call fcn.00514e20
jmp 0x47468d
cmp dword [edi + 0x14], 8
jb 0x47467c
mov eax, dword [edi]
jmp 0x47467e
mov eax, edi
push dword [edi + 0x18]
lea ecx, [ebx + 0x68a08]
push eax
call fcn.004c1f10
mov ecx, dword [ebp - 0x3e8]
mov eax, dword [ebp - 0x3dc]
add eax, 0x28
sub ecx, 1
mov dword [ebp - 0x3dc], eax
mov dword [ebp - 0x3e8], ecx
jne 0x474630
mov eax, dword [esi + 0x224]
xor edi, edi
sub eax, dword [esi + 0x220]
sar eax, 3
mov dword [ebp - 0x3d4], eax
test eax, eax
je 0x4746f3
mov ebx, eax
lea ebx, [ebx]
mov eax, dword [esi + 0x220]
mov ecx, dword [ebp - 0x404]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.00438a30
inc edi
cmp edi, ebx
jb 0x4746d0
mov ebx, dword [ebp - 0x3f4]
push 0
push 0
push dword [ebx + 0x494]
mov ecx, ebx
call fcn.00475c60
push 0
push 1
push dword [ebx + 0x43c]
mov ecx, ebx
call fcn.00475c60
push 0
push dword [ebx + 0x494]
mov ecx, ebx
call fcn.00468f20
push 1
push dword [ebx + 0x43c]
mov ecx, ebx
call fcn.00468f20
push dword [ebx + 0x484]
call dword [sym.imp.USER32.dll_SetFocus]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x400]
test ecx, ecx
je 0x474783
mov eax, dword [ebp - 0x3f8]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x400]
call fcn.0049ddc0
mov dword [ebp - 0x400], 0
mov dword [ebp - 0x3fc], 0
mov dword [ebp - 0x3f8], 0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38c]
cmp eax, 8
jb 0x4747a5
inc eax
lea ecx, [ebp - 0x3a0]
push eax
push dword [ebp - 0x3a0]
call fcn.00407270
xor eax, eax
mov dword [ebp - 0x38c], 7
mov dword [ebp - 0x390], 0
mov word [ebp - 0x3a0], ax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x374]
cmp eax, 8
jb 0x4747e7
inc eax
lea ecx, [ebp - 0x388]
push eax
push dword [ebp - 0x388]
call fcn.00407270
xor eax, eax
mov dword [ebp - 0x374], 7
mov word [ebp - 0x388], ax
mov eax, 1
mov dword [ebp - 0x378], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052c233
mov esp, ebp
pop ebp
ret 4