Function at 0x4014f0
Capabilities:
Enumerate services
Get system information on windows
Read .ini file
Read and send data from client to server
Read file on windows
Resolve function by parsing pe exports
Send data
Send data on socket
Set socket configuration
Start service

Disassembly:
push 0xffffffffffffffff
push 0x43b624
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7e0
push ebx
push ebp
push esi
mov esi, dword [0x44fddc]
push edi
push 0x1fe
sub ebp, ebp
lea eax, [esp + 0x1ca]
push ebp
push eax
mov word [esp + 0x1d0], si
call fcn.00423c00
add esp, 0xc
push 0xff
lea ecx, [esp + 0xc9]
push ebp
push ecx
call fcn.00423c00
mov ecx, dword [0x44fde0]
mov edx, dword [0x44fde4]
mov eax, dword [0x44fdd4]
lea edi, [edx + ecx*4]
add edi, ecx
cdq
add edi, esi
idiv edi
add esp, 0xc
push 0x1c
mov dword [esp + 0xc8], ecx
add eax, ecx
add dword [esp + 0x18], eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0xcc]
push ecx
call dword [sym.imp.KERNEL32.DLL_VirtualQuery]
call fcn.00422491
push eax
lea edx, [esp + 0x48]
push 0x40
push edx
call fcn.004228d4
mov eax, dword [0x44fddc]
add esp, 0xc
push ebp
push eax
push ebp
push 4
push ebp
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.DLL_CreateFileMappingA]
mov ebx, dword [0x44fde4]
cmp dword [esp + 0x14], ebx
mov esi, dword [0x44fddc]
mov ecx, dword [0x44fde0]
jne 0x4015f8
movzx eax, word [esp + 0x14]
add eax, esi
imul eax, dword [0x44fde8]
imul eax, esi
cdq
lea edi, [esi + 6]
idiv edi
mov edi, eax
movzx eax, cl
imul eax, dword [0x44fdd4]
cdq
idiv dword [0x44fde8]
sub edi, eax
add dword [esp + 0x18], edi
mov eax, dword [0x44fdd4]
cdq
lea ebx, [ebx + ecx*8]
add ebx, esi
idiv ebx
mov edi, dword [0x44fdd0]
imul edi, ecx
mov dword [0x44fdd0], edi
mov edx, eax
mov eax, dword [esp + 0x14]
add edx, ecx
add eax, edx
push ecx
pop edx
imul edx, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], edx
jne 0x40164b
mov eax, dword [esp + 0x18]
mov edx, eax
shr edx, 1
imul edx, dword [0x44fde8]
movzx ebx, cx
imul ebx, esi
add edx, ebx
imul edx, eax
mov dword [esp + 0x18], edx
mov ebx, dword [0x44fdd4]
lea eax, [ecx + ecx]
test al, 0xf
jne 0x401679
mov edi, dword [sym.imp.KERNEL32.DLL_lstrcpyA]
push str.New_item_1
lea eax, [esp + 0x48]
push eax
call edi
push str.New_item_2
lea ecx, [esp + 0x88]
push ecx
jmp 0x4016c1
test al, 2
je 0x40169e
mov edi, dword [sym.imp.KERNEL32.DLL_lstrcpyA]
push str.New_item_1
lea edx, [esp + 0x48]
push edx
call edi
push str.New_item_2
lea eax, [esp + 0x88]
push eax
jmp 0x4016c1
test al, 4
je 0x4016ec
mov edi, dword [sym.imp.KERNEL32.DLL_lstrcpyA]
push str.New_item_1
lea ecx, [esp + 0x48]
push ecx
call edi
push str.New_item_2
lea edx, [esp + 0x88]
push edx
call edi
push ebp
push ebp
push 0xc00
mov eax, ebx
push eax
push esi
call dword [sym.imp.USER32.dll_InsertMenuA]
mov esi, dword [0x44fddc]
mov ecx, dword [0x44fde0]
mov ebx, dword [0x44fdd4]
mov edi, dword [0x44fdd0]
mov edx, dword [0x44fde4]
imul edi, ecx
mov dword [0x44fdd0], edi
lea edi, [edx + ecx*2]
push ebx
pop eax
cdq
add edi, ecx
idiv edi
mov edi, dword [0x44fde8]
add eax, ecx
add dword [esp + 0x14], eax
mov eax, dword [0x44fde4]
cmp dword [esp + 0x14], eax
jne 0x40173d
push edi
pop eax
imul eax, esi
cdq
idiv ecx
movzx edx, word [esp + 0x14]
imul edx, esi
add eax, edx
mov edx, ebx
imul edx, ecx
add edx, dword [esp + 0x18]
add edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [0x44fdd0]
imul eax, esi
lea ecx, [edi + esi]
cmp eax, ecx
jne 0x401766
movzx eax, word [esp + 0x18]
lea edx, [esi - 4]
imul edx, eax
imul edx, dword [esp + 0x14]
sub edi, edx
add ebx, edi
mov dword [0x44fdd4], ebx
cmp esi, ebp
lea ebx, [esi + 1]
jne 0x401780
push 0x440198
push ebx
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea ecx, [esp + 0x1c4]
push ecx
push ebx
pop eax
mov edi, ecx
call fcn.00401380
push 4
call fcn.00413ed5
add esp, 4
cmp eax, ebp
je 0x4017a9
lea edx, [esp + 0x44]
mov dword [eax], edx
mov ebx, eax
jmp 0x4017ab
sub ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x7f8], 1
mov esi, dword [0x44fddc]
push ebx
pop ebx
push 4
pop eax
sub eax, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
call fcn.00437300
mov edi, dword [0x44fde0]
push edi
pop ecx
imul ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [0x44fdd4]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
add ecx, edi
idiv ecx
imul eax, edi
cdq
idiv dword [0x44fde8]
mov edx, dword [esp + 0x14]
or edx, edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
faddp st(1)
fild dword [esp + 0x14]
jge 0x401829
fadd qword [0x440f80]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
faddp st(1)
mov dword [esp + 0x20], eax
push ebp
fldcw word [esp + 0x24]
push ebx
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x38]
add esi, 1
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x54]
mov dword [esp + 0x30], esi
fldcw word [esp + 0x2c]
call fcn.0040dc00
mov dword [esp + 0x7f8], 0xffffffff
mov eax, dword [esp + 0x50]
cmp eax, ebp
je 0x401889
push eax
call fcn.00413f05
add esp, 4
mov eax, dword [esp + 0x44]
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
call fcn.00413f05
mov ecx, dword [0x44fdd0]
imul ecx, dword [0x44fde0]
add esp, 4
lea edx, [esp + 0x20]
push edx
push ebp
mov dword [0x44fdd0], ecx
mov dword [esp + 0x28], ebp
call dword [sym.imp.ole32.dll_CreateBindCtx]
cmp eax, ebp
jl 0x401914
cmp dword [0x44fde4], ebp
mov dword [esp + 0x1c], ebp
je 0x401914
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x50]
call eax
cmp dword [esp + 0x1c], ebp
je 0x401914
lea ecx, [esp + 0x24]
push ecx
push 1
call dword [sym.imp.ole32.dll_CoGetMalloc]
cmp eax, ebp
jl 0x401914
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x14]
push ecx
push eax
call edx
mov ecx, dword [0x44fde0]
mov eax, dword [0x44fdd4]
mov esi, ecx
shl esi, 4
add esi, dword [0x44fde4]
cdq
add esi, dword [0x44fddc]
mov edi, dword [esp + 0x14]
idiv esi
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebp
mov dword [esp + 0x4c], 0x30
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], 0x4014e0
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
imul eax, ecx
add edi, eax
call esi
push 0x7f00
push ebp
mov dword [esp + 0x64], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0x60], eax
push 0x7f00
lea eax, [esp + 0xc8]
push ebp
mov dword [esp + 0x6c], 6
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], eax
call esi
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x74], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x4019cd
cmp dword [0x44fde4], ebp
je 0x4019cd
push 0x30
lea edx, [esp + 0xc8]
push edx
push edx
pop eax
push eax
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebp
push ebp
push ebp
push ebp
push 0x140
push 0x1e0
push bind
push bind
push 0xcf0000
push str.Service
lea ecx, [esp + 0xec]
push ecx
push ebp
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [0x44fde0]
mov edx, dword [0x44fde4]
mov eax, dword [0x44fdd4]
lea ecx, [edx + esi*2]
cdq
add ecx, esi
idiv ecx
push 0x34
lea edx, [esp + 0x48]
push ebp
push edx
add eax, esi
add edi, eax
mov dword [esp + 0x20], edi
call fcn.00423c00
movzx eax, si
add esp, 0xc
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x34
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], eax
call dword [sym.imp.COMCTL32.dll_CreatePropertySheetPageA]
cmp dword [0x44fde0], ebp
jne 0x401a5c
push eax
call dword [sym.imp.COMCTL32.dll_DestroyPropertySheetPage]
mov edx, dword [0x44fdd0]
mov ecx, dword [0x44fddc]
mov ebx, dword [esp + 0x18]
imul edx, ecx
cmp edx, dword [0x44fde8]
jne 0x401a95
mov esi, dword [0x44fdd4]
lea edx, [ecx + 1]
imul edx, dword [esp + 0x14]
movzx eax, bx
lea esi, [esi + eax*4]
add esi, eax
add esi, edx
mov dword [0x44fdd4], esi
cmp ecx, ebp
jne 0x401aa1
cmp dword [0x44fde4], ebp
je 0x401ae4
nop
push 1
pop esi
nop
push esi
push ebp
push ebp
push ebp
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
jne 0x401abf
mov dword [0x44fdd4], esi
lea ecx, [esp + 0x24]
push ecx
push 0x8004667e
push eax
mov dword [esp + 0x30], esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
or eax, eax
mov ecx, dword [0x44fddc]
je 0x401ae4
mov dword [0x44fdd0], ebp
mov edx, dword [esp + 0x14]
lea eax, [edx + edi]
lea edx, [ecx + 0xc]
imul edx, dword [0x44fdd4]
cmp eax, edx
mov dword [esp + 0x1c], eax
jne 0x401b1a
mov eax, dword [0x44fde4]
lea esi, [eax - 8]
mov eax, dword [0x44fde8]
sub edx, edx
div esi
add eax, dword [0x44fde0]
sub dword [0x44fdd4], eax
cmp dword [0x44fde4], ebp
push ecx
pop eax
je 0x401b37
push 0x4014e0
lea ecx, [esp + 0xc8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerA]
cmp eax, ebp
jne 0x401b41
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edi, dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
lea edx, [esp + 0x4dc]
push edx
push ebp
push str..Display1
sub esi, esi
call edi
test eax, eax
je 0x401b7e
lea ecx, [ecx]
add dword [0x44fdd0], 1
lea eax, [esp + 0x4dc]
push eax
add esi, 1
push esi
push str..Display1
call edi
test eax, eax
jne 0x401b60
push ebp
push ebp
push ebp
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateICA]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
pop esi
push 8
push esi
call edi
push 0xa
push esi
call edi
push 0xc
push esi
call edi
push 0x74
push esi
call edi
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edi, dword [0x44fde4]
cmp dword [esp + 0x14], edi
mov ecx, dword [0x44fddc]
mov esi, dword [0x44fde8]
jne 0x401bff
movzx eax, word [esp + 0x14]
add eax, ecx
imul eax, esi
imul eax, ecx
cdq
lea ebx, [ecx + 6]
idiv ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
movzx eax, byte [0x44fde0]
imul eax, dword [0x44fdd4]
cdq
idiv esi
mov edx, dword [esp + 0x24]
sub edx, eax
add ebx, edx
mov dword [esp + 0x18], ebx
lea edx, [ecx + 0xc]
imul edx, dword [0x44fdd4]
cmp dword [esp + 0x1c], edx
jne 0x401c28
lea ebx, [edi - 8]
sub edx, edx
push esi
pop eax
div ebx
mov ebx, dword [esp + 0x18]
add eax, dword [0x44fde0]
sub dword [0x44fdd4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [0x44fde0]
add edx, eax
cmp dword [esp + 0x14], edx
jne 0x401c56
movzx eax, word [0x44fde0]
cdq
idiv esi
xor edx, edx
imul eax, ecx
imul eax, ebx
div esi
add eax, edi
push eax
pop ebx
mov dword [esp + 0x18], ebx
cmp edi, ebp
mov eax, ecx
je 0x401c81
push 0x4014e0
lea eax, [esp + 0xc8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerA]
mov ecx, dword [0x44fddc]
mov edi, dword [0x44fde4]
mov esi, dword [0x44fde8]
cmp eax, ebp
jne 0x401c9d
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ecx, dword [0x44fddc]
mov edi, dword [0x44fde4]
mov esi, dword [0x44fde8]
mov eax, dword [0x44fdd0]
imul eax, ecx
lea edx, [esi + ecx]
cmp eax, edx
jne 0x401cc4
movzx eax, bx
lea edx, [ecx - 4]
imul edx, eax
imul edx, dword [esp + 0x14]
mov eax, esi
sub eax, edx
add dword [0x44fdd4], eax
cmp dword [esp + 0x14], edi
jne 0x401d01
mov eax, ecx
cdq
push eax
pop edi
movzx eax, word [esp + 0x14]
add eax, ecx
xor edi, edx
sub edi, edx
cdq
imul edi, esi
add ecx, 4
idiv ecx
push eax
pop ecx
movzx eax, byte [0x44fde0]
imul eax, dword [0x44fdd4]
cdq
idiv esi
sub ecx, eax
add ecx, ebx
lea ebx, [ecx + edi]
mov dword [esp + 0x18], ebx
push ebp
push ebp
push 3
push ebp
push ebp
push 0xc0000000
lea edx, [esp + 0xdc]
push edx
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
push ebp
mov esi, eax
lea eax, [esp + 0x28]
push eax
push 0xe
lea ecx, [esp + 0x38]
push ecx
push esi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
cmp eax, ebp
je 0x401d44
cmp dword [esp + 0x24], 0xe
jne 0x401d44
cmp word [esp + 0x2c], 0x4d42
je 0x401d4b
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ecx, dword [0x44fde0]
mov esi, dword [0x44fddc]
mov edi, dword [0x44fde8]
mov edx, ecx
imul edx, dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jne 0x401d83
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
imul edx, edi
movzx eax, cx
add edx, esi
add eax, edx
add ebx, eax
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
cmp edx, dword [0x44fde4]
jne 0x401dc7
push esi
pop eax
cdq
mov ebx, eax
movzx eax, word [esp + 0x14]
xor ebx, edx
add eax, esi
sub ebx, edx
imul ebx, edi
cdq
lea edi, [esi + 4]
idiv edi
push eax
pop edi
movzx eax, cl
imul eax, dword [0x44fdd4]
cdq
idiv dword [0x44fde8]
sub edi, eax
add edi, dword [esp + 0x18]
add edi, ebx
mov dword [esp + 0x18], edi
mov edi, dword [sym.imp.GDI32.dll_CreateDIBSection]
sub eax, eax
push ebp
mov dword [esp + 0x54], eax
push ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ecx
push ebp
lea ecx, [esp + 0x54]
push ecx
push esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x5c], 0x28
mov dword [esp + 0x6c], ebp
mov word [esp + 0x6a], 0x18
mov dword [esp + 0x7c], ebp
mov word [esp + 0x68], 1
call edi
push ebp
push ebp
lea edx, [esp + 0x28]
push edx
push ebp
lea eax, [esp + 0x54]
push eax
push esi
call edi
lea ecx, [esp + 0x24]
push ecx
push 0x43fcd4
push 0x4401
push ebp
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x38], ebp
call dword [sym.imp.ole32.dll_CoCreateInstance]
push 0x34
lea eax, [esp + 0x48]
push ebp
push eax
call fcn.00423c00
movzx ecx, word [0x44fde0]
add esp, 0xc
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x48], 0x34
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ecx
call dword [sym.imp.COMCTL32.dll_CreatePropertySheetPageA]
cmp dword [0x44fde0], ebp
jne 0x401ea8
push eax
call dword [sym.imp.COMCTL32.dll_DestroyPropertySheetPage]
push 4
call fcn.00413ed5
add esp, 4
cmp eax, ebp
je 0x401ec0
lea ecx, [esp + 0x44]
mov dword [eax], ecx
push eax
pop ebx
jmp 0x401ec2
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x7f8], 3
mov esi, dword [0x44fddc]
push 4
pop edx
push eax
pop eax
sub edx, esi
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
call fcn.00437300
mov edi, dword [0x44fde0]
mov ecx, edi
imul ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [0x44fdd4]
push edx
pop ecx
shr ecx, 0x1f
add ecx, edx
cdq
add ecx, edi
idiv ecx
imul eax, edi
cdq
idiv dword [0x44fde8]
mov edx, dword [esp + 0x14]
test edx, edx
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
faddp st(1)
fild dword [esp + 0x14]
jge 0x401f40
fadd qword [0x440f80]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
faddp st(1)
mov dword [esp + 0x24], eax
push ebp
fldcw word [esp + 0x28]
push ebx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x38]
add esi, 1
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x54]
mov dword [esp + 0x34], esi
fldcw word [esp + 0x2c]
call fcn.0040dc00
mov dword [esp + 0x7f8], 0xffffffff
mov eax, dword [esp + 0x50]
cmp eax, ebp
je 0x401fa0
push eax
call fcn.00413f05
add esp, 4
mov eax, dword [esp + 0x44]
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
call fcn.00413f05
mov ecx, dword [0x44fde0]
mov edx, dword [esp + 0x18]
mov esi, dword [0x44fddc]
mov edi, dword [0x44fde4]
lea eax, [ecx + edx]
add esp, 4
cmp dword [esp + 0x14], eax
jne 0x401ff6
mov ebx, dword [0x44fde8]
movzx eax, cx
cdq
idiv ebx
xor edx, edx
imul eax, esi
imul eax, dword [esp + 0x18]
div ebx
add eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [0x44fdd4]
push ecx
pop ebx
shl ebx, 4
cdq
add ebx, edi
add ebx, esi
idiv ebx
mov edx, dword [0x44fdd0]
imul edx, ecx
mov dword [0x44fdd0], edx
imul eax, ecx
add dword [esp + 0x14], eax
lea eax, [esp + 0x20]
push eax
push ebp
call dword [sym.imp.ole32.dll_CreateBindCtx]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x28]
push edx
push 0x44017c
push eax
mov dword [esp + 0x34], ebp
call dword [sym.imp.ole32.dll_MkParseDisplayName]
mov esi, dword [0x44fde4]
cmp esi, ebp
je 0x402063
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [0x44fde4]
mov ecx, dword [0x44fde0]
mov eax, dword [0x44fdd4]
mov edi, dword [0x44fddc]
cdq
lea ebx, [esi + ecx*8]
add ebx, edi
idiv ebx
push eax
pop edx
mov eax, dword [esp + 0x14]
add edx, ecx
add eax, edx
mov dword [esp + 0x14], eax
add eax, ecx
cmp dword [esp + 0x14], eax
mov eax, dword [0x44fde8]
jne 0x4020b0
movzx ebx, cx
imul ebx, eax
imul ebx, edi
add ebx, 1
imul ebx, dword [esp + 0x18]
add ebx, esi
mov dword [esp + 0x18], ebx
jmp 0x4020b4
mov ebx, dword [esp + 0x18]
mov edx, dword [0x44fdd0]
imul edx, edi
lea ecx, [eax + edi]
cmp edx, ecx
jne 0x4020dd
mov edx, dword [esp + 0x14]
movzx ecx, bx
sub eax, ecx
lea eax, [eax + edx + 4]
imul eax, dword [0x44fdd4]
mov dword [0x44fdd4], eax
lea ecx, [esp + 0x20]
push ecx
push ebp
call dword [sym.imp.ole32.dll_CreateBindCtx]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x28]
push eax
push 0x44017c
push ecx
mov dword [esp + 0x34], ebp
call dword [sym.imp.ole32.dll_MkParseDisplayName]
cmp dword [0x44fde4], ebp
je 0x40211b
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov esi, dword [0x44fddc]
cmp esi, ebp
jne 0x40212d
cmp dword [0x44fde4], ebp
je 0x402170
mov esi, 1
push esi
push ebp
push ebp
push ebp
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
jne 0x40214b
mov dword [0x44fdd4], esi
lea ecx, [esp + 0x24]
push ecx
push 0x8004667e
push eax
mov dword [esp + 0x30], esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
or eax, eax
mov esi, dword [0x44fddc]
je 0x402170
mov dword [0x44fdd0], ebp
mov edi, dword [esp + 0x14]
cmp edi, dword [0x44fde4]
mov ecx, dword [0x44fde0]
jne 0x4021a9
mov eax, dword [0x44fde8]
imul eax, esi
cdq
idiv ecx
movzx edx, word [esp + 0x14]
imul edx, esi
add eax, edx
mov edx, dword [0x44fdd4]
imul edx, ecx
add edx, ebx
lea ebx, [edx + eax]
mov dword [esp + 0x18], ebx
cmp dword [0x44fde4], ebp
push esi
pop eax
je 0x4021d2
push 0x4014e0
lea eax, [esp + 0xc8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerA]
mov esi, dword [0x44fddc]
mov ecx, dword [0x44fde0]
cmp eax, ebp
jne 0x4021e8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, dword [0x44fddc]
mov ecx, dword [0x44fde0]
mov edx, dword [esp + 0x14]
lea eax, [ecx + edx]
cmp edi, eax
jne 0x402210
movzx edx, cx
imul edx, dword [0x44fde8]
imul edx, esi
add edx, 1
imul edx, ebx
add edx, dword [0x44fde4]
mov dword [esp + 0x18], edx
mov eax, dword [0x44fde4]
lea edi, [eax + ecx*8]
mov eax, dword [0x44fdd4]
cdq
add edi, esi
idiv edi
mov dword [esp + 0x20], ebp
add eax, ecx
add dword [esp + 0x14], eax
lea ecx, [esp + 0x20]
push ecx
push ebp
call dword [sym.imp.ole32.dll_CreateBindCtx]
cmp eax, ebp
jl 0x402287
cmp dword [0x44fde4], ebp
mov dword [esp + 0x1c], ebp
je 0x402287
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov edx, dword [edx + 0x50]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x24]
push ebp
push ecx
push eax
call edx
cmp dword [esp + 0x1c], ebp
je 0x402287
lea eax, [esp + 0x24]
push eax
push 1
call dword [sym.imp.ole32.dll_CoGetMalloc]
cmp eax, ebp
jl 0x402287
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
mov eax, dword [0x44fddc]
cmp eax, ebp
lea esi, [eax + 1]
jne 0x4022a6
push 0x440198
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea ecx, [esp + 0x1c4]
push ecx
push esi
pop eax
mov edi, ecx
call fcn.00401380
push ebp
push ebp
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebp
push ebp
push ebp
push 3
push ebp
push ebp
push ebp
push 0xffffffffffffffff
push ebp
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov ecx, dword [0x44fde0]
cmp ecx, ebp
jne 0x402332
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00404c20
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.00404c20
lea eax, [esp + 0x2c]
lea edx, [esp + 0x84]
lea ecx, [esp + 0x44]
call fcn.00404b70
cmp dword [esp + 0x9c], 8
jb 0x40232c
mov eax, dword [esp + 0x88]
push eax
call fcn.00413f05
add esp, 4
mov ecx, dword [0x44fde0]
mov edi, dword [0x44fde4]
mov eax, dword [0x44fdd4]
mov esi, dword [0x44fddc]
lea edx, [ecx*4]
mov ebx, edi
sub ebx, edx
cdq
add ebx, esi
idiv ebx
push eax
pop edx
mov eax, dword [esp + 0x14]
add edx, ecx
add eax, edx
mov edx, ecx
imul edx, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], edx
jne 0x40238d
mov ebx, dword [esp + 0x18]
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
imul edx, dword [0x44fde8]
movzx eax, cx
add edx, esi
add eax, edx
add ebx, eax
mov dword [esp + 0x18], ebx
mov eax, dword [0x44fdd4]
lea edi, [edi + ecx*2]
cdq
add edi, ecx
idiv edi
mov edi, dword [sym.imp.GDI32.dll_CreateDIBSection]
push ebp
push ebp
lea edx, [esp + 0x4c]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x4c], 0x28
add eax, ecx
add dword [esp + 0x1c], eax
sub eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x2c]
push ecx
push ebp
push edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x78], eax
push esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], ebp
mov word [esp + 0x6a], 0x18
mov dword [esp + 0x7c], ebp
mov word [esp + 0x68], 1
call edi
push ebp
push ebp
lea eax, [esp + 0x28]
push eax
push ebp
lea ecx, [esp + 0x54]
push ecx
push esi
call edi
cmp dword [0x44fde8], ebp
jne 0x402550
push 1
push ebp
push ebp
push ebp
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40244c
mov dword [0x44fdd4], ebp
mov dx, word [0x44fde0]
lea eax, [esp + 0x86]
mov dword [esp + 0x88], ebp
mov word [esp + 0x86], dx
mov ecx, dword [esp + 0x86]
push eax
push ecx
push esi
mov word [esp + 0x90], 2
call dword [sym.imp.WS2_32.dll_WSAHtons]
mov eax, dword [esp + 0x88]
mov edi, dword [sym.imp.WS2_32.dll_WSAHtonl]
lea edx, [esp + 0x88]
push edx
push eax
push esi
call edi
mov ebx, dword [sym.imp.WS2_32.dll_bind]
push 0x10
lea ecx, [esp + 0x88]
push ecx
push esi
call ebx
or eax, eax
mov ecx, dword [0x44fde0]
je 0x4024bf
mov dword [0x44fdd4], ecx
cmp dword [0x44fde8], ebp
jne 0x402556
push 1
push ebp
push ebp
push ebp
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
push eax
pop esi
cmp esi, 0xffffffff
jne 0x4024e7
mov dword [0x44fdd4], ebp
mov dx, word [0x44fde0]
lea eax, [esp + 0x86]
mov dword [esp + 0x88], ebp
mov word [esp + 0x86], dx
mov ecx, dword [esp + 0x86]
push eax
push ecx
push esi
mov word [esp + 0x90], 2
call dword [sym.imp.WS2_32.dll_WSAHtons]
mov eax, dword [esp + 0x88]
lea edx, [esp + 0x88]
push edx
push eax
push esi
call edi
push 0x10
lea ecx, [esp + 0x88]
push ecx
push esi
call ebx
test eax, eax
je 0x402550
mov ecx, dword [0x44fde0]
mov dword [0x44fdd4], ecx
jmp 0x402556
mov ecx, dword [0x44fde0]
mov edx, dword [0x44fde4]
mov eax, dword [0x44fdd4]
lea esi, [edx + ecx*8]
add esi, dword [0x44fddc]
cdq
idiv esi
mov dword [esp + 0x20], ebp
add eax, ecx
add dword [esp + 0x14], eax
lea eax, [esp + 0x20]
push eax
push ebp
call dword [sym.imp.ole32.dll_CreateBindCtx]
cmp eax, ebp
jl 0x4025d2
cmp dword [0x44fde4], ebp
mov dword [esp + 0x1c], ebp
je 0x4025d2
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x50]
call eax
cmp dword [esp + 0x1c], ebp
je 0x4025d2
lea ecx, [esp + 0x24]
push ecx
push 1
call dword [sym.imp.ole32.dll_CoGetMalloc]
cmp eax, ebp
jl 0x4025d2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x14]
push ecx
push eax
call edx
mov esi, dword [0x44fde4]
push 0x206
lea eax, [esp + 0x5ea]
push ebp
push eax
mov word [esp + 0x5f0], bp
call fcn.00423c00
mov edi, dword [sym.imp.KERNEL32.DLL_IsProcessorFeaturePresent]
add esp, 0xc
push 3
call edi
or eax, eax
je 0x40260e
mov dword [0x44fdd0], 2
push 6
call edi
or eax, eax
je 0x402620
mov dword [0x44fdd0], 1
push 0xa
call edi
or eax, eax
je 0x40262e
mov dword [0x44fdd4], ebp
mov edx, dword [0x44fde0]
lea ecx, [esp + 0x5e4]
push ecx
push edx
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov eax, dword [0x44fddc]
cmp eax, ebp
je 0x402699
mov ecx, dword [esp + 0x2c]
push ebp
push ecx
push eax
pop edi
call sub.AVIFIL32.dll_AVIStreamGetFrameOpen
push eax
pop esi
cmp esi, ebp
jne 0x402675
mov dword [0x44fdd0], 1
push edi
push esi
call sub.AVIFIL32.dll_AVIStreamGetFrame
cmp eax, ebp
jne 0x402686
push esi
call sub.AVIFIL32.dll_AVIStreamGetFrameClose
push ebp
push ebp
push ebp
push str.Display
call dword [sym.imp.GDI32.dll_CreateDCA]
mov eax, dword [0x44fddc]
cmp eax, ebp
lea esi, [eax + 1]
jne 0x4026b3
push 0x440198
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea edx, [esp + 0x1c4]
push edx
mov eax, esi
push edx
pop edi
call fcn.00401380
mov ecx, dword [0x44fdd4]
mov eax, dword [0x44fddc]
mov esi, dword [esp + 0x14]
lea edx, [ecx + eax]
mov eax, dword [esp + 0x14]
imul edx, ecx
add eax, esi
cmp eax, edx
jne 0x402703
mov edx, dword [0x44fde4]
mov eax, dword [0x44fde8]
lea esi, [edx + 4]
sub edx, edx
div esi
add eax, dword [0x44fde0]
sub ecx, eax
mov dword [0x44fdd4], ecx
push 4
call fcn.00413ed5
add esp, 4
cmp eax, ebp
je 0x40271b
lea ecx, [esp + 0x44]
mov dword [eax], ecx
mov ebx, eax
jmp 0x40271d
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x7f8], 5
mov esi, dword [0x44fddc]
mov edx, 4
sub edx, esi
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
call fcn.00437300
mov edi, dword [0x44fde0]
mov ecx, edi
imul ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [0x44fdd4]
push edx
pop ecx
shr ecx, 0x1f
add ecx, edx
cdq
add ecx, edi
idiv ecx
imul eax, edi
cdq
idiv dword [0x44fde8]
mov edx, dword [esp + 0x14]
test edx, edx
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
faddp st(1)
fild dword [esp + 0x14]
jge 0x40279b
fadd qword [0x440f80]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
faddp st(1)
mov dword [esp + 0x24], eax
push ebp
fldcw word [esp + 0x28]
push ebx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x38]
add esi, 1
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x54]
mov dword [esp + 0x34], esi
fldcw word [esp + 0x2c]
call fcn.0040dc00
mov dword [esp + 0x7f8], 0xffffffff
mov eax, dword [esp + 0x50]
cmp eax, ebp
je 0x4027fb
push eax
call fcn.00413f05
add esp, 4
mov eax, dword [esp + 0x44]
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
call fcn.00413f05
mov esi, dword [0x44fdd0]
mov ecx, dword [0x44fddc]
mov eax, dword [0x44fde8]
push esi
pop edi
imul edi, ecx
lea edx, [eax + ecx]
add esp, 4
cmp edi, edx
jne 0x402849
movzx edx, word [esp + 0x18]
add ecx, 0xfffffffc
imul ecx, edx
imul ecx, dword [esp + 0x14]
sub eax, ecx
add dword [0x44fdd4], eax
mov ecx, dword [0x44fde0]
mov eax, dword [0x44fde4]
imul esi, ecx
lea edi, [eax + ecx*2]
mov eax, dword [0x44fdd4]
cdq
add edi, ecx
idiv edi
mov dword [0x44fdd0], esi
mov esi, dword [sym.imp.ole32.dll_CreateBindCtx]
mov dword [esp + 0x20], ebp
add eax, ecx
add dword [esp + 0x14], eax
lea ecx, [esp + 0x20]
push ecx
push ebp
call esi
cmp eax, ebp
jl 0x4028d1
cmp dword [0x44fde4], ebp
mov dword [esp + 0x1c], ebp
je 0x4028d1
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov edx, dword [edx + 0x50]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x24]
push ebp
push ecx
push eax
call edx
cmp dword [esp + 0x1c], ebp
je 0x4028d1
lea eax, [esp + 0x24]
push eax
push 1
call dword [sym.imp.ole32.dll_CoGetMalloc]
cmp eax, ebp
jl 0x4028d1
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
lea ecx, [esp + 0x20]
push ecx
push ebp
call esi
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x28]
push eax
push 0x44017c
push ecx
mov dword [esp + 0x34], ebp
call dword [sym.imp.ole32.dll_MkParseDisplayName]
cmp dword [0x44fde4], ebp
je 0x40290b
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
push ebp
push ebp
push 3
push ebp
push ebp
push 0xc0000000
lea ecx, [esp + 0xdc]
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
push ebp
lea edx, [esp + 0x28]
push edx
mov esi, eax
push 0xe
lea eax, [esp + 0x38]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
cmp eax, ebp
je 0x40294e
cmp dword [esp + 0x24], 0xe
jne 0x40294e
cmp word [esp + 0x2c], 0x4d42
je 0x402955
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov edx, dword [0x44fdd0]
mov ecx, dword [0x44fddc]
imul edx, ecx
cmp edx, dword [0x44fde8]
jne 0x40298c
movzx eax, word [esp + 0x18]
mov esi, dword [0x44fdd4]
lea edx, [ecx + 1]
imul edx, dword [esp + 0x14]
lea esi, [esi + eax*4]
add esi, eax
add esi, edx
mov dword [0x44fdd4], esi
cmp ecx, ebp
lea esi, [ecx + 1]
jne 0x4029a6
push 0x440198
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea eax, [esp + 0x1c4]
push eax
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
mov esi, dword [0x44fde4]
push 0x206
lea ecx, [esp + 0x5ea]
push ebp
push ecx
mov word [esp + 0x5f0], bp
call fcn.00423c00
mov edi, dword [sym.imp.KERNEL32.DLL_IsProcessorFeaturePresent]
add esp, 0xc
push 3
call edi
test eax, eax
je 0x4029f8
mov dword [0x44fdd0], 2
push 6
call edi
or eax, eax
je 0x402a0a
mov dword [0x44fdd0], 1
push 0xa
call edi
test eax, eax
je 0x402a18
mov dword [0x44fdd4], ebp
mov eax, dword [0x44fde0]
lea edx, [esp + 0x5e4]
push edx
push eax
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea ecx, [esp + 0x44]
push ecx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov ecx, dword [0x44fde0]
mov esi, dword [0x44fde4]
mov eax, dword [0x44fdd4]
mov edi, dword [0x44fddc]
push ecx
pop ebx
shl ebx, 4
cdq
add ebx, esi
add ebx, edi
idiv ebx
push ecx
push esi
imul eax, ecx
add dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push edi
pop eax
sub eax, 1
jne 0x402a99
push 8
call fcn.00421ba2
add esp, 4
push esi
call dword [sym.imp.USER32.dll_GetMenu]
mov edx, dword [0x44fde0]
push ebp
push edx
push ebp
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
lea eax, [esp + 0x20]
push eax
push ebp
call dword [sym.imp.ole32.dll_CreateBindCtx]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x28]
push edx
push 0x44017c
push eax
mov dword [esp + 0x34], ebp
call dword [sym.imp.ole32.dll_MkParseDisplayName]
cmp dword [0x44fde4], ebp
je 0x402ad7
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [0x44fde0]
mov eax, dword [0x44fde4]
mov edi, dword [0x44fdd4]
mov esi, dword [0x44fddc]
lea ebx, [eax + ecx*4]
add ebx, ecx
push edi
pop eax
cdq
add ebx, esi
idiv ebx
mov ebx, dword [0x44fde8]
mov edx, eax
mov eax, dword [esp + 0x14]
add edx, ecx
add eax, edx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
add eax, edx
lea edx, [esi + 0xc]
imul edx, edi
cmp eax, edx
mov dword [esp + 0x1c], eax
jne 0x402b48
mov eax, dword [0x44fde4]
add eax, 0xfffffff8
mov dword [esp + 0x24], eax
push ebx
pop eax
mov ebx, dword [esp + 0x24]
sub edx, edx
div ebx
mov ebx, dword [0x44fde8]
add eax, ecx
sub edi, eax
mov dword [0x44fdd4], edi
mov edx, dword [esp + 0x14]
cmp edx, dword [0x44fde4]
jne 0x402b79
mov eax, ecx
lea ebx, [esi + 0x10]
cdq
idiv ebx
movzx edx, word [esp + 0x14]
mov ebx, dword [0x44fde8]
add edx, ebx
imul edx, esi
sub edx, eax
add edx, edi
imul edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x14]
lea edx, [ecx + eax]
cmp dword [esp + 0x14], edx
jne 0x402ba2
movzx eax, cx
cdq
idiv ebx
sub edx, edx
imul eax, esi
imul eax, dword [esp + 0x18]
div ebx
add eax, dword [0x44fde4]
mov dword [esp + 0x18], eax
mov ecx, dword [0x44fdd0]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x80
lea eax, [esp + 0x4e0]
push eax
push ecx
push ebp
call esi
mov eax, dword [0x44fdd4]
push 0x80
lea edx, [esp + 0x3d8]
push edx
push eax
push ebp
call esi
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edx, dword [0x44fde0]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
lea ecx, [esp + 0x4dc]
push ecx
push edx
mov esi, eax
push ebp
push esi
call edi
mov ecx, dword [0x44fde0]
lea eax, [esp + 0x3d4]
push eax
push ecx
push ebp
push esi
call edi
call dword [sym.imp.USER32.dll_GetMessagePos]
mov edx, dword [0x44fde4]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [esp + 0x14]
cmp eax, dword [0x44fde4]
mov ecx, dword [0x44fddc]
jne 0x402c58
mov eax, dword [0x44fde0]
cdq
lea esi, [ecx + 4]
idiv esi
movzx edx, word [esp + 0x14]
add edx, dword [0x44fde8]
imul edx, ecx
sub edx, eax
sub edx, dword [0x44fdd4]
imul edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
cmp ecx, ebp
lea esi, [ecx + 1]
jne 0x402c72
push 0x440198
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea eax, [esp + 0x1c4]
push eax
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
mov esi, dword [esp + 0x2c]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push ebp
push 0xfffffffffffffffa
push esi
call edi
push eax
push ebp
push esi
push 0x19
push 0x50
push 0x32
push 0xc8
push 0x50812081
push 0x44017b
push str.edit
push ebp
call dword [sym.imp.USER32.dll_CreateWindowExA]
push ebp
push ebp
push ebp
push eax
push 0xfffffffffffffffa
push esi
call edi
push eax
push 0x64
push esi
push 0x19
push 0x14
push 0x32
push 0xc8
push 0x50820026
call dword [sym.imp.COMCTL32.dll_CreateUpDownControl]
push 4
push ebp
push ebp
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
push ebp
push ebp
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x2c]
push edx
push ebp
push eax
pop esi
lea eax, [esp + 0x40]
push eax
push 3
push 0x30
push ebp
push esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
call dword [sym.imp.ADVAPI32.dll_EnumServicesStatusExA]
cmp eax, ebp
je 0x402d22
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xea
jne 0x402d33
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00413f00
add esp, 4
mov dword [esp + 0x2c], eax
cmp dword [0x44fddc], ebp
jbe 0x402d41
mov dword [0x44fdd0], ebp
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov esi, dword [0x44fde0]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ecx, dword [0x44fddc]
lea eax, [esi + edx]
cmp ebx, eax
mov eax, dword [0x44fde8]
jne 0x402d83
movzx edx, si
imul edx, eax
imul edx, ecx
add edx, 1
imul edx, dword [esp + 0x18]
add edx, dword [0x44fde4]
mov dword [esp + 0x18], edx
cmp ecx, ebp
je 0x402dd4
mov eax, dword [esp + 0x2c]
push ebp
push eax
mov edi, ecx
call sub.AVIFIL32.dll_AVIStreamGetFrameOpen
mov esi, eax
cmp esi, ebp
jne 0x402da4
mov dword [0x44fdd0], 1
push edi
push esi
call sub.AVIFIL32.dll_AVIStreamGetFrame
cmp eax, ebp
jne 0x402db5
push esi
call sub.AVIFIL32.dll_AVIStreamGetFrameClose
push ebp
push ebp
push ebp
push str.Display
call dword [sym.imp.GDI32.dll_CreateDCA]
mov ecx, dword [0x44fddc]
mov esi, dword [0x44fde0]
mov eax, dword [0x44fde8]
cmp ebx, dword [0x44fde4]
mov edi, dword [0x44fdd4]
jne 0x402e06
imul eax, ecx
cdq
idiv esi
movzx edx, word [esp + 0x14]
imul edx, ecx
add eax, edx
push edi
pop edx
imul edx, esi
add edx, dword [esp + 0x18]
add edx, eax
mov eax, dword [0x44fde8]
mov dword [esp + 0x18], edx
mov ebx, dword [0x44fdd0]
imul ebx, ecx
lea edx, [eax + ecx]
cmp ebx, edx
mov ebx, dword [esp + 0x14]
jne 0x402e38
movzx edx, word [esp + 0x18]
imul edx, eax
lea eax, [ecx - 4]
imul eax, ebx
add edx, eax
mov eax, dword [0x44fde8]
imul edi, edx
mov dword [0x44fdd4], edi
add ecx, 0xc
imul ecx, edi
cmp dword [esp + 0x1c], ecx
jne 0x402e5b
mov ecx, dword [0x44fde4]
add ecx, 0xfffffff8
sub edx, edx
div ecx
add eax, esi
sub edi, eax
mov dword [0x44fdd4], edi
push 0x34
lea edx, [esp + 0x48]
push ebp
push edx
call fcn.00423c00
mov edi, dword [sym.imp.COMCTL32.dll_CreatePropertySheetPageA]
movzx eax, si
add esp, 0xc
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x34
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], eax
call edi
mov esi, dword [0x44fde0]
cmp esi, ebp
jne 0x402ea2
push eax
call dword [sym.imp.COMCTL32.dll_DestroyPropertySheetPage]
mov esi, dword [0x44fde0]
cmp ebx, dword [0x44fde4]
jne 0x402ed8
mov ecx, dword [0x44fddc]
mov eax, dword [0x44fde8]
imul eax, ecx
cdq
idiv esi
movzx edx, word [esp + 0x14]
imul edx, ecx
mov ecx, dword [0x44fdd4]
imul ecx, esi
add ecx, dword [esp + 0x18]
add eax, edx
add ecx, eax
mov dword [esp + 0x18], ecx
push 0x34
lea edx, [esp + 0x48]
push ebp
push edx
call fcn.00423c00
movzx eax, si
add esp, 0xc
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x34
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], eax
call edi
mov ecx, dword [0x44fde0]
cmp ecx, ebp
jne 0x402f19
push eax
call dword [sym.imp.COMCTL32.dll_DestroyPropertySheetPage]
mov ecx, dword [0x44fde0]
mov esi, dword [0x44fdd4]
mov edx, dword [0x44fddc]
lea eax, [esi + edx]
imul eax, esi
cmp dword [esp + 0x1c], eax
jne 0x402f4d
mov edx, dword [0x44fde4]
mov eax, dword [0x44fde8]
lea edi, [edx + 4]
xor edx, edx
div edi
add eax, ecx
sub esi, eax
mov dword [0x44fdd4], esi
mov eax, dword [0x44fdd0]
push ecx
pop edx
imul eax, ecx
imul edx, dword [esp + 0x14]
cmp ebx, edx
mov dword [0x44fdd0], eax
jne 0x402f8a
mov esi, dword [esp + 0x18]
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
imul edx, dword [0x44fde8]
add edx, dword [0x44fddc]
movzx eax, cx
add eax, edx
add esi, eax
mov dword [esp + 0x18], esi
push 1
push ebp
push ebp
push ebp
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
push eax
pop esi
cmp esi, 0xffffffff
jne 0x402fac
mov ecx, dword [0x44fde0]
mov dword [0x44fdd4], ecx
lea edx, [esp + 0xc4]
push edx
mov word [esp + 0x88], 2
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esp + 0x88], eax
mov eax, dword [0x44fddc]
add eax, 0x40
lea ecx, [esp + 0x86]
mov word [esp + 0x86], ax
mov edx, dword [esp + 0x86]
push ecx
push edx
push esi
call dword [sym.imp.WS2_32.dll_WSAHtons]
push pe_nt_image_headers32
call fcn.00413f00
add esp, 4
push ebp
push ebp
push 0x10
mov dword [esp + 0x34], eax
lea eax, [esp + 0x90]
push eax
push ebp
lea ecx, [esp + 0x40]
push ecx
push 1
lea edx, [esp + 0x40]
push edx
push esi
mov dword [esp + 0x48], pe_nt_image_headers32
call dword [sym.imp.WS2_32.dll_WSASendTo]
test eax, eax
je 0x403035
mov dword [0x44fdd4], ebp
mov eax, dword [esp + 0x28]
push eax
call fcn.00413f05
add esp, 4
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov edx, dword [0x44fdd0]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x80
lea ecx, [esp + 0x3d8]
push ecx
push edx
push ebp
call esi
mov ecx, dword [0x44fdd4]
push 0x80
lea eax, [esp + 0x4e0]
push eax
push ecx
push ebp
call esi
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
mov esi, eax
mov eax, dword [0x44fde0]
lea edx, [esp + 0x3d4]
push edx
push eax
push ebp
push esi
call edi
mov edx, dword [0x44fde0]
lea ecx, [esp + 0x4dc]
push ecx
push edx
push ebp
push esi
call edi
call dword [sym.imp.USER32.dll_GetMessagePos]
mov eax, dword [0x44fde4]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov esi, dword [0x44fde4]
cmp ebx, esi
mov ecx, dword [0x44fddc]
mov edi, dword [0x44fde0]
jne 0x4030fc
mov eax, dword [0x44fdd0]
imul eax, edi
cdq
lea ebx, [ecx + 1]
idiv ebx
movzx edx, word [esp + 0x14]
add edx, ecx
imul edx, ecx
lea eax, [eax + edx*4]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
add ecx, 0xc
imul ecx, dword [0x44fdd4]
cmp dword [esp + 0x1c], ecx
jne 0x403120
mov eax, dword [0x44fde8]
add esi, 0xfffffff8
xor edx, edx
div esi
add eax, edi
sub dword [0x44fdd4], eax
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebp
mov dword [esp + 0x4c], 0x30
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], 0x4014e0
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
call esi
push 0x7f00
push ebp
mov dword [esp + 0x64], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f00
lea ecx, [esp + 0xc8]
push ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 6
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ecx
call esi
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x74], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x4031b1
cmp dword [0x44fde4], ebp
je 0x4031b1
push 0x30
lea eax, [esp + 0xc8]
push eax
push eax
pop ecx
push ecx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebp
push ebp
push ebp
push ebp
push 0x140
push 0x1e0
push bind
push bind
push 0xcf0000
push str.Service
lea edx, [esp + 0xec]
push edx
push ebp
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov eax, dword [0x44fddc]
cmp eax, ebp
lea esi, [eax + 1]
jne 0x403201
push 0x440198
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea eax, [esp + 0x1c4]
push eax
push esi
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea ecx, [esp + 0x2c]
push ecx
push 0x43fcd4
push 0x4401
push ebp
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x40], ebp
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, dword [0x44fddc]
mov ebx, dword [0x44fdd0]
mov eax, dword [0x44fde8]
imul ebx, edi
mov esi, dword [0x44fdd4]
add eax, edi
cmp ebx, eax
jne 0x403278
movzx edx, word [esp + 0x18]
mov eax, dword [0x44fde8]
lea ecx, [edi - 4]
imul ecx, edx
imul ecx, dword [esp + 0x14]
sub eax, ecx
add esi, eax
mov dword [0x44fdd4], esi
mov ecx, dword [0x44fde8]
cmp ebx, ecx
jne 0x40329c
movzx eax, word [esp + 0x18]
lea edx, [edi + 1]
imul edx, dword [esp + 0x14]
lea esi, [esi + eax*4]
add esi, eax
add esi, edx
mov dword [0x44fdd4], esi
mov eax, dword [esp + 0x14]
cmp eax, dword [0x44fde4]
jne 0x4032d6
mov eax, dword [0x44fdd0]
imul eax, dword [0x44fde0]
cdq
lea ecx, [edi + 1]
idiv ecx
movzx edx, word [esp + 0x14]
mov ecx, dword [0x44fde8]
add edx, edi
imul edx, edi
lea eax, [eax + edx*4]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
lea eax, [ecx + edi]
cmp ebx, eax
jne 0x403330
fild dword [0x44fddc]
call fcn.00437830
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
mov edx, dword [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x2c], eax
lea eax, [edx + 4]
fldcw word [esp + 0x2c]
movzx edx, word [esp + 0x18]
imul eax, edx
fistp qword [esp + 0x2c]
fldcw word [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
add ecx, dword [0x44fde8]
add eax, ecx
mov ecx, dword [0x44fde8]
imul esi, eax
mov dword [0x44fdd4], esi
lea eax, [ecx + edi]
cmp ebx, eax
jne 0x403352
movzx eax, word [esp + 0x18]
imul eax, ecx
lea ecx, [edi - 4]
imul ecx, dword [esp + 0x14]
add eax, ecx
imul esi, eax
mov dword [0x44fdd4], esi
cmp edi, ebp
lea ebx, [edi + 1]
jne 0x40336c
push 0x440198
mov eax, ebx
lea edi, [esp + 0x1c8]
call fcn.00401380
lea edx, [esp + 0x1c4]
push edx
push ebx
pop eax
mov edi, edx
call fcn.00401380
mov ebx, dword [0x44fde4]
cmp dword [esp + 0x14], ebx
mov ecx, dword [0x44fddc]
mov edi, dword [0x44fde0]
jne 0x4033b9
mov eax, dword [0x44fde8]
imul eax, ecx
cdq
idiv edi
movzx edx, word [esp + 0x14]
imul edx, ecx
add eax, edx
mov edx, esi
imul edx, edi
add edx, dword [esp + 0x18]
add edx, eax
mov dword [esp + 0x18], edx
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
add eax, ecx
push eax
pop ebx
push esi
pop eax
cdq
idiv ebx
push eax
pop ebx
push edi
pop eax
cdq
idiv dword [0x44fde8]
lea edx, [ecx + 0xc]
imul edx, esi
sub ebx, eax
mov eax, dword [esp + 0x14]
add eax, ebx
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x14]
add esi, eax
cmp esi, edx
jne 0x403410
mov eax, dword [0x44fdd0]
mov edx, dword [0x44fde8]
add edx, eax
add edx, edi
mov dword [0x44fdd4], edx
mov esi, dword [0x44fde4]
push 0xfffffffffffffff0
push esi
mov edi, ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp edi, ebp
je 0x40342a
and eax, 0xffffffbf
jmp 0x40342d
or eax, 0x40
mov ebx, dword [sym.imp.USER32.dll_SetWindowLongA]
push eax
push 0xfffffffffffffff0
push esi
call ebx
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp edi, ebp
je 0x40344b
and eax, 0xfffffff7
jmp 0x40344e
or eax, 8
push eax
push 0xfffffffffffffff0
push esi
call ebx
mov ecx, dword [0x44fde0]
mov eax, dword [esp + 0x14]
mov esi, dword [0x44fddc]
lea edx, [ecx + eax]
cmp dword [esp + 0x14], edx
jne 0x40348f
mov edi, dword [0x44fde8]
movzx eax, cx
cdq
idiv edi
xor edx, edx
imul eax, esi
imul eax, dword [esp + 0x18]
div edi
add eax, dword [0x44fde4]
mov dword [esp + 0x18], eax
mov edi, dword [sym.imp.GDI32.dll_CreateDIBSection]
sub eax, eax
push ebp
mov dword [esp + 0x54], eax
push ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ecx
push ebp
lea ecx, [esp + 0x54]
push ecx
push esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x5c], 0x28
mov dword [esp + 0x6c], ebp
mov word [esp + 0x6a], 0x18
mov dword [esp + 0x7c], ebp
mov word [esp + 0x68], 1
call edi
push ebp
push ebp
lea edx, [esp + 0x2c]
push edx
push ebp
lea eax, [esp + 0x54]
push eax
push esi
call edi
mov eax, dword [0x44fdd0]
cmp eax, ebp
mov ecx, dword [0x44fddc]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
jne 0x40352d
push 1
pushal
popal
pop eax
mov dword [esp + 0x20], eax
push eax
push ecx
push ebp
push ebp
call dword [sym.imp.OPENGL32.dll_glViewport]
push 0x1701
call dword [sym.imp.OPENGL32.dll_glMatrixMode]
call dword [sym.imp.OPENGL32.dll_glLoadIdentity]
fild dword [esp + 0x20]
sub esp, 0x20
fstp qword [esp + 0x18]
fldz
fst qword [esp + 0x10]
fild dword [esp + 0x4c]
fstp qword [esp + 8]
fstp qword [esp]
call sub.GLU32.dll_gluOrtho2D
push 4
call fcn.00413ed5
add esp, 4
cmp eax, ebp
je 0x403581
lea ecx, [esp + 0x44]
mov dword [eax], ecx
push eax
pop ebx
jmp 0x403583
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x7f8], 7
mov esi, dword [0x44fddc]
push 4
nop
pop edx
nop
sub edx, esi
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
call fcn.00437300
mov edi, dword [0x44fde0]
mov ecx, edi
imul ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [0x44fdd4]
push edx
pop ecx
shr ecx, 0x1f
add ecx, edx
cdq
add ecx, edi
idiv ecx
imul eax, edi
cdq
idiv dword [0x44fde8]
mov edx, dword [esp + 0x14]
or edx, edx
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
faddp st(1)
fild dword [esp + 0x14]
jge 0x403601
fadd qword [0x440f80]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
faddp st(1)
mov dword [esp + 0x2c], eax
push ebp
fldcw word [esp + 0x30]
push ebx
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x30]
add esi, 1
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x54]
mov dword [esp + 0x3c], esi
fldcw word [esp + 0x2c]
call fcn.0040dc00
mov dword [esp + 0x7f8], 0xffffffff
mov eax, dword [esp + 0x50]
cmp eax, ebp
je 0x403661
push eax
call fcn.00413f05
add esp, 4
mov eax, dword [esp + 0x44]
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
call fcn.00413f05
mov ecx, dword [0x44fdd0]
mov edx, dword [0x44fde0]
mov edi, dword [esp + 0x18]
imul ecx, edx
mov esi, dword [0x44fddc]
add esp, 4
cmp edi, dword [0x44fde4]
mov dword [0x44fdd0], ecx
jne 0x4036c2
mov eax, ecx
imul eax, edx
cdq
lea ebx, [esi + 1]
idiv ebx
movzx edx, word [esp + 0x14]
add edx, esi
imul edx, esi
lea eax, [eax + edx*4]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [0x44fde8]
imul ecx, esi
lea edx, [eax + esi]
cmp ecx, edx
jne 0x4036e7
movzx ecx, word [esp + 0x18]
add esi, 0xfffffff9
imul esi, ecx
imul esi, edi
sub eax, esi
add dword [0x44fdd4], eax
push ebp
push ebp
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebp
push ebp
push ebp
push 3
push ebp
push ebp
push ebp
push 0xffffffffffffffff
push ebp
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov eax, dword [0x44fdd0]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x80
lea edx, [esp + 0x3d8]
push edx
push eax
push ebp
call esi
mov edx, dword [0x44fdd4]
push 0x80
lea ecx, [esp + 0x4e0]
push ecx
push edx
push ebp
call esi
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov ecx, dword [0x44fde0]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
mov esi, eax
lea eax, [esp + 0x3d4]
push eax
push ecx
push ebp
push esi
call edi
mov eax, dword [0x44fde0]
lea edx, [esp + 0x4dc]
push edx
push eax
push ebp
push esi
call edi
call dword [sym.imp.USER32.dll_GetMessagePos]
mov ecx, dword [0x44fde4]
push ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [0x44fddc]
mov esi, dword [sym.imp.KERNEL32.DLL_GetPrivateProfileStringA]
lea edx, [esp + 0xc4]
push edx
push eax
lea ecx, [esp + 0x3dc]
push ecx
push 0x4401d0
push str.Check
push str.Settings
call esi
lea edx, [esp + 0x3d4]
push edx
call fcn.00421fbb
add esp, 4
cmp eax, ebp
jle 0x4037c7
mov edx, eax
shl edx, 4
sub edx, eax
add edx, edx
add edx, edx
jmp 0x403801
mov ecx, dword [0x44fddc]
lea eax, [esp + 0xc4]
push eax
push ecx
lea edx, [esp + 0x3dc]
push edx
push 0x4401dc
push str.Check
push str.Settings
call esi
lea eax, [esp + 0x3d4]
push eax
call fcn.00421fbb
add esp, 4
push eax
pop edx
mov ecx, dword [0x44fde4]
cmp ecx, ebp
mov esi, dword [0x44fddc]
jne 0x403815
cmp esi, ebp
je 0x40382c
cmp edx, ebp
jle 0x40382c
mov edi, dword [sym.imp.KERNEL32.DLL_Sleep]
push edx
pop esi
imul esi, esi, 0x3e8
push esi
call edi
jmp 0x403827
mov edi, dword [0x44fde0]
mov eax, dword [0x44fdd4]
lea edx, [edi*4]
sub ecx, edx
cdq
add ecx, esi
idiv ecx
lea ebx, [esi + 1]
add eax, edi
add dword [esp + 0x14], eax
cmp esi, ebp
jne 0x403865
push 0x440198
mov eax, ebx
lea edi, [esp + 0x1c8]
call fcn.00401380
lea eax, [esp + 0x1c4]
push eax
push ebx
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
cmp dword [0x44fddc], ebp
movzx ecx, word [0x44fde0]
mov dword [esp + 0x44], 0x34
mov dword [esp + 0x48], 0x40
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ecx
je 0x4038ad
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.COMCTL32.dll_CreatePropertySheetPageA]
mov edi, dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
lea eax, [esp + 0x4dc]
push eax
push ebp
push str..Display1
sub esi, esi
call edi
test eax, eax
je 0x4038ec
push 1
pop ebx
push eax
pop eax
mov edi, edi
add dword [0x44fdd0], ebx
lea ecx, [esp + 0x4dc]
push ecx
add esi, ebx
push esi
push str..Display1
call edi
or eax, eax
jne 0x4038d0
push ebp
push ebp
push ebp
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateICA]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
pop esi
push 8
push esi
call edi
push 0xa
push esi
call edi
push 0xc
push esi
call edi
push 0x74
push esi
call edi
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [esp + 0x14]
cmp edx, dword [0x44fde4]
mov esi, dword [0x44fddc]
mov ecx, dword [0x44fde0]
jne 0x403971
mov eax, esi
cdq
mov edi, eax
movzx eax, word [esp + 0x14]
xor edi, edx
add eax, esi
sub edi, edx
cdq
imul edi, dword [0x44fde8]
lea ebx, [esi + 4]
idiv ebx
mov ebx, eax
movzx eax, cl
imul eax, dword [0x44fdd4]
cdq
idiv dword [0x44fde8]
sub ebx, eax
add ebx, dword [esp + 0x18]
add ebx, edi
mov dword [esp + 0x18], ebx
mov eax, dword [0x44fde4]
lea edi, [eax + ecx*8]
mov eax, dword [0x44fdd4]
cdq
add edi, esi
idiv edi
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebp
mov dword [esp + 0x4c], 0x30
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], 0x4014e0
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
add eax, ecx
add dword [esp + 0x1c], eax
call esi
push 0x7f00
push ebp
mov dword [esp + 0x64], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f00
lea ecx, [esp + 0xc8]
push ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 6
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ecx
call esi
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x74], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x403a1a
cmp dword [0x44fde4], ebp
je 0x403a1a
push 0x30
lea eax, [esp + 0xc8]
push eax
mov ecx, eax
push ecx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebp
push ebp
push ebp
push ebp
push 0x140
push 0x1e0
push bind
push bind
push 0xcf0000
push str.Service
lea edx, [esp + 0xec]
push edx
push ebp
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [0x44fde4]
cmp dword [esp + 0x14], esi
mov ecx, dword [0x44fddc]
jne 0x403a85
mov eax, dword [0x44fdd0]
imul eax, dword [0x44fde0]
cdq
lea edi, [ecx + 1]
idiv edi
movzx edx, word [esp + 0x14]
add edx, ecx
imul edx, ecx
lea eax, [eax + edx*4]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
cmp ecx, ebp
lea ebx, [ecx + 1]
jne 0x403a9f
push 0x440198
push ebx
pop eax
lea edi, [esp + 0x1c8]
call fcn.00401380
lea ecx, [esp + 0x1c4]
push ecx
push ebx
pop eax
push ecx
pop edi
call fcn.00401380
push 0x206
lea edx, [esp + 0x5ea]
push ebp
push edx
mov word [esp + 0x5f0], bp
call fcn.00423c00
mov edi, dword [sym.imp.KERNEL32.DLL_IsProcessorFeaturePresent]
add esp, 0xc
push 3
call edi
or eax, eax
je 0x403ae6
mov dword [0x44fdd0], 2
push 6
call edi
test eax, eax
je 0x403af8
mov dword [0x44fdd0], 1
push 0xa
call edi
test eax, eax
je 0x403b06
mov dword [0x44fdd4], ebp
mov ecx, dword [0x44fde0]
lea eax, [esp + 0x5e4]
push eax
push ecx
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov eax, dword [0x44fddc]
cmp eax, ebp
lea esi, [eax + 1]
jne 0x403b46
push 0x440198
mov eax, esi
lea edi, [esp + 0x1c8]
call fcn.00401380
lea eax, [esp + 0x1c4]
push eax
mov eax, esi
lea edi, [esp + 0x1c8]
call fcn.00401380
mov esi, dword [0x44fddc]
mov edx, dword [0x44fdd0]
mov edi, dword [0x44fde8]
imul edx, esi
lea ecx, [edi + esi]
cmp edx, ecx
jne 0x403bc4