Function at 0x4f2730
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x64
push 0
push 0
dec ecx
jne 0x4f2738
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4f30e8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4f2772
mov dword [ebp - 8], 1
jmp 0x4f2777
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3a0]
mov ecx, dword [eax + 0x228]
mov eax, 0x400
shl eax, cl
mov dword [ebp - 0x14], eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov ebx, dword [eax + 0x5f0]
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebp - 8]
jne 0x4f2862
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xcc]
mov edx, eax
lea ecx, [ebp - 0x1f0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f4]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x1f0]
mov eax, dword [0x51e354]
mov eax, dword [ebx + 0x18]
call fcn.00404694
jne 0x4f2862
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x358]
mov edx, dword [eax]
call dword [edx + 0xcc]
mov edx, eax
lea ecx, [ebp - 0x1f4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x1f4]
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
mov eax, dword [eax + 0x1c]
call fcn.00404694
jne 0x4f2862
mov eax, dword [0x51e6ac]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x14]
jne 0x4f2862
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b4]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov ebx, eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
call fcn.0050be64
cmp bl, al
je 0x4f2ada
xor edx, edx
push ebp
push 0x4f29ae
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
xor ecx, ecx
or edx, 0xffffffff
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
xor ecx, ecx
or edx, 0xffffffff
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [0x51e6ac]
mov edx, dword [ebp - 0x14]
mov dword [eax], edx
push 0x1f4
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x358]
mov edx, dword [eax]
call dword [edx + 0xcc]
mov edx, eax
lea ecx, [ebp - 0x1f8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b4]
mov edx, dword [eax]
call dword [edx + 0xc8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xcc]
mov edx, eax
lea ecx, [ebp - 0x1fc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5fc]
cmp byte [eax + 4], 2
jne 0x4f29a4
mov edx, dword [0x51e354]
test byte [eax + 0x40], 0x20
je 0x4f2977
mov eax, dword [0x51e354]
mov eax, dword [eax]
xor edx, edx
call fcn.00503324
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5fc]
test byte [eax + 0x40], 0x10
je 0x4f2998
mov eax, dword [0x51e354]
mov eax, dword [eax]
xor edx, edx
call fcn.005032c0
mov eax, dword [0x51e354]
mov eax, dword [eax]
call fcn.00500830
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f29d6
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b4]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov byte [ebp - 0x1e0], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x358]
mov edx, dword [eax]
call dword [edx + 0xcc]
mov edx, eax
lea ecx, [ebp - 0x300]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x300]
lea eax, [ebp - 0x2fc]
mov ecx, 0xff
call fcn.00404524
lea edx, [ebp - 0x2fc]
lea eax, [ebp - 0x17b]
mov cl, 0x63
call fcn.00402cec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xcc]
mov edx, eax
lea ecx, [ebp - 0x304]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x304]
lea eax, [ebp - 0x2fc]
mov ecx, 0xff
call fcn.00404524
lea edx, [ebp - 0x2fc]
lea eax, [ebp - 0x1df]
mov cl, 0x63
call fcn.00402cec
mov eax, dword [0x51e20c]
mov eax, dword [eax]
mov cl, 1
mov edx, 0x4f3100
call fcn.00494b84
mov ebx, eax
push 0
push 0
mov eax, ebx
call fcn.00417ae4
lea edx, [ebp - 0x1ec]
mov ecx, pe_nt_image_headers32
mov eax, ebx
call fcn.00417d28
mov eax, dword [ebp - 4]
cmp byte [eax + 0x400], 0
je 0x4f2c43
mov eax, dword [0x51e20c]
mov eax, dword [eax]
mov cl, 1
mov edx, 0x4f3124
call fcn.00494b84
mov ebx, eax
push 0
push 0
mov eax, ebx
call fcn.00417b48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov byte [ebp - 0xd], al
lea edx, [ebp - 0xd]
mov ecx, 1
mov eax, ebx
call fcn.00417d28
cmp byte [ebp - 0xd], 0
je 0x4f2b47
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f4]
call fcn.00496d58
jmp 0x4f2b59
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f4]
call fcn.00496d68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x380]
mov edx, 0xa
sub edx, dword [eax + 0x228]
mov dword [ebp - 0xc], edx
lea edx, [ebp - 0xc]
mov ecx, 4
mov eax, ebx
call fcn.00417d28
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x380]
mov edx, 0xa
sub edx, dword [eax + 0x228]
mov dword [ebp - 0x308], edx
fild dword [ebp - 0x308]
fdiv dword [0x4f3138]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f0]
call fcn.0050be78
mov dword [ebp - 0xc], 1
lea ecx, [ebp - 0x30c]
mov edx, dword [ebp - 0xc]
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3fc]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x30c]
lea eax, [ebp - 0x114]
mov ecx, 0xff
call fcn.00404524
lea edx, [ebp - 0x114]
mov ecx, 0x100
mov eax, ebx
call fcn.00417d28
push 0
lea ecx, [ebp - 0x310]
mov edx, dword [ebp - 0xc]
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3fc]
mov esi, dword [eax]
call dword [esi + 0xc]
mov ecx, dword [ebp - 0x310]
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5f4]
mov edx, dword [ebp - 0xc]
call fcn.00496878
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x1f
jne 0x4f2bc5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x401], 0
je 0x4f2fb5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov edx, dword [0x51e354]
mov edx, dword [edx]
cmp al, byte [edx + 0x8ee]
je 0x4f2cd6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov edx, dword [0x51e354]
mov edx, dword [edx]
mov byte [edx + 0x8ee], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4f2cc0
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x600]
mov edx, 2
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f2cd6
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x600]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov edx, dword [0x51e354]
mov edx, dword [edx]
cmp al, byte [edx + 0x8ed]
je 0x4f2dc1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov edx, dword [0x51e354]
mov edx, dword [edx]
mov byte [edx + 0x8ed], al
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5fc]
cmp byte [eax + 4], 2
jne 0x4f2dc1
mov eax, dword [0x51e354]
mov eax, dword [eax]
cmp byte [eax + 0x8ed], 0
je 0x4f2d78
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5fc]
test byte [eax + 0x40], 4
jne 0x4f2d78
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov ebx, dword [eax + 0x5fc]
mov dx, word [ebx + 0x40]
or dx, word [0x4f313c]
mov eax, dword [0x51e354]
mov eax, ebx
call fcn.00514620
mov eax, dword [0x51e354]
mov eax, dword [eax]
cmp byte [eax + 0x8ed], 0
jne 0x4f2dc1
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5fc]
test byte [eax + 0x40], 4
je 0x4f2dc1
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov ebx, dword [eax + 0x5fc]
mov dx, word [0x4f313c]
not edx
and dx, word [ebx + 0x40]
mov eax, dword [0x51e354]
mov eax, ebx
call fcn.00514620
lea edx, [ebp - 0x314]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x374]
call fcn.0045e218
mov edx, dword [ebp - 0x314]
lea eax, [ebp - 0x2fc]
mov ecx, 0xff
call fcn.00404524
lea edx, [ebp - 0x2fc]
mov eax, dword [0x51e354]
mov eax, dword [eax]
add eax, 0x8cf
mov cl, 0x1d
call fcn.00402cec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0x218]
mov edx, dword [0x51e354]
mov edx, dword [edx]
mov dword [edx + 0x8f4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38c]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov edx, dword [0x51e354]
mov edx, dword [edx]
cmp al, byte [edx + 0x8f0]
je 0x4f2eb5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38c]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov ebx, eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov byte [eax + 0x8f0], bl
mov eax, dword [0x51e354]
test bl, bl
je 0x4f2e91
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x520]
call fcn.00481b28
push 0
mov eax, dword [0x51e8cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_ShowWindow
jmp 0x4f2eb5
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x520]
call fcn.00481c0c
push 5
mov eax, dword [0x51e8cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov ebx, eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov byte [eax + 0x8ef], bl
mov eax, dword [0x51e354]
test bl, bl
je 0x4f2ef0
push 0x80
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_SetPriorityClass
jmp 0x4f2efd
push 0x20
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_SetPriorityClass
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3ac]
mov edx, dword [eax]
call dword [edx + 0xc8]
push eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x600]
mov edx, dword [0x4a56c4]
call fcn.00403648
pop edx
call fcn.004a5bc4
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x600]
mov edx, dword [0x4a56c4]
call fcn.00403648
call fcn.004a5a7c
mov ebx, eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov byte [eax + 0x8f8], bl
mov eax, dword [0x51e354]
mov edx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3ac]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f0]
mov edx, dword [eax]
call dword [edx + 0xc8]
mov ebx, eax
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov byte [eax + 0x8f9], bl
mov eax, dword [0x51e354]
mov edx, ebx
mov eax, dword [0x51e354]
mov eax, dword [eax]
call fcn.0050b808
call fcn.0050b84c
mov eax, dword [0x51e354]
mov eax, dword [eax]
call fcn.004ffc40
mov eax, dword [ebp - 4]
cmp byte [eax + 0x402], 0
je 0x4f308e
lea edx, [ebp - 0x318]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3cc]
call fcn.0045e218
mov edx, dword [ebp - 0x318]
mov eax, dword [ebp - 4]
call fcn.004f42fc
inc eax
je 0x4f3015
lea edx, [ebp - 0x31c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3cc]
call fcn.0045e218
mov edx, dword [ebp - 0x31c]
mov eax, dword [ebp - 4]
call fcn.004f42fc
mov edx, dword [ebp - 4]
mov dword [edx + 0x404], eax
lea edx, [ebp - 0x320]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e4]
call fcn.0045e218
mov edx, dword [ebp - 0x320]
mov eax, dword [ebp - 4]
call fcn.004f42fc
inc eax
je 0x4f3065
lea edx, [ebp - 0x324]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e4]
call fcn.0045e218
mov edx, dword [ebp - 0x324]
mov eax, dword [ebp - 4]
call fcn.004f42fc
mov edx, dword [ebp - 4]
mov dword [edx + 0x408], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x408]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x404]
mov eax, dword [0x51e354]
mov eax, dword [eax]
mov eax, dword [eax + 0x5fc]
call fcn.005131b8
call fcn.005097e8
mov eax, dword [0x51e20c]
mov eax, dword [eax]
call fcn.00494c18
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f30ef
lea eax, [ebp - 0x324]
mov edx, 5
call fcn.00404290
lea eax, [ebp - 0x310]
mov edx, 2
call fcn.00404290
lea eax, [ebp - 0x304]
mov edx, 2
call fcn.00404290
lea eax, [ebp - 0x1fc]
mov edx, 4
call fcn.00404290
ret