Function at 0x406a12
Capabilities:
Get common file path
Get disk information
Manipulate console buffer

Disassembly:
push ebp
lea ebp, [esp - 0x68]
mov eax, 0x17ac
call fcn.00409d50
mov eax, dword [ebp + 0x70]
push ebx
xor ebx, ebx
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push edi
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x54], 0xa0
mov dword [0x4631e8], eax
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x4c], ebx
cmp eax, ebx
jne 0x406c5a
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x406a5a
mov dword [ebp + 0x54], ebx
lea eax, [ebp + 0x38]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp + 0x40]
push ebx
push ebx
push ebx
mov dword [0x4631e4], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [ebp + 0x64]
push eax
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x406ac9
push 0x104
lea eax, [ebp - 0xf90]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x36c]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax]
lea edx, [ebp + 0x5c]
push edx
lea edx, [ebp + 0x20]
push edx
lea edx, [ebp + 0x24]
push edx
lea edx, [ebp - 0xf90]
push edx
push ebx
push ebx
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp + 0x70], ebx
jne 0x406c5a
mov edi, dword [0x4631f4]
push 0x32
lea eax, [ebp - 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameA]
test eax, eax
je 0x406b6e
push str.SysListView32
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x406b46
push ebx
push ebx
push 0x1032
push edi
call esi
sub eax, ebx
je 0x406b6e
dec eax
je 0x406b16
mov dword [ebp + 0x50], ebx
jmp 0x406b6e
lea eax, [ebp + 0x58]
push eax
push 2
push 0xffffffffffffffff
push 0x100c
push edi
call esi
push eax
push 0x1021
push edi
call esi
mov dword [ebp + 0x28], eax
cmp eax, ebx
je 0x406b6e
lea eax, [ebp + 0x58]
push eax
push edi
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp + 0x28]
jmp 0x406b68
push str.SysTreeView32
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x406b6e
push ebx
push ebx
push 0x1112
push edi
call esi
cmp eax, ebx
je 0x406b6e
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
cmp dword [ebp + 0x70], ebx
jne 0x406c5a
mov edi, 0x103
push edi
lea eax, [ebp - 0x26b]
push ebx
push eax
mov byte [ebp - 0x26c], bl
call fcn.004099b0
push edi
lea eax, [ebp - 0x36f]
push ebx
push eax
mov byte [ebp - 0x370], bl
call fcn.004099b0
lea eax, [ebp - 0x26c]
push 0x2e
push eax
call fcn.00408ef0
mov dword [ebp + 0x48], eax
lea eax, [ebp - 0x26c]
push 0x2f
push eax
call fcn.00408ef0
mov dword [ebp + 0x64], eax
lea eax, [ebp - 0x26c]
push 0x5c
push eax
call fcn.00408ef0
add esp, 0x30
cmp dword [ebp + 0x64], eax
jbe 0x406bdf
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x48], ebx
je 0x406bed
cmp eax, ebx
je 0x406c14
cmp eax, dword [ebp + 0x48]
jbe 0x406c14
lea eax, [ebp - 0x26c]
push 0x428268
push eax
call fcn.00409bd0
lea eax, [ebp - 0x370]
push eax
lea eax, [ebp - 0x26c]
push eax
call fcn.00409bd0
add esp, 0x10
push edi
lea eax, [ebp - 0x26b]
push ebx
push eax
mov byte [ebp - 0x26c], bl
call fcn.004099b0
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x1188]
push eax
call fcn.00409bc0
lea eax, [ebp - 0x1188]
push 0x2f
push eax
call fcn.00408ef0
lea eax, [ebp - 0x1188]
push 0x5c
push eax
call fcn.00408ef0
add esp, 0x24
mov eax, dword [ebp + 0x70]
push ebx
push ebx
push dword [0x4631f0]
xor edi, edi
push ebx
inc edi
push ebx
mov dword [ebp - 0x1744], edi
mov dword [ebp - 0xd88], eax
mov dword [0x4631ec], ebx
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
cmp eax, ebx
jne 0x406c95
mov dword [ebp + 0x64], 0x210
mov dword [0x4631ec], ebx
jmp 0x406c98
mov dword [ebp + 0x64], ebx
mov eax, dword [0x4631e4]
add eax, eax
add dword [0x4631e0], eax
mov dword [0x4631e4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x14]
push eax
mov dword [ebp - 0xd88], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x10], ebx
call sub.OLEACC.dll_GetOleaccVersionInfo
mov eax, dword [ebp + 0x2c]
neg eax
sbb eax, eax
and eax, dword [ebp + 0x14]
mov dword [ebp - 0xd88], edi
mov dword [ebp + 0x18], eax
cmp dword [ebp + 0x10], ebx
je 0x406cef
mov byte [ebp + 0x18], bl
mov eax, dword [ebp + 0x18]
mov dword [0x4631f8], eax
cmp eax, ebx
je 0x406cfc
mov eax, dword [0x4631f8]
cmp eax, ebx
jne 0x406d0c
push 4
call fcn.00409b90
pop ecx
mov dword [ebp + 0x18], eax
mov dword [0x4631f8], eax
cmp dword [0x4631e0], ebx
jne 0x406d17
mov dword [ebp + 0x54], edi
cmp eax, ebx
je 0x406d1e
mov dword [ebp + 0x50], edi
mov edi, dword [sym.imp.USER32.dll_EnableMenuItem]
push 0x401
push ebx
push dword [ebp + 0x70]
call edi
lea eax, [ebp + 0x38]
push eax
push 2
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x401
push ebx
push dword [ebp + 0x70]
call edi
push ebx
push dword [0x4631f4]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push 2
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
push 0xffffffffffffffff
push dword [ebp + 0x70]
push 0x125
push dword [0x4631f4]
call esi
mov eax, dword [ebp + 0x2c]
add eax, dword [ebp + 0x64]
mov dword [ebp + 0x2c], eax
mov dword [0x4631f0], eax
lea eax, [ebp + 0xc]
push eax
push ebx
push ebx
mov dword [ebp - 0xd88], ebx
mov dword [ebp + 0xc], ebx
call dword [sym.imp.COMCTL32.dll_ShowHideMenuCtl]
test eax, eax
je 0x406da5
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x4c], eax
mov dword [0x4631e0], ebx
cmp dword [ebp + 0x4c], ebx
je 0x406db7
mov ecx, dword [ebp + 0x54]
xor eax, eax
mov dword [eax], ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x1744], eax
cmp dword [ebp + 0x4c], ebx
jne 0x406dcb
mov dword [0x4631f4], ebx
lea eax, [ebp - 0x26c]
push eax
push ebx
push ebx
push 0x801a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
cmp eax, ebx
je 0x406dec
push eax
push 0x428298
jmp 0x406df8
lea eax, [ebp - 0x26c]
push eax
push str.Path:__s_n
call fcn.00409a30
pop ecx
pop ecx
lea eax, [ebp - 0xf94]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov eax, dword [ebp + 0x7c]
mov ecx, dword [0x4631e0]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x64], eax
xor eax, eax
mov dword [ebp - 0x40], ebx
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
lea eax, [eax + ecx - 4]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0x34]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
lea eax, [eax + edi - 4]
mov dword [ebp + 0x48], eax
mov eax, dword [0x4631ec]
mov dword [ebp + 0x30], ebx
cmp eax, 3
jg 0x406e7c
push 0x1a
pop edx
sub edx, ecx
mov ecx, dword [0x4631f4]
add ecx, 0x1000
inc eax
imul ecx, eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x50], edx
mov dword [ebp - 0x54], ecx
lea edi, [eax + edx + 0x1a]
jmp 0x406ea0
mov eax, dword [0x4631f4]
imul eax, dword [ebp + 0x50]
add eax, dword [ebp + 0x7c]
sub ecx, dword [ebp + 0x50]
mov edi, dword [ebp + 0x4c]
add edi, dword [ebp + 0x2c]
imul ecx, eax
mov dword [ebp + 0x60], eax
imul edi, edi, 3
mov dword [0x4631e4], ecx
push 0x13
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push 1
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp + 0x5c], eax
cmp eax, ebx
jne 0x406ece
mov eax, dword [ebp - 0x54]
shl eax, 4
add eax, dword [0x4631f4]
add dword [ebp + 0x64], 3
mov dword [ebp + 0x54], ebx
mov dword [ebp - 0x4c], eax
push dword [ebp + 0x54]
push 1
call dword [sym.imp.GDI32.dll_SetDCPenColor]
mov dword [ebp + 0x20], eax
cmp edi, ebx
jbe 0x406f0f
mov ecx, dword [ebp + 0x4c]
lea eax, [ecx + 1]
imul ecx, ecx, 0x180
imul eax, dword [ebp - 0x54]
imul eax, eax, 0x22
sub eax, dword [0x4631ec]
mov dword [ebp + 0x30], eax
mov eax, edi
imul eax, dword [ebp + 0x50]
imul eax, eax, 0x1b0
add eax, ecx
mov dword [ebp + 0x54], eax
jmp 0x406f35
mov ecx, dword [ebp + 0x50]
sub ecx, dword [ebp + 0x64]
mov eax, dword [0x4631ec]
imul ecx, eax
neg ecx
inc eax
mov dword [ebp + 0x50], ecx
inc ecx
imul eax, ecx
imul eax, dword [ebp + 0x60]
shl eax, 4
add eax, edi
mov dword [0x4631e4], eax
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x48]
add edx, 9
push edx
lea eax, [ecx + 9]
push eax
push dword [ebp + 0x48]
mov dword [ebp + 0x60], eax
push ecx
push 1
call dword [sym.imp.GDI32.dll_Rectangle]
push dword [ebp + 0x54]
push 1
call dword [sym.imp.GDI32.dll_SetDCPenColor]
mov eax, dword [0x4631e4]
mov dword [0x4631e0], eax
mov eax, dword [ebp - 0x4c]
imul eax, eax, 5
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x30]
add dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x48]
add eax, 4
push ebx
push eax
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x28]
add eax, 2
push eax
push 1
call dword [sym.imp.GDI32.dll_MoveToEx]
imul edi, dword [ebp + 0x50]
mov eax, dword [ebp - 0x4c]
imul edi, edi, 9
push dword [ebp + 0x64]
shl eax, 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x4c]
lea eax, [edi + eax*8]
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x60]
add eax, 0xfffffffe
push eax
push 1
call dword [sym.imp.GDI32.dll_LineTo]
mov eax, dword [ebp + 0x4c]
mov ecx, dword [0x4631e4]
add ecx, 4
lea edx, [eax + 5]
imul ecx, edx
mov edx, dword [ebp + 0x54]
imul ecx, ecx, 0x64
lea ecx, [edx + ecx - 0x61]
mov dword [ebp + 0x54], ecx
cmp eax, ebx
jne 0x406ff0
push dword [ebp + 0x24]
push dword [ebp + 0x30]
push dword [ebp + 0x28]
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [ebp + 0x24], eax
push dword [ebp + 0x20]
push 1
call dword [sym.imp.GDI32.dll_SetDCPenColor]
push dword [ebp + 0x5c]
mov eax, dword [0x4631e4]
add dword [0x4631e0], eax
push 1
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [0x4631ec]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x380]
push eax
add edi, 0x10
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x3c], 0x100
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
call dword [sym.imp.USER32.dll_SetRect]
push ebx
push ebx
push 0x418
push dword [ebp + 0x4c]
call esi
mov ecx, dword [0x4631ec]
mov edx, dword [0x4631f4]
add edx, edi
lea eax, [edi + ecx]
imul eax, edx
mov edx, dword [ebp + 0x4c]
add edx, edi
imul eax, edx
imul eax, edi
cdq
idiv edi
cmp eax, ecx
jle 0x407075
imul eax, eax, 0x15
jmp 0x40707a
imul eax, eax, 0x31
add eax, edi
push eax
push 8
push dword [ebp + 0x24]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp + 0x20], eax
mov eax, dword [0x4631e4]
mov dword [ebp + 0x54], eax
mov eax, dword [0x4631f0]
mov dword [ebp + 0x48], ebx
cmp eax, dword [0x4631ec]
jbe 0x407164
mov eax, dword [ebp + 0x2c]
imul eax, eax
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x5c], eax
cmp eax, ebx
jle 0x407164
cmp dword [0x4631ec], ebx
jne 0x4070fa
mov eax, 0x100
push eax
lea ecx, [ebp - 0x36c]
push ecx
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [ebp + 0x28]
push ecx
push ebx
push eax
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x168]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x407105
mov eax, dword [0x4631f8]
mov dword [ebp + 0x48], eax
jmp 0x407105
inc dword [ebp + 0x54]
cmp dword [0x4631f4], ebx
jne 0x407164
cmp dword [0x4631f8], ebx
je 0x407164
mov eax, dword [ebp + 0x2c]
cdq
and edx, 0xf
lea edi, [edx + eax]
sar edi, 4
mov dword [ebp + 0x64], ebx
cmp edi, ebx
jle 0x40713b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x48], ebx
je 0x40860d
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], edi
jl 0x407121
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x50]
jne 0x407149
inc dword [0x4631e4]
cmp dword [ebp + 0x18], ebx
je 0x40860d
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x48], ebx
cmp eax, dword [ebp + 0x5c]
jl 0x4070b9
cmp dword [ebp + 0x2c], ebx
je 0x40717b
cmp dword [0x4631f0], ebx
je 0x40717b
mov eax, dword [ebp + 0x4c]
inc eax
imul eax, eax, 0xa
mov dword [ebp + 0x1c], eax
push 0xffffffffffffffeb
push dword [0x4631f4]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, dword [sym.imp.USER32.dll_SetMenu]
cmp dword [0x4631ec], ebx
je 0x4071be
cmp dword [ebp + 0x70], ebx
jne 0x4071be
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call edi
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call edi
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631e0]
mov ecx, dword [0x4631e4]
mov edi, dword [ebp + 0x70]
lea eax, [ecx + eax*4]
cmp eax, dword [0x4631f8]
jb 0x4071dd
add dword [0x4631e4], edi
xor eax, eax
push 0x7fe
mov word [ebp - 0x1588], ax
lea eax, [ebp - 0x1586]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0x1588]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x168]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0x1588]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul ecx, edi
imul eax, dword [0x4631f0]
cmp ecx, eax
jne 0x40724d
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
push ebx
push ebx
mov edi, 0x1004
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407277
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407261
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0x484]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0xe8c]
push 0x104
push eax
call fcn.00409290
add esp, 0x20
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x4072fb
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x4072e5
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x40732f
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407319
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
mov eax, dword [0x4631ec]
add esp, 0x20
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x4073c8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x4073c8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
cmp dword [0x4631ec], ebx
je 0x4073ff
cmp dword [ebp + 0x70], ebx
jne 0x4073ff
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x4631f8]
jb 0x4074b5
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x4074da
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x4074c4
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631ec]
add esp, 0xc
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x407523
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x407523
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407548
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407532
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
add esp, 0xc
cmp ecx, eax
jne 0x40757c
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
add esp, 0x20
cmp ecx, eax
jne 0x4075f1
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407616
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407600
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631ec]
add esp, 0xc
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x40765f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x40765f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
cmp dword [0x4631ec], ebx
je 0x407696
cmp dword [ebp + 0x70], ebx
jne 0x407696
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x4076bb
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x4076a5
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631ec]
add esp, 0xc
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x407704
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x407704
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x4631f8]
jb 0x407722
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407747
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407731
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0x18
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631ec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea ecx, [eax - 6]
imul ecx, dword [0x4631f0]
cmp edx, ecx
jne 0x4077c5
mov ecx, dword [0x4631e0]
sub dword [0x4631e4], ecx
cmp eax, ebx
je 0x4077fd
cmp dword [ebp + 0x70], ebx
jne 0x4077fd
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x407832
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x407832
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
cmp dword [0x4631ec], ebx
je 0x407869
cmp dword [ebp + 0x70], ebx
jne 0x407869
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x40788e
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407878
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0x2c
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x4631f8]
jb 0x407954
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x40798e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x40798e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
cmp dword [0x4631ec], ebx
je 0x4079c5
cmp dword [ebp + 0x70], ebx
jne 0x4079c5
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x4631f8]
jb 0x4079e3
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
cmp dword [0x4631ec], ebx
je 0x407a1a
cmp dword [ebp + 0x70], ebx
jne 0x407a1a
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
add esp, 0x20
cmp ecx, eax
jne 0x407a8f
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407ab4
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407a9e
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631e0]
mov ecx, dword [0x4631e4]
lea eax, [ecx + eax*4]
add esp, 0xc
cmp eax, dword [0x4631f8]
jb 0x407ae2
mov eax, dword [ebp + 0x70]
add dword [0x4631e4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407b53
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407b3d
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631e0]
mov ecx, dword [0x4631e4]
lea ecx, [ecx + eax*4]
add esp, 0xc
cmp ecx, dword [0x4631f8]
jb 0x407b81
mov ecx, dword [ebp + 0x70]
add dword [0x4631e4], ecx
mov ecx, dword [0x4631ec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
add ecx, 0xfffffffa
imul ecx, dword [0x4631f0]
cmp edx, ecx
jne 0x407ba2
sub dword [0x4631e4], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0x2c
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
add esp, 0x20
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407cb0
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407c9a
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
add esp, 0xc
cmp ecx, dword [0x4631f8]
jb 0x407cdd
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
cmp dword [0x4631ec], ebx
je 0x407d60
cmp dword [ebp + 0x70], ebx
jne 0x407d60
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x407d9a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x407d9a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407dbf
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407da9
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
cmp dword [0x4631ec], ebx
je 0x407e05
cmp dword [ebp + 0x70], ebx
jne 0x407e05
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x407e3f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x407e3f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
cmp dword [0x4631ec], ebx
je 0x407e76
cmp dword [ebp + 0x70], ebx
jne 0x407e76
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x4631f8]
jb 0x407e94
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
add esp, 0x20
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407f09
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407ef3
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631ec]
add esp, 0xc
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x407f52
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x407f52
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x407fc3
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x407fad
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov ecx, dword [0x4631ec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea eax, [ecx - 6]
imul eax, dword [0x4631f0]
add esp, 0xc
cmp edx, eax
jne 0x407ff9
mov edx, dword [0x4631e0]
sub dword [0x4631e4], edx
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
cmp edx, eax
jne 0x40800f
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
mov dword [ebp + 0x5c], ecx
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x408044
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x408044
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
mov eax, dword [0x4631e0]
mov ecx, dword [0x4631e4]
lea eax, [ecx + eax*4]
cmp eax, dword [0x4631f8]
jb 0x408063
mov eax, dword [ebp + 0x70]
add dword [0x4631e4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x408135
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x408135
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x40816f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x40816f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
mov eax, dword [0x4631ec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea ecx, [eax - 6]
imul ecx, dword [0x4631f0]
cmp edx, ecx
jne 0x408195
mov ecx, dword [0x4631e0]
sub dword [0x4631e4], ecx
cmp eax, ebx
je 0x4081cd
cmp dword [ebp + 0x70], ebx
jne 0x4081cd
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
cmp ecx, eax
jne 0x4081ed
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
add esp, 0x20
cmp dword [0x4631ec], ebx
je 0x408274
cmp dword [ebp + 0x70], ebx
jne 0x408274
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x4082ae
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x4082ae
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
mov eax, dword [0x4631ec]
add esp, 0x20
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x408338
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x408338
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
mov ecx, dword [0x4631e0]
mov eax, dword [0x4631e4]
shl ecx, 2
lea edx, [ecx + eax]
cmp edx, dword [0x4631f8]
jb 0x408359
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
add ecx, eax
cmp ecx, dword [0x4631f8]
jb 0x40836b
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x4631f8]
jb 0x4083d5
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0x2c
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
cmp dword [0x4631ec], ebx
je 0x4084a5
cmp dword [ebp + 0x70], ebx
jne 0x4084a5
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x4084df
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x4084df
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0x2c
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
cmp ecx, eax
jne 0x40859d
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x4085c2
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x4085ac
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631ec]
add esp, 0xc
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x408614
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x408614
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
jmp 0x408619
xor eax, eax
jmp 0x408e98
mov eax, dword [0x4631e0]
mov ecx, dword [0x4631ec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
add ecx, 0xfffffffa
imul ecx, dword [0x4631f0]
cmp edx, ecx
jne 0x40863a
sub dword [0x4631e4], eax
mov ecx, dword [0x4631e4]
lea eax, [ecx + eax*4]
cmp eax, dword [0x4631f8]
jb 0x408654
add ecx, dword [ebp + 0x70]
mov dword [0x4631e4], ecx
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x4086c5
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x4086af
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea ecx, [eax + ecx*4]
add esp, 0xc
cmp ecx, dword [0x4631f8]
jb 0x4086f2
add eax, dword [ebp + 0x70]
mov dword [0x4631e4], eax
push ebx
push ebx
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call esi
test eax, eax
je 0x408717
inc dword [0x4631e0]
inc dword [ebp + 0x64]
push ebx
push ebx
push edi
push dword [ebp + 0x70]
call esi
cmp dword [ebp + 0x64], eax
jb 0x408701
push 0x3c
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004099b0
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add esp, 0x18
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call edi
mov esi, dword [sym.imp.ole32.dll_CLSIDFromString]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call esi
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push 0x104
push eax
call fcn.00409290
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0x2c
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call edi
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call esi
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x40883e
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
cmp eax, 0x3e5
je 0x40883e
call esi
mov dword [0x4631e0], eax
jmp 0x408843
mov eax, dword [0x4631e0]
mov ecx, dword [0x4631ec]
mov esi, dword [ebp + 0x70]
imul esi, dword [ebp + 0x70]
lea edx, [ecx - 6]
imul edx, dword [0x4631f0]
cmp esi, edx
jne 0x408864
sub dword [0x4631e4], eax
mov edx, dword [0x4631e4]
lea eax, [edx + eax*4]
cmp eax, dword [0x4631f8]
jb 0x40887e
add edx, dword [ebp + 0x70]
mov dword [0x4631e4], edx
cmp ecx, ebx
je 0x4088b5
cmp dword [ebp + 0x70], ebx
jne 0x4088b5
push dword [ebp + 0x70]
mov edi, dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x70]
call edi
push dword [ebp + 0x70]
mov esi, dword [sym.imp.USER32.dll_DrawMenuBar]
call esi
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call edi
push dword [ebp + 0x70]
call esi
mov ecx, dword [0x4631ec]
jmp 0x4088c1
mov edi, dword [sym.imp.USER32.dll_SetMenu]
mov esi, dword [sym.imp.USER32.dll_DrawMenuBar]
mov dword [ebp + 0x5c], ecx
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x4088f6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x4088f6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x4631e0], eax
cmp dword [0x4631ec], ebx
je 0x40891d
cmp dword [ebp + 0x70], ebx
jne 0x40891d
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call edi
push dword [ebp + 0x70]
call esi
push dword [ebp + 0x70]
push dword [ebp + 0x70]
call edi
push dword [ebp + 0x70]
call esi
mov eax, dword [0x4631ec]
mov dword [ebp + 0x5c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x5c]
push eax
call sub.IPHLPAPI.DLL_NotifyRouteChange
test eax, eax
je 0x408955
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
cmp eax, 0x3e5
je 0x408955
call esi
mov dword [0x4631e0], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0xc84], ax
lea eax, [ebp - 0xc82]
push ebx
push eax
call fcn.004099b0
add esp, 0xc
push 0x400
lea eax, [ebp - 0xc84]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xe8c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0xc84]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
mov edx, ecx
imul edx, dword [ebp + 0x70]
cmp edx, eax
mov eax, dword [0x4631e0]
jne 0x4089c8
sub dword [0x4631e4], eax
mov edx, dword [0x4631e4]
lea eax, [edx + eax*4]
cmp eax, dword [0x4631f8]
jb 0x4089df
add dword [0x4631e4], ecx
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov esi, 0x104
push esi
lea eax, [ebp - 0x168]
push eax
push ebx
call edi
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push esi
push eax
call fcn.00409290
add esp, 0x20
push esi
lea eax, [ebp - 0x168]
push eax
push ebx
call edi
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00409570
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x484]
push esi
push eax
call fcn.00409290
mov eax, dword [0x4631ec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x4631f0]
add esp, 0x20
cmp ecx, eax
jne 0x408a97
mov eax, dword [0x4631e0]
sub dword [0x4631e4], eax
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x30], eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x38]
push eax
xor esi, esi
lea eax, [ebp + 0x24]
inc esi
push eax
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
call sub.gdiplus.dll_GdiplusStartup
push 9
pop ecx
xor eax, eax
mov dword [ebp - 0x1c], ebx
lea edi, [ebp - 0x18]
rep stosd dword es:[edi], eax
push 0x7f00
lea eax, [ebp - 0xd88]
push ebx
mov dword [ebp + 8], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
mov edi, dword [sym.imp.USER32.dll_CreateMenu]
call edi
mov dword [ebp + 0x60], eax
call edi
mov dword [ebp + 0x48], eax
cmp dword [ebp + 0x30], esi
jae 0x408b12
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x18]
lea esi, [eax + ecx*4]
jmp 0x408b2b
cmp dword [ebp + 0x60], ebx
je 0x408b21
cmp dword [ebp + 0x48], ebx
je 0x408b21
mov esi, dword [ebp + 0x20]
jmp 0x408b2b
mov esi, dword [0x4631e0]
imul esi, dword [ebp + 0x54]
mov dword [ebp + 0x64], esi
cmp dword [ebp + 0x4c], ebx
jne 0x408b5c
mov edx, dword [ebp + 0x50]
sub edx, dword [ebp + 0x7c]
mov eax, dword [0x4631ec]
imul edx, edx, 0x13
inc eax
push 0x13
shl eax, 4
add dword [ebp + 0x54], edx
pop ecx
add dword [ebp + 0x28], eax
je 0x408b59
mov edx, dword [ebp + 0x50]
add edx, dword [ebp + 0x1c]
add dword [ebp + 0x30], edx
dec ecx
jne 0x408b4b
mov edi, dword [sym.imp.USER32.dll_InsertMenuA]
push str.FILE_CONSTRUCT
push dword [ebp + 0x54]
push ebx
push ebx
push dword [ebp + 0x48]
call edi
push str.FILE_DESTRUCT
push dword [ebp + 0x48]
push 0x10
push ebx
push dword [ebp + 0x60]
call edi
mov eax, dword [ebp + 0x60]
add eax, 0x10
test eax, eax
jle 0x408bb4
mov eax, dword [0x4631ec]
sub eax, dword [ebp + 0x50]
imul eax, dword [0x4631f0]
test eax, eax
jne 0x408bbd
mov eax, dword [0x4631e4]
mov ecx, dword [0x4631e0]
lea eax, [eax + ecx + 1]
mov dword [0x4631e4], eax
jmp 0x408bbd
cmp dword [ebp + 0x2c], ebx
je 0x408bbd
sub dword [ebp + 0x54], 0x38
push ebx
push dword [ebp + 0x70]
mov eax, ShowHideMenuCtl
push dword [ebp + 0x60]
push ebx
push eax
push eax
push eax
push eax
push 0x2cf0000
lea eax, [ebp - 0xd88]
push eax
push eax
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edx, dword [0x4631f0]
mov eax, edx
sar eax, 8
lea edi, [eax - 4]
imul edi, dword [ebp + 0x2c]
add edi, dword [ebp + 0x1c]
mov ecx, str.ERCP
sub ecx, eax
cmp dword [ebp + 0x2c], ebx
je 0x408c13
cmp edx, ebx
je 0x408c13
mov eax, dword [0x4631ec]
imul eax, eax, 7
lea ecx, [ecx + eax + 7]
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x30], eax
jne 0x408c27
push dword [ebp + 0x1c]
push esi
push dword [0x4631e0]
jmp 0x408c5b
mov edx, dword [0x4631f4]
add edx, 0x10
je 0x408c55
mov edx, dword [ebp + 0x2c]
cmp dword [ebp + 0x18], edx
jbe 0x408c63
cmp eax, ebx
je 0x408c44
lea ecx, [ebp - 0x1744]
lea eax, [ebp - 0xd88]
cmp edx, ebx
je 0x408c50
mov eax, esi
push edi
push ecx
push eax
jmp 0x408c5b
push 8
push esi
push dword [ebp + 0x1c]
call fcn.00408f20
add esp, 0xc
push dword [0x4631e0]
push dword [ebp + 0x4c]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov eax, dword [0x4631f0]
cmp dword [0x4631f8], eax
jbe 0x408cad
cmp dword [0x4631f4], ebx
je 0x408c90
mov edi, dword [0x4631ec]
add edi, 4
cmp eax, ebx
lea eax, [ebp - 0x1744]
je 0x408c9c
mov eax, esi
mov ecx, dword [ebp + 0x1c]
add ecx, 0xc6
push ecx
push edi
push eax
call fcn.004068d7
push dword [ebp + 0x60]
mov edi, dword [sym.imp.USER32.dll_DestroyMenu]
lea eax, [ebp + 0x70]
mov dword [esi + 1], eax
call edi
push dword [ebp + 0x48]
call edi
cmp dword [0x4631f4], ebx
je 0x408d58
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x168]
push eax
call esi
inc eax
push eax
call fcn.00408eb0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop ecx
lea ecx, [ebp - 0x168]
push ecx
push eax
call edi
lea eax, [ebp - 0x26c]
push eax
call esi
inc eax
push eax
call fcn.00408eb0
pop ecx
lea ecx, [ebp - 0x26c]
push ecx
push eax
call edi
push 0x26
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrChrA]
mov esi, 0x400
push esi
call fcn.00408eb0
pop ecx
lea ecx, [ebp - 0xe8c]
push ecx
push eax
call edi
push esi
call fcn.00408eb0
pop ecx
lea ecx, [ebp - 0x484]
push ecx
push eax
call edi
push esi
call fcn.00408eb0
pop ecx
lea ecx, [ebp - 0x370]
push ecx
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
xor eax, eax
mov word [ebp + 0x7c], ax
mov word [ebp + 0x7e], ax
lea eax, [ebp - 0x58]
push eax
push ebx
call esi
movsx eax, word [ebp - 0x58]
movsx edi, word [ebp - 0x56]
imul edi, eax
lea eax, [ebp + 0x5c]
push eax
push dword [ebp + 0x7c]
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x58]
push eax
push ebx
call esi
lea eax, [ebp + 0x5c]
push eax
push dword [ebp + 0x7c]
push edi
push dword [ebp - 0x50]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push dword [ebp + 0x7c]
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
cmp dword [ebp + 0x70], ebx
jne 0x408e45
mov eax, dword [0x4631e0]
mov ecx, dword [ebp + 0x38]
lea edi, [ecx + eax - 4]
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x44]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
push 0x13
lea esi, [eax + ecx - 4]
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 0x54]
mov dword [ebp + 0x20], eax
push ebx
call dword [sym.imp.GDI32.dll_SetDCPenColor]
lea ecx, [esi + 9]
push ecx
mov dword [ebp + 0x5c], eax
lea eax, [edi + 9]
push eax
push esi
push edi
push ebx
mov dword [ebp + 0x7c], eax
call dword [sym.imp.GDI32.dll_Rectangle]
push dword [ebp + 0x54]
push ebx
call dword [sym.imp.GDI32.dll_SetDCPenColor]
push ebx
add esi, 4
push esi
add edi, 2
push edi
push ebx
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp + 0x7c]
push esi
add eax, 0xfffffffe
push eax
push ebx
call dword [sym.imp.GDI32.dll_LineTo]
push dword [ebp + 0x5c]
push ebx
call dword [sym.imp.GDI32.dll_SetDCPenColor]
push dword [ebp + 0x20]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 0x4c]
xor edi, edi
call dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
jne 0x408e55
inc edi
movzx eax, word [ebp + 0x54]
push ebx
mov esi, 0x4068d2
push esi
push ebx
push eax
push ebx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
test eax, eax
jne 0x408e70
mov esi, dword [ebp + 0x64]
cmp edi, ebx
je 0x408e85
push ebx
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.dbghelp.dll_EnumerateLoadedModules]
cmp dword [ebp + 0x2c], ebx
je 0x408e98
push 1
push 0x400
push esi
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10