Function at 0x406c83
Capabilities:
Get common file path
Get disk information
Get file version info
Get graphical window text
Query or enumerate registry value
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x68]
mov eax, 0x11d8
call fcn.0040a010
mov eax, dword [ebp + 0x70]
push ebx
push esi
push edi
xor ebx, ebx
push 0x103
mov dword [0x45dee8], eax
lea eax, [ebp - 0x1033]
push ebx
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp - 0x1034], bl
call fcn.00409500
add esp, 0xc
push ebx
push ebx
push 2
push ebx
push ebx
push 0x40000000
lea eax, [ebp - 0x1034]
push eax
mov dword [ebp - 0x10], 0xfeff
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, dword [0x45deec]
mov dword [ebp + 0x44], eax
mov eax, dword [0x45dee0]
imul eax, dword [ebp + 0x7c]
mov dword [0x45dee4], eax
mov eax, dword [0x45def4]
add edi, 2
imul edi, eax
cmp edi, eax
jbe 0x406d12
mov dword [0x45dee0], 0x421
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov dword [ebp + 0x64], eax
inc eax
push eax
call fcn.00409fe0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ecx
push dword [ebp + 0x44]
mov dword [ebp + 0x5c], eax
call esi
mov eax, dword [0x45dee0]
lea eax, [eax + edi - 0xdb]
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
push ebx
mov dword [0x45dee0], eax
lea eax, [ebp - 8]
push eax
push 2
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x44]
mov dword [0x45deec], ebx
call edi
mov eax, dword [ebp + 0x64]
inc eax
push eax
push dword [ebp + 0x5c]
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
push ebx
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x64]
push dword [ebp + 0x5c]
push dword [ebp + 0x44]
call edi
mov eax, dword [ebp + 0x64]
cmp eax, dword [ebp - 8]
je 0x406da9
push dword [ebp + 0x44]
call esi
mov eax, dword [0x45dee4]
mov dword [0x45dee0], eax
cmp eax, ebx
je 0x406da0
mov dword [ebp + 0x58], 0xcb
push dword [ebp + 0x5c]
call fcn.00409fc0
pop ecx
push dword [ebp + 0x44]
call esi
push dword [ebp + 0x5c]
call fcn.00409fc0
pop ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
push 0x401
push ebx
push dword [ebp + 0x70]
mov edi, eax
mov dword [ebp + 0x4c], edi
mov dword [ebp - 0xe2c], ebx
call esi
push ebx
push dword [0x45def4]
push dword [ebp + 0x24]
push dword [ebp + 0x18]
push 2
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
push 0xffffffffffffffff
push dword [ebp + 0x70]
push 0x125
push dword [0x45def4]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
call sub.OLEACC.dll_GetOleaccVersionInfo
neg edi
push 0x401
sbb edi, edi
and edi, dword [ebp - 0xc]
push ebx
push dword [ebp + 0x70]
mov dword [ebp - 0xe2c], 1
mov dword [ebp + 0x44], edi
call esi
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
lea eax, [ebp + 0x18]
push eax
push 2
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp dword [ebp - 4], ebx
je 0x406e60
mov byte [ebp + 0x44], bl
mov edi, dword [ebp + 0x44]
mov dword [0x45def8], edi
cmp edi, ebx
je 0x406e6c
cmp dword [0x45def8], ebx
jne 0x406e80
push 4
call fcn.00409fe0
pop ecx
mov dword [ebp + 0x44], eax
mov dword [0x45def8], eax
cmp eax, ebx
je 0x406e83
inc dword [ebp + 0x58]
add dword [ebp + 0x4c], 0x774
mov eax, dword [ebp + 0x4c]
mov dword [0x45def0], eax
xor eax, eax
push 0x206
mov word [ebp - 0xb30], ax
lea eax, [ebp - 0xb2e]
push ebx
push eax
call fcn.00409500
add esp, 0xc
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0xb30]
push eax
mov dword [ebp + 0x54], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
push 0x1000
mov dword [ebp + 0x50], eax
call fcn.00409fe0
pop ecx
mov edi, eax
push edi
push dword [ebp + 0x50]
lea eax, [ebp - 0xb30]
push dword [ebp + 0x48]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x406f00
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x50]
push eax
push 0x424250
push edi
mov dword [ebp + 0x50], ebx
call sub.VERSION.dll_VerQueryValueW
push edi
call fcn.00409fc0
xor eax, eax
mov dword [ebp + 0x28], ebx
lea edi, [ebp + 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
movzx eax, byte [ebp + 0x37]
push eax
movzx eax, byte [ebp + 0x36]
push eax
movzx eax, byte [ebp + 0x35]
push eax
movzx eax, byte [ebp + 0x34]
push eax
movzx eax, byte [ebp + 0x33]
push eax
movzx eax, byte [ebp + 0x32]
push eax
movzx eax, byte [ebp + 0x31]
push eax
movzx eax, byte [ebp + 0x30]
push eax
movzx eax, word [ebp + 0x2e]
push eax
movzx eax, word [ebp + 0x2c]
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0xdc]
push 0x424258
push 0x64
push eax
mov dword [ebp + 0x64], ebx
call fcn.00409da0
add esp, 0x3c
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0xdc]
push eax
push ShowHideMenuCtl
mov dword [ebp + 0x5c], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp + 0x48]
push eax
push ebx
lea eax, [ebp + 0x60]
push eax
push ebx
push ebx
push dword [ebp + 0x5c]
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x48], ebx
call edi
test eax, eax
jne 0x406fcc
cmp dword [ebp + 0x60], 1
jne 0x406fcc
mov eax, dword [ebp + 0x48]
cmp eax, ebx
jbe 0x406fcc
cmp dword [ebp + 0x64], eax
jb 0x406fcc
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0xb30]
push eax
push ebx
push ebx
push ebx
push dword [ebp + 0x5c]
call edi
test eax, eax
jne 0x406fcc
mov ecx, dword [ebp + 0x64]
mov word [ebp + ecx*2 - 0xb30], ax
push dword [ebp + 0x5c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x50], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp + 0x64]
push eax
push 0x4243f0
push 1
push ebx
push 0x425980
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x407017
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax]
lea edx, [ebp + 0x50]
push edx
push 0x425970
push eax
call dword [ecx]
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x45def4]
push ebx
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push dword [ebp + 0x58]
lea edi, [eax - 1]
push dword [ebp + 0x60]
neg edi
sbb edi, edi
inc edi
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
dec eax
neg eax
push str.Create_Device
sbb eax, eax
push ebx
push dword [ebp + 0x60]
inc eax
mov dword [ebp + 0x50], eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push str.Device_not_created._Choose_settings_and_click_Create_Device_then_type_to_see_results
push dword [ebp + 0x58]
push dword [ebp + 0x60]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 1
push dword [0x45dee0]
push dword [ebp + 0x60]
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 1
push dword [0x45dee4]
push dword [ebp + 0x60]
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 1
push ebx
push dword [ebp + 0x60]
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
cmp edi, ebx
jne 0x4070b4
cmp dword [ebp + 0x50], ebx
je 0x4070b4
push 1
push dword [0x45dee0]
jmp 0x4070bb
push ebx
push dword [0x45dee4]
push dword [ebp + 0x60]
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
lea eax, [ebp - 0x928]
push eax
push ebx
push dword [ebp + 0x60]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov esi, 0x103
push esi
lea eax, [ebp - 0xf2f]
push ebx
push eax
mov byte [ebp - 0xf30], bl
call fcn.00409500
push esi
lea eax, [ebp - 0x117]
push ebx
push eax
mov byte [ebp - 0x118], bl
call fcn.00409500
lea eax, [ebp - 0xf30]
push eax
lea eax, [ebp - 0xd28]
push eax
call fcn.00409ca0
lea eax, [ebp - 0xd28]
push 0x2f
push eax
call fcn.00408db0
lea eax, [ebp - 0xd28]
push 0x5c
push eax
call fcn.00408db0
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0xf30]
push eax
call fcn.00409ca0
add esp, 0x38
lea eax, [ebp - 0x78]
push eax
push ebx
push ebx
push 0x10
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x407185
push str..txt
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
cmp dword [ebp + 0x70], 0xffffffff
jne 0x407185
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_open_file__error__d__n
call fcn.00409b40
pop ecx
pop ecx
lea eax, [ebp - 0xb34]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
mov dword [ebp - 0xe2c], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.COMCTL32.dll_ShowHideMenuCtl]
test eax, eax
je 0x4071b5
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x40], eax
push 0x48
push 0x5a
push ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push 0x10
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [0x45dee0], ebx
cmp dword [ebp + 0x40], ebx
je 0x4071d8
xor eax, eax
mov dword [eax], ebx
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x1170], eax
cmp dword [ebp + 0x40], ebx
jne 0x4071ec
mov dword [0x45def4], ebx
push 0xffffffffffffffeb
push dword [0x45def4]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov eax, dword [ebp + 0x70]
mov ecx, dword [0x45dee0]
mov dword [ebp + 0x64], eax
xor eax, eax
mov dword [ebp + 0x28], ebx
mov esi, dword [ebp + 0x7c]
lea edi, [ebp + 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x28]
mov edi, dword [ebp + 0x2c]
lea eax, [eax + ecx - 4]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x34]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
lea eax, [eax + edi - 4]
mov dword [ebp + 0x5c], eax
mov eax, dword [0x45deec]
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x60], ebx
cmp eax, 3
jg 0x407266
mov esi, dword [ebp + 0x40]
push 0x1a
pop edx
sub edx, ecx
mov ecx, dword [0x45def4]
add ecx, 0x1000
inc eax
imul ecx, eax
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x14], ecx
lea edi, [esi + edx + 0x1a]
jmp 0x40728c
mov eax, dword [0x45def4]
imul eax, dword [ebp + 0x58]
sub ecx, dword [ebp + 0x58]
add eax, esi
mov esi, dword [ebp + 0x40]
imul ecx, eax
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x4c]
lea edi, [esi + eax]
mov dword [0x45dee4], ecx
imul edi, edi, 3
push 0x13
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push 1
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp + 0x3c], eax
cmp eax, ebx
jne 0x4072ba
mov eax, dword [ebp + 0x14]
shl eax, 4
add eax, dword [0x45def4]
add dword [ebp + 0x64], 3
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], eax
push ebx
push 1
call dword [sym.imp.GDI32.dll_SetDCPenColor]
mov dword [ebp], eax
cmp edi, ebx
jbe 0x4072f8
lea eax, [esi + 1]
imul eax, dword [ebp + 0x14]
imul eax, eax, 0x22
sub eax, dword [0x45deec]
mov ecx, esi
mov dword [ebp + 0x60], eax
imul ecx, ecx, 0x180
mov eax, edi
imul eax, dword [ebp + 0x58]
imul eax, eax, 0x1b0
add eax, ecx
mov dword [ebp + 0x54], eax
jmp 0x40731e
mov ecx, dword [ebp + 0x58]
sub ecx, dword [ebp + 0x64]
mov eax, dword [0x45deec]
imul ecx, eax
neg ecx
inc eax
mov dword [ebp + 0x58], ecx
inc ecx
imul eax, ecx
imul eax, dword [ebp + 0x48]
shl eax, 4
add eax, edi
mov dword [0x45dee4], eax
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x5c]
add edx, 9
push edx
lea eax, [ecx + 9]
push eax
push dword [ebp + 0x5c]
mov dword [ebp + 0x64], 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 [0x45dee4]
mov dword [0x45dee0], eax
mov eax, dword [ebp + 0x1c]
imul eax, eax, 5
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x60]
add dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x5c]
add eax, 4
push ebx
push eax
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x50]
add eax, 2
push eax
push 1
call dword [sym.imp.GDI32.dll_MoveToEx]
imul edi, dword [ebp + 0x58]
mov eax, dword [ebp + 0x1c]
imul edi, edi, 9
push dword [ebp + 0x48]
shl eax, 2
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x64]
add eax, 0xfffffffe
push eax
push 1
lea edi, [edi + esi*8]
call dword [sym.imp.GDI32.dll_LineTo]
mov eax, dword [0x45dee4]
add eax, 4
lea ecx, [esi + 5]
imul eax, ecx
imul eax, eax, 0x64
lea eax, [edi + eax - 0x61]
mov dword [ebp + 0x54], eax
cmp esi, ebx
jne 0x4073cc
push dword [ebp + 0x34]
push dword [ebp + 0x60]
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [ebp + 0x34], eax
push dword [ebp]
push 1
call dword [sym.imp.GDI32.dll_SetDCPenColor]
push dword [ebp + 0x3c]
mov eax, dword [0x45dee4]
add dword [0x45dee0], eax
push 1
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 0x58]
mov edi, dword [sym.imp.USER32.dll_DefWindowProcA]
push dword [ebp + 0x54]
push ebx
push esi
call edi
push dword [ebp + 0x58]
mov eax, dword [0x45def4]
push dword [ebp + 0x54]
push ebx
push eax
call edi
mov eax, dword [0x45dee4]
mov dword [ebp + 0x54], eax
mov eax, dword [0x45def0]
mov dword [ebp + 0x5c], ebx
cmp eax, dword [0x45deec]
jbe 0x4074e7
mov eax, dword [ebp + 0x4c]
imul eax, eax
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x3c], eax
cmp eax, ebx
jle 0x4074e7
cmp dword [0x45deec], ebx
jne 0x40747d
mov eax, 0x100
push eax
lea ecx, [ebp - 0x114]
push ecx
lea ecx, [ebp]
push ecx
lea ecx, [ebp + 0x50]
push ecx
push ebx
push eax
lea eax, [ebp - 0xf2c]
push eax
lea eax, [ebp - 0xa2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x407488
mov eax, dword [0x45def8]
mov dword [ebp + 0x5c], eax
jmp 0x407488
inc dword [ebp + 0x54]
cmp dword [0x45def4], ebx
jne 0x4074e7
cmp dword [0x45def8], ebx
je 0x4074e7
mov eax, dword [ebp + 0x4c]
cdq
and edx, 0xf
lea edi, [edx + eax]
sar edi, 4
mov dword [ebp + 0x64], ebx
cmp edi, ebx
jle 0x4074be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x58], eax
cmp dword [ebp + 0x5c], ebx
je 0x407560
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], edi
jl 0x4074a4
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x54], eax
jne 0x4074cc
inc dword [0x45dee4]
cmp dword [ebp + 0x44], ebx
je 0x407560
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x5c], ebx
cmp eax, dword [ebp + 0x3c]
jl 0x40743c
cmp dword [ebp + 0x4c], ebx
je 0x4074fd
cmp dword [0x45def0], ebx
je 0x4074fd
lea eax, [esi + 1]
imul eax, eax, 0xa
mov dword [ebp + 0x38], eax
mov edi, dword [0x45deec]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x128]
push eax
add edi, 0x10
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], 0x100
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x24], ebx
call dword [sym.imp.USER32.dll_SetRect]
push ebx
push ebx
push 0x418
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x45deec]
mov eax, dword [0x45def4]
add eax, edi
lea edx, [edi + ecx]
imul eax, edx
lea edx, [edi + esi]
imul eax, edx
imul eax, edi
cdq
idiv edi
cmp eax, ecx
jle 0x407567
imul eax, eax, 0x15
jmp 0x40756c
xor eax, eax
jmp 0x408bee
imul eax, eax, 0x31
add eax, edi
push eax
push 8
push dword [ebp + 0x34]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
mov esi, 0x1004
push esi
push dword [ebp + 0x70]
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x64], ebx
call edi
test eax, eax
je 0x4075ab
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push esi
push dword [ebp + 0x70]
call edi
cmp dword [ebp + 0x64], eax
jb 0x407595
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x4075d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x4075e3
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x407608
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov edi, dword [sym.imp.USER32.dll_SetMenu]
mov esi, dword [sym.imp.USER32.dll_DrawMenuBar]
cmp dword [0x45deec], ebx
je 0x407687
cmp dword [ebp + 0x70], ebx
jne 0x407687
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
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x4076ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x4076fc
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407713
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x407725
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
cmp dword [0x45deec], ebx
je 0x40774c
cmp dword [ebp + 0x70], ebx
jne 0x40774c
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
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407781
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407763
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov eax, dword [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
add esp, 0xc
cmp ecx, dword [0x45def8]
jb 0x4077ae
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45dee0]
mov ecx, dword [0x45dee4]
lea ecx, [ecx + eax*4]
cmp ecx, dword [0x45def8]
jb 0x407819
mov ecx, dword [ebp + 0x70]
add dword [0x45dee4], ecx
mov ecx, dword [0x45deec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
add ecx, 0xfffffffa
imul ecx, dword [0x45def0]
cmp edx, ecx
jne 0x40783a
sub dword [0x45dee4], eax
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x40786f
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407851
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
cmp dword [0x45deec], ebx
je 0x4078a5
cmp dword [ebp + 0x70], ebx
jne 0x4078a5
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 [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x45def8]
jb 0x4078c3
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x4078da
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x4078ec
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407921
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407903
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
add esp, 0xc
cmp ecx, eax
jne 0x407955
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45deec]
cmp eax, ebx
je 0x407a1a
cmp dword [ebp + 0x70], ebx
jne 0x407a1a
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 [0x45deec]
mov ecx, dword [0x45dee4]
mov edx, dword [0x45dee0]
lea edx, [ecx + edx*4]
cmp edx, dword [0x45def8]
jb 0x407a3a
add ecx, dword [ebp + 0x70]
mov dword [0x45dee4], ecx
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea ecx, [eax - 6]
imul ecx, dword [0x45def0]
cmp edx, ecx
jne 0x407a5b
mov ecx, dword [0x45dee0]
sub dword [0x45dee4], ecx
cmp eax, ebx
je 0x407a7e
cmp dword [ebp + 0x70], ebx
jne 0x407a7e
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
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407a95
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x407aa7
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x45def8]
jb 0x407b11
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407b46
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407b28
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
cmp dword [0x45deec], ebx
je 0x407b7c
cmp dword [ebp + 0x70], ebx
jne 0x407b7c
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
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407b93
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x407ba5
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407bda
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407bbc
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov ecx, dword [0x45deec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea eax, [ecx - 6]
imul eax, dword [0x45def0]
add esp, 0xc
cmp edx, eax
mov eax, dword [0x45dee0]
jne 0x407c0f
sub dword [0x45dee4], eax
mov edx, dword [0x45dee4]
lea eax, [edx + eax*4]
cmp eax, dword [0x45def8]
jb 0x407c29
add edx, dword [ebp + 0x70]
mov dword [0x45dee4], edx
cmp ecx, ebx
je 0x407c4c
cmp dword [ebp + 0x70], ebx
jne 0x407c4c
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
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
mov eax, dword [0x45dee0]
jne 0x407cbd
sub dword [0x45dee4], eax
mov ecx, dword [0x45dee4]
lea eax, [ecx + eax*4]
cmp eax, dword [0x45def8]
jb 0x407cd7
add ecx, dword [ebp + 0x70]
mov dword [0x45dee4], ecx
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45deec]
cmp eax, ebx
je 0x407d9c
cmp dword [ebp + 0x70], ebx
jne 0x407d9c
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 [0x45deec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea ecx, [eax - 6]
imul ecx, dword [0x45def0]
cmp edx, ecx
jne 0x407dbd
mov ecx, dword [0x45dee0]
sub dword [0x45dee4], ecx
cmp eax, ebx
je 0x407de0
cmp dword [ebp + 0x70], ebx
jne 0x407de0
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
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407df7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x407e09
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407e3e
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407e20
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407e64
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x407e76
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x407f33
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407f68
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x407f4a
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407f8e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x407fa0
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
cmp dword [0x45deec], ebx
je 0x407fc7
cmp dword [ebp + 0x70], ebx
jne 0x407fc7
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 ecx, dword [0x45dee0]
mov eax, dword [0x45dee4]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x45def8]
jb 0x407fe5
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x407ffc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x40800e
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x408043
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x408025
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov eax, dword [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
add esp, 0xc
cmp ecx, dword [0x45def8]
jb 0x408070
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
cmp dword [0x45deec], ebx
je 0x408097
cmp dword [ebp + 0x70], ebx
jne 0x408097
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
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x408108
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x40813d
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x40811f
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0x18
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
cmp dword [0x45deec], ebx
je 0x4081bc
cmp dword [ebp + 0x70], ebx
jne 0x4081bc
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 [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x45def8]
jb 0x4081da
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x4081f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x408203
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x408228
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
cmp dword [0x45deec], ebx
je 0x40829b
cmp dword [ebp + 0x70], ebx
jne 0x40829b
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 [0x45dee0]
mov ecx, dword [0x45dee4]
lea eax, [ecx + eax*4]
cmp eax, dword [0x45def8]
jb 0x4082ba
mov eax, dword [ebp + 0x70]
add dword [0x45dee4], eax
cmp dword [0x45deec], ebx
je 0x408308
cmp dword [ebp + 0x70], ebx
jne 0x4082e1
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
cmp dword [0x45deec], ebx
je 0x408308
cmp dword [ebp + 0x70], ebx
jne 0x408308
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
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x40831f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x408331
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
cmp dword [0x45deec], ebx
je 0x408358
cmp dword [ebp + 0x70], ebx
jne 0x408358
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
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x40836f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x408381
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x4083b6
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x408398
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
add esp, 0xc
cmp ecx, eax
jne 0x4083ea
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x408401
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x408413
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x408448
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x40842a
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
cmp dword [0x45deec], ebx
je 0x40847e
cmp dword [ebp + 0x70], ebx
jne 0x40847e
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 [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x4084a3
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x408524
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x408506
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
cmp dword [0x45deec], ebx
je 0x40855a
cmp dword [ebp + 0x70], ebx
jne 0x40855a
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 [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x45def8]
jb 0x408578
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x40858f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x4085a1
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45dee0]
mov ecx, dword [0x45dee4]
lea eax, [ecx + eax*4]
cmp eax, dword [0x45def8]
jb 0x40860c
mov eax, dword [ebp + 0x70]
add dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x40867d
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x4086b2
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x408694
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov eax, dword [0x45deec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea ecx, [eax - 6]
imul ecx, dword [0x45def0]
add esp, 0xc
cmp edx, ecx
jne 0x4086e7
mov ecx, dword [0x45dee0]
sub dword [0x45dee4], ecx
cmp eax, ebx
je 0x40870f
cmp dword [ebp + 0x70], ebx
jne 0x40870f
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 [0x45deec]
mov edx, dword [ebp + 0x70]
imul edx, dword [ebp + 0x70]
lea ecx, [eax - 6]
imul ecx, dword [0x45def0]
cmp edx, ecx
jne 0x408730
mov ecx, dword [0x45dee0]
sub dword [0x45dee4], ecx
mov ecx, dword [0x45dee4]
mov edx, dword [0x45dee0]
lea edx, [ecx + edx*4]
cmp edx, dword [0x45def8]
jb 0x408750
add ecx, dword [ebp + 0x70]
mov dword [0x45dee4], ecx
cmp eax, ebx
je 0x408773
cmp dword [ebp + 0x70], ebx
jne 0x408773
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
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x4087a8
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x40878a
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x4087ce
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x4087e5
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
mov eax, dword [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
cmp ecx, dword [0x45def8]
jb 0x4087fe
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x408833
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x408815
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
mov eax, dword [0x45dee4]
mov ecx, dword [0x45dee0]
lea ecx, [eax + ecx*4]
add esp, 0xc
cmp ecx, dword [0x45def8]
jb 0x408860
add eax, dword [ebp + 0x70]
mov dword [0x45dee4], eax
call sub.IPHLPAPI.DLL_IcmpCreateFile
cmp eax, 0xffffffff
jne 0x408877
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x45dee4], eax
jmp 0x408889
mov ecx, dword [0x45dee4]
push eax
mov dword [0x45dee0], ecx
call sub.IPHLPAPI.DLL_IcmpCloseHandle
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
mov dword [ebp + 0x64], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x4088be
inc dword [0x45dee0]
inc dword [ebp + 0x64]
push ebx
push ebx
push 0x1004
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x64], eax
jb 0x4088a0
push 0x3c
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.00409500
add esp, 0xc
cmp dword [0x45deec], ebx
je 0x4088f4
cmp dword [ebp + 0x70], ebx
jne 0x4088f4
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 [0x45deec]
mov ecx, dword [ebp + 0x70]
imul ecx, dword [ebp + 0x70]
add eax, 0xfffffffa
imul eax, dword [0x45def0]
cmp ecx, eax
jne 0x408919
mov eax, dword [0x45dee0]
sub dword [0x45dee4], eax
xor eax, eax
push 0x7fe
mov word [ebp - 0x928], ax
lea eax, [ebp - 0x926]
push ebx
push eax
call fcn.00409500
add esp, 0xc
push 0x400
lea eax, [ebp - 0x928]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x70]
mov dword [ebp + 0x50], eax
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp]
push eax
mov dword [ebp + 0x18], 1
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x24], ebx
call sub.gdiplus.dll_GdiplusStartup
push 9
pop ecx
xor eax, eax
mov dword [ebp - 0x3c], ebx
lea edi, [ebp - 0x38]
rep stosd dword es:[edi], eax
push 0x7f00
lea eax, [ebp - 0xe2c]
push ebx
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
mov edi, dword [sym.imp.USER32.dll_CreateMenu]
call edi
mov dword [ebp + 0x5c], eax
call edi
mov dword [ebp + 0x64], eax
cmp esi, 1
jae 0x4089de
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x44]
lea eax, [eax + ecx*4]
jmp 0x4089f6
cmp dword [ebp + 0x5c], ebx
je 0x4089ed
cmp dword [ebp + 0x64], ebx
je 0x4089ed
mov eax, dword [ebp + 0x3c]
jmp 0x4089f6
mov eax, dword [0x45dee0]
imul eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x40], ebx
jne 0x408a2d
mov ecx, dword [ebp + 0x58]
mov eax, dword [0x45deec]
mov edx, ecx
sub edx, dword [ebp + 0x7c]
inc eax
imul edx, edx, 0x13
shl eax, 4
add dword [ebp + 0x54], edx
mov dword [ebp + 0x48], 0x13
add dword [ebp + 0x50], eax
je 0x408a28
mov edx, dword [ebp + 0x38]
add edx, ecx
add esi, edx
dec dword [ebp + 0x48]
jne 0x408a1c
mov edi, dword [sym.imp.USER32.dll_InsertMenuA]
push str.FILE_CONSTRUCT
push dword [ebp + 0x54]
push ebx
push ebx
push dword [ebp + 0x64]
call edi
push str.FILE_DESTRUCT
push dword [ebp + 0x64]
push 0x10
push ebx
push dword [ebp + 0x5c]
call edi
mov eax, dword [ebp + 0x5c]
add eax, 0x10
test eax, eax
jle 0x408a85
mov eax, dword [0x45deec]
sub eax, dword [ebp + 0x58]
imul eax, dword [0x45def0]
test eax, eax
jne 0x408a8e
mov ecx, dword [0x45dee4]
mov eax, dword [0x45dee0]
lea eax, [ecx + eax + 1]
mov dword [0x45dee4], eax
jmp 0x408a8e
cmp dword [ebp + 0x4c], ebx
je 0x408a8e
sub dword [ebp + 0x54], 0x38
push ebx
push dword [ebp + 0x70]
mov eax, ShowHideMenuCtl
push dword [ebp + 0x5c]
push ebx
push eax
push eax
push eax
push eax
push 0x2cf0000
lea eax, [ebp - 0xe2c]
push eax
push eax
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edx, dword [0x45def0]
mov eax, edx
sar eax, 8
lea edi, [eax - 4]
imul edi, dword [ebp + 0x4c]
add edi, dword [ebp + 0x38]
mov ecx, 0x424400
sub ecx, eax
cmp dword [ebp + 0x4c], ebx
je 0x408ae4
cmp edx, ebx
je 0x408ae4
mov eax, dword [0x45deec]
imul eax, eax, 7
lea ecx, [ecx + eax + 7]
cmp esi, dword [ebp + 0x40]
jne 0x408af7
push dword [ebp + 0x38]
push dword [ebp + 0x60]
push dword [0x45dee0]
jmp 0x408b2f
mov eax, dword [0x45def4]
add eax, 0x10
je 0x408b27
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x44], eax
jbe 0x408b37
cmp dword [ebp + 0x40], ebx
je 0x408b14
lea ecx, [ebp - 0x1170]
lea eax, [ebp - 0xe2c]
cmp dword [ebp + 0x4c], ebx
je 0x408b22
mov eax, dword [ebp + 0x60]
push edi
push ecx
push eax
jmp 0x408b2f
push 8
push dword [ebp + 0x60]
push dword [ebp + 0x38]
call fcn.00409190
add esp, 0xc
push dword [0x45dee0]
push dword [ebp + 0x40]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov eax, dword [0x45def0]
cmp dword [0x45def8], eax
jbe 0x408b82
cmp dword [0x45def4], ebx
je 0x408b64
mov edi, dword [0x45deec]
add edi, 4
cmp eax, ebx
lea eax, [ebp - 0x1170]
je 0x408b71
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x38]
add ecx, 0xc6
push ecx
push edi
push eax
call fcn.00406ae9
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x5c]
mov edi, dword [sym.imp.USER32.dll_DestroyMenu]
lea eax, [ebp + 0x70]
mov dword [ecx + 1], eax
call edi
push dword [ebp + 0x64]
call edi
push dword [ebp + 0x40]
xor esi, esi
call dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
jne 0x408bab
inc esi
movzx eax, word [ebp + 0x54]
push ebx
mov edi, 0x40690c
push edi
push ebx
push eax
push ebx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
test eax, eax
jne 0x408bc6
mov edi, dword [ebp + 0x60]
cmp esi, ebx
je 0x408bdb
push ebx
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.dbghelp.dll_EnumerateLoadedModules]
cmp dword [ebp + 0x4c], ebx
je 0x408bee
push 1
push 0x400
push edi
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10