Function at 0x649e98
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x649ea0
push ebx
push esi
push edi
mov ebx, dword [0x65b440]
xor eax, eax
push ebp
push 0x64a260
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x20]
mov eax, 1
call fcn.0059ac2c
mov eax, dword [ebp - 0x20]
mov edx, 0x64a27c
call fcn.00421440
test eax, eax
jne 0x649ee2
mov byte [ebp - 0x11], 1
jmp 0x649f08
lea edx, [ebp - 0x24]
mov eax, 1
call fcn.0059ac2c
mov eax, dword [ebp - 0x24]
mov edx, 0x64a294
call fcn.00421440
test eax, eax
jne 0x64a238
mov byte [ebp - 0x11], 0
mov eax, dword [ebx]
mov edx, 0x64a2ac
call fcn.0058edc0
push 5
mov eax, dword [ebx]
mov eax, dword [eax + 0x178]
push eax
call sub.user32.dll_ShowWindow
call fcn.00640558
push 0x64a2b8
push 0
push 0
call fcn.0040f330
mov dword [ebp - 0x18], eax
push 0
mov eax, dword [ebx]
mov eax, dword [eax + 0x178]
push eax
call sub.user32.dll_ShowWindow
cmp dword [ebp - 0x18], 0
je 0x649f70
mov eax, dword [ebx]
call fcn.0058f2ac
push 0x4ff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x18]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
je 0x649f50
push 5
mov eax, dword [ebx]
mov eax, dword [eax + 0x178]
push eax
call sub.user32.dll_ShowWindow
xor eax, eax
push ebp
push 0x64a231
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x28]
xor eax, eax
call fcn.0059ac2c
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 4]
mov edx, 0x64a2f4
call fcn.00599ce0
lea edx, [ebp - 0x2c]
xor eax, eax
call fcn.0059ac2c
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 8]
mov edx, 0x64a30c
call fcn.00599ce0
mov eax, dword [ebp - 8]
call fcn.0059a4d4
test al, al
je 0x64a1d4
mov cl, 1
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005a1348
mov eax, dword [0x65b358]
test byte [eax + 0x4c], 1
setne al
call fcn.0059ccc8
mov edx, dword [0x65b454]
mov edx, dword [edx + 0x2b4]
mov eax, dword [ebx]
call fcn.0058edc0
xor eax, eax
push ebp
push 0x64a1cd
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0063d6d4
push 2
push 0
push 1
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x59f5e4]
call fcn.0059fc00
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x64a1b3
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x64a18d
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
call fcn.0059feb0
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x64a057
sub esi, 4
mov esi, dword [esi]
cmp esi, 4
jle 0x64a068
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x5b
sete bl
jmp 0x64a06a
xor ebx, ebx
test bl, bl
je 0x64a18d
mov eax, dword [ebp - 0xc]
cmp word [eax + 6], 0x5d
jne 0x64a18d
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x7fffffff
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.00409140
mov eax, dword [ebp - 0xc]
cmp word [eax + 4], 0x71
je 0x64a0b4
cmp byte [ebp - 0x11], 0
je 0x64a0b0
mov eax, dword [0x65b250]
cmp byte [eax], 0
je 0x64a0b4
xor eax, eax
jmp 0x64a0b6
mov al, 1
mov byte [ebp - 0x12], al
xor eax, eax
push ebp
push 0x64a12a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 2]
sub ax, 0x53
je 0x64a0f9
dec ax
je 0x64a116
sub ax, 0x1f
je 0x64a0e6
dec ax
je 0x64a10c
jmp 0x64a120
movzx eax, byte [ebp - 0x12]
push eax
mov ecx, dword [ebp - 0x10]
xor edx, edx
xor eax, eax
call fcn.0061380c
jmp 0x64a120
movzx eax, byte [ebp - 0x12]
push eax
mov ecx, dword [ebp - 0x10]
mov dl, 1
xor eax, eax
call fcn.0061380c
jmp 0x64a120
mov eax, dword [ebp - 0x10]
call fcn.00612fa0
jmp 0x64a120
mov edx, dword [ebp - 0x10]
xor eax, eax
call fcn.00613f7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64a18d
mov eax, dword [ebp - 0x1c]
call fcn.0059fea0
test al, al
je 0x64a040
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x64a1ba
mov eax, dword [ebp - 0x1c]
call fcn.004060a0
ret
mov eax, dword [ebp - 8]
call fcn.004229ac
mov eax, dword [ebp - 4]
call fcn.004229ac
xor eax, eax
push ebp
push 0x64a201
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00649df8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64a20b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x64a238
cmp dword [ebp - 0x18], 0
je 0x64a230
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_ReleaseMutex
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x64a267
lea eax, [ebp - 0x38]
mov edx, 7
call fcn.00407cb8
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00407cb8
ret