Function at 0x413770
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x188
mov eax, dword [0x515040]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov byte [ebp - 0x175], dl
mov ebx, ecx
call fcn.00417e40
cmp dword [0x576f00], 0
mov edi, dword [0x576f0c]
je 0x413855
push 0x48
call fcn.004cf4fb
movups xmm0, xmmword [ebx]
mov esi, eax
add esp, 4
movups xmmword [esi], xmm0
movups xmm0, xmmword [ebx + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x20]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [ebx + 0x30]
movups xmmword [esi + 0x30], xmm0
movq xmm0, qword [ebx + 0x40]
movq qword [esi + 0x40], xmm0
cmp dword [0x5770e0], 0
je 0x41386b
mov eax, dword [0x576f00]
lea edx, [ebp - 0x174]
push edx
push dword [esi + 4]
push dword [esi]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
mov ecx, dword [0x5770e0]
lea edx, [ebp - 0x174]
push esi
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x413841
test edi, edi
jne 0x413820
call fcn.00412e50
push 0x48
push esi
call fcn.004cf029
add esp, 8
mov eax, 0x80004004
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004cf01b
mov esp, ebp
pop ebp
ret
cmp dword [0x576f00], 0
jne 0x41386b
push 0x48
push esi
call fcn.004cf029
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004cf01b
mov esp, ebp
pop ebp
ret
push 1
push 1
mov dword [0x576f0c], esi
call fcn.00416a70
or dword [0x576f84], 0x10
xor al, al
add esp, 8
mov dword [ebp - 0x180], eax
cmp dword [esi + 0x10], 0
mov ecx, 1
jne 0x4138a7
cmp dword [esi + 0x14], 0
movzx eax, al
cmove eax, ecx
mov dword [ebp - 0x180], eax
cmp dword [esi + 0x30], 0
mov ebx, dword [sym.imp.USER32.dll_GetWindowLongA]
je 0x413928
test edi, edi
je 0x4138e2
cmp dword [edi + 0x30], 0
jne 0x4138e2
push dword [0x576f54]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
push 0xfffffffffffffff0
push dword [0x576f38]
mov dword [0x576f44], eax
mov dword [0x576f48], ecx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [0x576f34]
mov eax, dword [0x576f38]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
cmp ecx, eax
je 0x41390d
push 0
push ecx
call ebx
mov eax, dword [0x576f38]
cmp dword [0x576f34], eax
jne 0x413a45
mov ecx, dword [0x576f40]
test ecx, ecx
je 0x413a45
push ecx
push eax
call dword [sym.imp.USER32.dll_SetMenu]
jmp 0x413a45
test edi, edi
je 0x413932
cmp dword [edi + 0x30], 0
je 0x4139a7
push 0x2c
push 0
push 0x576f58
call fcn.004d0d20
add esp, 0xc
mov dword [0x576f58], 0x2c
push 0x576f58
push dword [0x576f38]
call dword [sym.imp.USER32.dll_GetWindowPlacement]
push 0xffffffffffffffec
push dword [0x576f38]
call ebx
mov ecx, dword [0x576f84]
shr eax, 3
and ecx, 0xfffffffe
and eax, 1
push 0xfffffffffffffff0
push dword [0x576f38]
or eax, ecx
mov dword [0x576f84], eax
call ebx
and eax, 0xdeffffff
mov dword [0x576f54], eax
test edi, edi
je 0x4139a7
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [0x576f4c], eax
mov dword [0x576f50], ecx
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [0x576f34]
call ebx
push 0x80080000
push 0xfffffffffffffff0
push dword [0x576f34]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [0x576f34]
cmp eax, dword [0x576f38]
jne 0x4139f6
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push 0
push dword [0x576f34]
mov dword [0x576f40], eax
call dword [sym.imp.USER32.dll_SetMenu]
mov eax, dword [0x576f34]
xorps xmm0, xmm0
mov dword [ebp - 0x44], 0x2c
lea ecx, [ebp - 0x44]
movlpd qword [ebp - 0x40], xmm0
push ecx
push eax
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
call dword [sym.imp.USER32.dll_GetWindowPlacement]
test byte [ebp - 0x40], 2
je 0x413a45
and dword [ebp - 0x40], 0xfffffffd
lea eax, [ebp - 0x44]
push eax
push dword [0x576f34]
mov dword [ebp - 0x3c], 9
call dword [sym.imp.USER32.dll_SetWindowPlacement]
cmp byte [ebp - 0x175], 0
jne 0x413c4d
cmp dword [0x576f04], 0
je 0x413c4d
test edi, edi
je 0x413c58
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x413c51
mov eax, dword [edi + 4]
cmp eax, dword [esi + 4]
jne 0x413c51
mov eax, dword [edi + 0xc]
cmp eax, dword [esi + 0xc]
jne 0x413c51
call fcn.004130a0
mov dword [ebp - 0x17c], eax
test eax, eax
jns 0x413aaa
cmp eax, 0x88760868
jne 0x413bc6
or dword [0x576fcc], 1
cmp dword [esi + 0x30], 0
setne cl
call fcn.00413690
mov eax, dword [0x576f00]
push dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov dword [0x576f3c], eax
test edi, edi
je 0x413b08
cmp dword [edi + 0x30], 0
jne 0x413b08
cmp dword [esi + 0x30], 0
je 0x413b08
push 0x576f58
push dword [0x576f38]
call dword [sym.imp.USER32.dll_SetWindowPlacement]
mov eax, dword [0x576f84]
push 0xb
push 0
push 0
push 0
push 0
or eax, 0xfffffffe
push eax
push dword [0x576f38]
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp dword [esi + 0x30], 0
mov byte [ebp - 0x175], 0
je 0x413f9a
cmp byte [ebp - 0x180], 0
jne 0x413f9a
push dword [0x576f38]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x413ced
xorps xmm0, xmm0
mov dword [ebp - 0x44], 0x2c
lea eax, [ebp - 0x44]
movlpd qword [ebp - 0x40], xmm0
push eax
push dword [0x576f38]
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
call dword [sym.imp.USER32.dll_GetWindowPlacement]
test byte [ebp - 0x40], 2
je 0x413cb0
cmp dword [ebp - 0x3c], 2
jne 0x413cb0
push 9
push dword [0x576f38]
call ebx
lea eax, [ebp - 0x18]
push eax
push dword [0x576f38]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
sub ebx, dword [ebp - 0x18]
push 6
push dword [0x576f38]
mov dword [ebp - 0x17c], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 0x17c]
jmp 0x413d09
cmp eax, 0x80040908
je 0x413c1f
cmp eax, 0x80040903
je 0x413c1f
push dword [ebp + 8]
mov dl, 1
mov dword [0x576f0c], edi
mov ecx, esi
call fcn.00413770
add esp, 4
push 0x48
push edi
test eax, eax
jns 0x413c15
call fcn.004cf029
add esp, 8
xor ecx, ecx
call fcn.00416b50
mov eax, 0x80040905
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004cf01b
mov esp, ebp
pop ebp
ret
call fcn.004cf029
jmp 0x414013
push 0x48
push edi
call fcn.004cf029
add esp, 8
call fcn.00412e50
xor ecx, ecx
call fcn.00416b50
mov eax, dword [ebp - 0x17c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004cf01b
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x413c58
xor cl, cl
call fcn.00413260
call fcn.004133d0
mov dword [ebp - 0x17c], eax
test eax, eax
jns 0x413aaa
test edi, edi
je 0x413c7a
push 0x48
push edi
call fcn.004cf029
add esp, 8
mov cl, 1
call fcn.00413260
call fcn.00412e50
push 0
push 0
call fcn.00416a70
mov eax, dword [ebp - 0x17c]
add esp, 8
and dword [0x576f84], 0xffffffef
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004cf01b
mov esp, ebp
pop ebp
ret
xor eax, eax
xorps xmm0, xmm0
cmp dword [0x576f40], eax
movups xmmword [ebp - 0x18], xmm0
setne al
push eax
push dword [0x576f54]
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ebx, dword [ebp - 0x20]
sub ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
sub ebx, dword [ebp - 0x10]
sub eax, dword [ebp - 0xc]
add ebx, dword [ebp - 0x18]
add eax, dword [ebp - 0x14]
jmp 0x413d09
lea eax, [ebp - 0x18]
push eax
push dword [0x576f38]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
sub ebx, dword [ebp - 0x18]
sub eax, dword [ebp - 0x14]
cmp ebx, dword [esi + 0x10]
jne 0x413d13
cmp eax, dword [esi + 0x14]
je 0x413d1a
mov byte [ebp - 0x175], 1
cmp byte [ebp + 8], 0
mov ebx, dword [sym.imp.USER32.dll_IsIconic]
je 0x413dc3
push dword [0x576f38]
call ebx
test eax, eax
jne 0x413dc3
mov eax, dword [0x576f00]
push dword [esi]
mov dword [ebp - 0x40], 0x28
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x184], eax
mov ecx, eax
call fcn.00417390
call fcn.00412ce0
mov edx, 1
mov ecx, eax
call fcn.00417480
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x18]
push eax
push dword [0x576f38]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x2c]
jl 0x413da5
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jg 0x413da5
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x28]
jl 0x413da5
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x20]
jle 0x413dc3
mov eax, dword [ebp - 0x17c]
cmp eax, dword [ebp - 0x184]
jne 0x413dd0
push dword [0x576f38]
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x413dd0
cmp byte [ebp - 0x175], 0
je 0x413f94
push dword [0x576f38]
call ebx
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
je 0x413dec
push 9
push dword [0x576f38]
call ebx
push dword [0x576f38]
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x413e06
push 9
push dword [0x576f38]
call ebx
cmp byte [ebp + 8], 0
je 0x413f36
mov eax, dword [0x576f00]
push dword [esi]
mov dword [ebp - 0x40], 0x28
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x40]
mov ecx, eax
call fcn.00417390
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
sub ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x17c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xc], eax
xor eax, eax
cmp dword [0x576f40], eax
mov dword [ebp - 0x184], ebx
setne al
mov dword [ebp - 0x18], 0
push eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push dword [0x576f38]
mov dword [ebp - 0x14], 0
call eax
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
sub eax, ecx
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
sub esi, edx
cmp eax, ebx
cmovle ebx, eax
cmp esi, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ebx
cmovg esi, dword [ebp - 0x17c]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
cmp ecx, dword [ebp - 0x2c]
jl 0x413ece
cmp edx, dword [ebp - 0x28]
jl 0x413ece
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jg 0x413ece
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x20]
jle 0x413f1b
mov eax, dword [ebp - 0x184]
sub eax, dword [ebp - 0x180]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [ebp - 0x17c]
sub eax, esi
sar ecx, 1
cdq
sub eax, edx
mov edx, dword [ebp - 0x2c]
add edx, ecx
sar eax, 1
add ecx, dword [ebp - 0x180]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x28]
add edx, eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
add eax, esi
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
push 4
push esi
push dword [ebp - 0x180]
push edx
push ecx
push 0
push dword [0x576f38]
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x413f9a
mov eax, dword [esi + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xc], eax
xor eax, eax
cmp dword [0x576f40], eax
movlpd qword [ebp - 0x18], xmm0
setne al
push eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push dword [0x576f38]
call eax
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push 6
push eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
push eax
push 0
push 0
push 0
push dword [0x576f38]
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x413f9a
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
call fcn.00412ce0
mov esi, dword [sym.imp.USER32.dll_IsWindowVisible]
push eax
call esi
test eax, eax
jne 0x413fb6
push 5
call fcn.00412ce0
push eax
call ebx
call fcn.00412ce0
push eax
call esi
test eax, eax
jne 0x413fcc
push 5
call fcn.00412ce0
push eax
call ebx
mov eax, dword [0x576f0c]
test eax, eax
je 0x413fe2
cmp dword [eax + 0x30], 0
je 0x413fe2
push closesocket
jmp 0x413fe7
push reloc.WSOCK32.dll_bind
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
test edi, edi
je 0x413ffc
push 0x48
push edi
call fcn.004cf029
add esp, 8
and dword [0x576f84], 0xffffffef
push 0
push 0
call fcn.00416a70
or dword [0x576fc0], 0x20
mov ecx, dword [ebp - 8]
add esp, 8
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.004cf01b
mov esp, ebp
pop ebp
ret