Function at 0x458260
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffc0
mov esi, ecx
mov dword [esp], edx
mov ebx, eax
mov word [esp + 0xc], si
mov eax, esi
call fcn.004066d0
mov word [esp + 0xe], ax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x16]
push eax
lea eax, [esp + 0x1c]
push eax
mov eax, ebx
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.00458b14
cmp al, 1
jne 0x4582d9
movzx eax, word [esp + 0x12]
dec eax
mov edx, dword [0x4beee0]
movzx edx, word [edx]
imul edx
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fild qword [ebx + 0x3c]
faddp st(1)
movzx eax, word [esp + 0x10]
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
faddp st(1)
fsub dword [0x458b0c]
fistp qword [esp + 0x18]
wait
jmp 0x4582e9
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
xor ebp, ebp
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 4]
test edi, edi
jle 0x45832d
mov esi, 1
mov eax, dword [esp + 0x24]
mov edx, esi
call fcn.004ab894
fild qword [esp + 0x18]
fcompp
fnstsw ax
sahf
jne 0x458329
mov ebp, esi
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x20], eax
jmp 0x45832d
inc esi
dec edi
jne 0x458305
test ebp, ebp
jne 0x45836b
mov edi, dword [0x4be9d4]
mov edi, dword [edi + 4]
test edi, edi
jle 0x45836b
mov esi, 1
mov eax, dword [0x4be9d4]
mov edx, esi
call fcn.004ab894
fild qword [esp + 0x18]
fcompp
fnstsw ax
sahf
jne 0x458367
mov ebp, esi
mov eax, dword [0x4be9d4]
mov dword [esp + 0x20], eax
jmp 0x45836b
inc esi
dec edi
jne 0x458343
lea eax, [esp + 4]
push eax
call sub.user32.dll_GetCursorPos
test ebp, ebp
jle 0x45858a
mov eax, dword [0x4bea8c]
cmp dword [eax], 0
jne 0x45858a
mov eax, dword [esp + 0x20]
cmp byte [eax + 0xd], 0
je 0x45858a
movsx edx, word [esp + 0xc]
mov eax, dword [0x4becd4]
movsx eax, word [eax]
mov ecx, eax
sub ecx, 9
cmp edx, ecx
jge 0x45841f
mov al, byte [esp + 0x10]
call fcn.004421c8
movsx eax, ax
movzx edx, word [esp + 0x10]
dec edx
mov ecx, dword [0x4be424]
movzx ecx, byte [ecx]
imul edx, ecx
mov ecx, dword [0x4beee8]
movsx ecx, word [ecx]
add edx, ecx
movsx ecx, word [ebx + 0x426]
sub edx, ecx
add eax, edx
add eax, 0x19
mov dword [esp + 4], eax
movzx eax, word [esp + 0x12]
dec eax
mov edx, dword [0x4be324]
movsx edx, word [edx]
imul edx
add eax, 0x16
movsx edx, word [ebx + 0x58]
add eax, edx
mov edx, dword [0x4be784]
cmp byte [edx + 0x189e], 2
sete dl
and edx, 0x7f
add eax, edx
mov dword [esp + 8], eax
jmp 0x45848b
mov edx, dword [0x4be784]
movzx edx, byte [edx + 0x189e]
dec edx
mov ecx, dword [0x4becd4]
add edx, eax
movsx eax, word [ebx + 0x426]
sub edx, eax
movzx eax, word [esp + 0x10]
dec eax
mov ecx, dword [0x4be784]
movsx ecx, word [ecx + 0x186c]
imul eax, ecx
add edx, eax
add edx, 0xf
mov dword [esp + 4], edx
movzx eax, word [esp + 0x12]
dec eax
mov edx, dword [0x4be324]
movsx edx, word [edx]
imul edx
add eax, 0x16
movsx edx, word [ebx + 0x58]
add eax, edx
mov edx, dword [0x4be784]
movzx edx, byte [edx + 0x189e]
add eax, edx
dec eax
mov dword [esp + 8], eax
mov eax, dword [0x4be6d4]
push eax
mov eax, dword [ebx]
push eax
call sub.user32.dll_GetWindowRect
mov eax, dword [0x4bec48]
movzx eax, byte [eax]
mov edx, dword [0x4be5e4]
movzx edx, byte [edx]
add eax, edx
push eax
push 0
mov eax, dword [0x4be6d4]
push eax
call sub.user32.dll_OffsetRect
mov eax, dword [0x4be33c]
mov byte [eax], 0
mov eax, dword [esp + 0x20]
mov edx, ebp
call fcn.004ab8d0
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov eax, dword [0x4bedb0]
cmp byte [eax], 0
jne 0x458502
mov eax, dword [0x4be784]
movzx eax, byte [eax + 0x188c]
mov edx, dword [0x4be6b8]
lea edx, [edx + eax*4]
mov eax, dword [0x4bedb0]
call fcn.004b81b0
push 0
mov eax, dword [0x4bf704]
push eax
push 0
push 0
push 0x10
push 0x17
mov eax, dword [0x4be6d4]
mov eax, dword [eax + 4]
add eax, dword [esp + 0x20]
sub eax, 0xa
push eax
mov eax, dword [0x4be6d4]
mov eax, dword [eax]
add eax, dword [esp + 0x20]
push eax
push 0x80000000
mov eax, dword [0x4bedb0]
push eax
mov eax, dword [0x4be7a0]
push eax
push 0x88
call sub.user32.dll_CreateWindowExA
mov edx, dword [0x4bea8c]
mov dword [edx], eax
mov eax, dword [0x4be8b8]
mov eax, dword [eax + 8]
push eax
push 0xffffffffffffffeb
mov eax, dword [0x4bea8c]
mov eax, dword [eax]
push eax
call sub.user32.dll_SetWindowLongA
push 4
mov eax, dword [0x4bea8c]
mov eax, dword [eax]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4be37c]
mov edx, dword [esp + 0x18]
mov dword [eax], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + 4], edx
fild qword [esp + 0x18]
mov eax, dword [0x4be37c]
fild qword [eax]
fcompp
fnstsw ax
sahf
je 0x4585ce
mov eax, dword [0x4bea8c]
cmp dword [eax], 0
je 0x4585ce
mov eax, dword [0x4bea8c]
mov eax, dword [eax]
push eax
call sub.user32.dll_DestroyWindow
mov eax, dword [0x4bea8c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4be37c]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
mov edx, dword [0x4beee8]
movsx edx, word [edx]
mov ecx, edx
sub ecx, 0xf
movsx esi, word [ebx + 0x426]
sub ecx, esi
movsx eax, word [esp + 0xc]
cmp ecx, eax
jg 0x45864f
mov ecx, dword [0x4beee8]
sub edx, 6
sub edx, esi
cmp eax, edx
jge 0x45864f
mov ax, word [ebx + 0x58]
cmp ax, word [esp + 0xe]
jge 0x45864f
mov eax, dword [0x4be3fc]
cmp byte [eax], 0
jne 0x458630
push 0
push 0xc8
push 8
mov eax, dword [0x4beb60]
mov eax, dword [eax]
push eax
call sub.user32.dll_SetTimer
mov eax, dword [0x4be3fc]
mov byte [eax], 1
mov eax, dword [0x4be3fc]
cmp byte [eax], 2
jne 0x4586ac
push 1
mov eax, dword [0x4bf704]
push eax
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
jmp 0x4586ac
test byte [esp], 1
je 0x45866f
fild qword [0x4bdb7c]
fcomp dword [0x458b10]
fnstsw ax
sahf
je 0x45866f
cmp byte [0x4c13a1], 0
je 0x4586ac
mov eax, dword [0x4be3fc]
cmp byte [eax], 1
jne 0x458688
push 8
mov eax, dword [0x4beb60]
mov eax, dword [eax]
push eax
call sub.user32.dll_KillTimer
mov eax, dword [0x4be3fc]
cmp byte [eax], 2
jne 0x4586a4
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov eax, dword [0x4be3fc]
mov byte [eax], 0
cmp dword [ebx + 0x4c], 0
je 0x458815
mov eax, dword [0x4be330]
cmp byte [eax], 0
jne 0x458708
movsx eax, word [esp + 0xe]
movsx edx, word [ebx + 0x58]
mov ecx, edx
sub ecx, 3
cmp eax, ecx
jle 0x458815
add edx, 3
cmp eax, edx
jge 0x458815
push 0x7f85
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov eax, dword [0x4be330]
mov byte [eax], 1
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetCapture
jmp 0x458815
test byte [esp], 1
je 0x4587e6
movsx esi, word [esp + 0xe]
mov eax, dword [0x4be784]
cmp esi, dword [eax + 0xa54]
je 0x458815
mov eax, esi
mov edx, 0x3c
call fcn.004aa578
mov edi, eax
mov eax, dword [0x4be784]
mov dword [eax + 0xa54], edi
movsx edx, word [ebx + 0x56]
sub edx, 0x16
mov eax, dword [0x4be324]
movsx eax, word [eax]
sub edx, eax
mov eax, dword [0x4be784]
mov eax, edi
call fcn.004aa570
mov edx, dword [0x4be784]
mov dword [edx + 0xa54], eax
mov eax, dword [0x4be784]
mov ax, word [eax + 0xa54]
mov word [ebx + 0x58], ax
mov byte [0x4c139a], 1
mov dx, word [ebx + 0x56]
mov ax, word [ebx + 0x54]
call fcn.004066c4
push eax
push 3
push 5
mov eax, dword [ebx]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x4be810]
mov byte [eax], 0x17
push 0
push 0
push 0xf
mov eax, dword [ebx]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0
push 0xf
mov eax, dword [ebx + 0x48]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0
push 0xf
mov eax, dword [ebx + 0x4c]
push eax
call sub.user32.dll_SendMessageA
push 0xffffffffffffffff
push 0
mov eax, dword [ebx]
push eax
call sub.user32.dll_InvalidateRect
mov eax, ebx
mov dl, 1
call fcn.00453834
jmp 0x458815
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov eax, dword [0x4be330]
mov byte [eax], 0
call sub.user32.dll_ReleaseCapture
cmp dword [ebx + 0x1e4], 0
je 0x458815
mov eax, ebx
call fcn.00453e58
mov eax, dword [0x4be784]
cmp byte [eax + 0x18d5], 0
je 0x458866
mov eax, dword [0x4be784]
cmp byte [eax + 0x193a], 0
jne 0x458866
cmp word [esp + 0xc], 2
jge 0x458866
mov eax, dword [ebx]
push eax
call sub.user32.dll_IsZoomed
test eax, eax
je 0x458866
mov eax, dword [0x4bea78]
mov ax, word [eax]
add ax, word [esp + 0xc]
mov dx, word [esp + 0xe]
call fcn.004066c4
mov edx, eax
mov eax, dword [esp]
call fcn.00458118
test byte [esp], 1
je 0x458afd
fild qword [0x4bdb7c]
fcomp dword [0x458b10]
fnstsw ax
sahf
jbe 0x458afd
cmp byte [0x4c13a1], 0
jne 0x458afd
mov eax, dword [0x4be3fc]
cmp byte [eax], 2
jne 0x4588af
push 1
mov eax, dword [0x4bf704]
push eax
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
cmp byte [0x4c13a8], 0
jne 0x45890a
movsx eax, word [0x4c13a4]
movsx edx, word [esp + 0xc]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [0x4bef94]
movzx edx, byte [edx]
xor ecx, ecx
mov cl, byte [edx + 0x4bdb84]
cmp eax, ecx
jge 0x458903
mov eax, dword [0x4bef94]
movzx eax, byte [eax]
movsx eax, word [0x4c13a6]
movsx edx, word [esp + 0xe]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x458b04
mov byte [0x4c13a8], 1
mov eax, ebx
call fcn.0044cc0c
mov byte [0x4c13c8], 0
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x16]
push eax
lea eax, [esp + 0x1c]
push eax
mov eax, ebx
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.00458b14
and eax, 0xff
test ax, ax
jbe 0x4589fc
cmp ax, 2
jne 0x45894f
mov word [esp + 0x10], 2
movzx edx, word [esp + 0x12]
dec edx
mov ecx, dword [0x4beee0]
movzx ecx, word [ecx]
imul edx, ecx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fild qword [ebx + 0x3c]
faddp st(1)
movzx edx, word [esp + 0x10]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
faddp st(1)
fsub dword [0x458b0c]
fistp qword [esp + 0x18]
wait
cmp ax, 2
jne 0x4589b5
fild qword [esp + 0x18]
fild qword [0x4bdb7c]
fcompp
fnstsw ax
sahf
jbe 0x4589a8
mov word [esp + 0x10], 1
jmp 0x4589b5
mov eax, dword [0x4beee0]
mov ax, word [eax]
mov word [esp + 0x10], ax
movzx eax, word [esp + 0x12]
dec eax
mov edx, dword [0x4beee0]
movzx edx, word [edx]
imul edx
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fild qword [ebx + 0x3c]
faddp st(1)
movzx eax, word [esp + 0x10]
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
faddp st(1)
fsub dword [0x458b0c]
fistp qword [esp + 0x18]
wait
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov eax, ebx
call fcn.00458074
cmp dword [0x4c13e8], 0
je 0x458a19
push 3
mov eax, dword [0x4c13e8]
push eax
call sub.user32.dll_KillTimer
xor eax, eax
mov dword [0x4c13e8], eax
mov si, word [ebx + 0x3fc]
mov eax, dword [0x4be324]
imul si, word [eax]
mov ax, word [ebx + 0x58]
add ax, 0x16
add si, ax
mov bp, word [esp + 0xe]
movsx edi, bp
movsx eax, si
inc eax
cmp edi, eax
jg 0x458a58
mov eax, edi
add eax, 2
movsx edx, word [ebx + 0x58]
add edx, 0x16
cmp eax, edx
jge 0x458b04
cmp dword [0x4c13e8], 0
jne 0x458b04
mov eax, dword [ebx]
mov dword [0x4c13e8], eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebx]
push eax
call sub.user32.dll_GetWindowRect
cmp si, bp
jge 0x458abd
mov edx, dword [0x4beb7c]
mov edx, dword [edx]
sub edx, dword [esp + 0x34]
mov eax, 1
call fcn.004aa578
push eax
movsx eax, si
sub edi, eax
imul eax, edi, 0x15e
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, 0x172
sub edx, eax
xor eax, eax
call fcn.004aa578
mov byte [0x4c13a0], 2
jmp 0x458ae1
mov ecx, dword [esp + 0x2c]
add edi, ecx
add edi, 0x16
movsx esi, word [ebx + 0x58]
add edi, esi
imul eax, edi, 0x190
add ecx, 0x16
add ecx, esi
cdq
idiv ecx
mov byte [0x4c13a0], 1
cmp ax, 1
jge 0x458aeb
mov ax, 1
push 0
movsx eax, ax
push eax
push 3
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetTimer
jmp 0x458b04
mov byte [0x4c13a1], 0
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret