Function at 0x403090
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffdc
mov esi, eax
sub esi, 0x10
call fcn.00402a70
mov eax, esi
mov edx, dword [eax]
mov dword [esp], edx
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
mov edx, dword [eax + 0xc]
test dl, 8
jne 0x402b5d
push 0x8000
push 0
push esi
call sub.user32.dll_ShowWindow
test eax, eax
je 0x402b58
xor edi, edi
jmp 0x402b97
or edi, 0xffffffff
jmp 0x402b97
mov ebx, esi
mov ebp, edx
and ebp, 0xfffffff0
xor edi, edi
push 0x1c
lea eax, [esp + 0xc]
push eax
push ebx
call sub.user32.dll_SetWindowLongW
push 0x8000
push 0
push ebx
call sub.user32.dll_ShowWindow
test eax, eax
jne 0x402b89
or edi, 0xffffffff
jmp 0x402b97
mov esi, dword [esp + 0x14]
cmp ebp, esi
jbe 0x402b97
sub ebp, esi
add ebx, esi
jmp 0x402b66
test edi, edi
jne 0x402bae
mov eax, dword [esp + 4]
mov edx, dword [esp]
mov dword [eax], edx
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov dword [eax + 4], edx
mov byte [0x4abacc], 0
mov eax, edi
add esp, 0x24
pop ebp
pop edi
pop esi
pop ebx
ret
mov edx, dword [eax - 4]
test dl, 7
mov ecx, eax
push ebx
mov bl, byte [0x4a9055]
jne 0x403188
test bl, bl
mov ebx, dword [edx]
jne 0x40310c
sub dword [edx + 0xc], 1
mov eax, dword [edx + 8]
je 0x4030e0
test eax, eax
mov dword [edx + 8], ecx
lea eax, [eax + 1]
mov dword [ecx - 4], eax
je 0x4030c8
xor eax, eax
mov byte [ebx], al
pop ebx
ret
mov ecx, dword [ebx + 4]
mov dword [edx + 0x14], ebx
mov dword [edx + 4], ecx
mov dword [ecx + 0x14], edx
mov dword [ebx + 4], edx
mov byte [ebx], 0
xor eax, eax
pop ebx
ret
test eax, eax
je 0x4030f7
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov dword [ecx + 0x14], eax
xor eax, eax
cmp dword [ebx + 0x10], edx
jne 0x4030fa
mov dword [ebx + 0xc], eax
mov byte [ebx], al
mov eax, edx
mov edx, dword [edx - 4]
mov bl, byte [0x4a9055]
jmp 0x403191
mov eax, 0x100
lock cmpxchg byte [ebx], ah
je 0x4030ab
pause
cmp byte [0x4a98dd], 0
jne 0x40310c
push ecx
push edx
push 0
call sub.user32.dll_SystemParametersInfoW
pop edx
pop ecx
mov eax, 0x100
lock cmpxchg byte [ebx], ah
je 0x4030ab
push ecx
push edx
push 0xa
call sub.user32.dll_SystemParametersInfoW
pop edx
pop ecx
jmp 0x40310c
mov eax, 0x100
lock cmpxchg byte [0x4a9a3c], ah
je 0x40319d
pause
cmp byte [0x4a98dd], 0
jne 0x40314c
push 0
call sub.user32.dll_SystemParametersInfoW
mov eax, 0x100
lock cmpxchg byte [0x4a9a3c], ah
je 0x40319d
push 0xa
call sub.user32.dll_SystemParametersInfoW
jmp 0x40314c
test dl, 5
jne 0x403278
and edx, 0xfffffff0
test bl, bl
mov ebx, edx
push esi
mov esi, eax
jne 0x40314c
test dword [ebx + esi - 4], 1
mov ecx, dword [ebx + esi - 4]
jne 0x4031e0
or ecx, 8
mov dword [ebx + esi - 4], ecx
test byte [esi - 4], 8
jne 0x4031f8
cmp ebx, 0x13ffe0
je 0x403210
lea eax, [ebx + 3]
mov dword [esi - 4], eax
mov dword [ebx + esi - 8], ebx
mov eax, esi
mov edx, ebx
call fcn.0040292c
mov byte [0x4a9a3c], 0
xor eax, eax
pop esi
pop ebx
ret
lea eax, [ebx + esi]
and ecx, 0xfffffff0
add ebx, ecx
cmp ecx, 0xb30
jb 0x4031b2
call fcn.004028ec
jmp 0x4031b2
mov ecx, dword [esi - 8]
sub esi, ecx
add ebx, ecx
cmp ecx, 0xb30
jb 0x4031b8
mov eax, esi
call fcn.004028ec
jmp 0x4031b8
cmp dword [0x4a9a44], 0x13ffe0
jne 0x403248
sub esi, 0x10
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov dword [edx], eax
mov byte [0x4a9a3c], 0
push 0x8000
push 0
push esi
call sub.user32.dll_ShowWindow
cmp eax, 1
sbb eax, eax
pop esi
pop ebx
ret
lea ebx, [esi + 0x13ffe0]
call fcn.0040298c
mov dword [ebx - 4], 2
mov dword [0x4a9a44], 0x13ffe0
mov dword [0x4a9a40], ebx
mov byte [0x4a9a3c], 0
xor eax, eax
pop esi
pop ebx
ret
pop ebx
test dl, 3
je 0x402b1c
mov eax, 0xffffffff
ret