Function at 0x51b637
Capabilities:
Hide graphical window

Disassembly:
mov eax, 0x5a9712
call fcn.00593e24
sub esp, 0x4c
push ebx
mov ebx, ecx
push edi
cmp byte [ebx + 0xc2], 0
je 0x51b67f
cmp byte [ebx + 0xc9], 0
jne 0x51b67f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0xc4]
cmp eax, 0x1f4
jbe 0x51b67f
push 5
mov byte [ebx + 0xc2], 0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
lea edi, [ebx + 0x68]
push edi
mov dword [ebp - 0x10], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
and dword [ebp - 4], 0
test byte [ebx + 0x80], 0x10
je 0x51b7cb
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x3c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51b6c4
test dl, dl
je 0x51b6c0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51b6c4
add eax, 2
add ecx, 2
test dl, dl
jne 0x51b6a4
xor eax, eax
jmp 0x51b6c9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51b6df
mov al, byte [ebx + 0xb4]
cmp al, byte [ebx + 0xb5]
je 0x51b7cb
push dword [ebx + 0x40]
lea ecx, [ebx + 0x50]
push dword [ebx + 0x3c]
call fcn.0058c580
push 0x435
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
mov al, byte [ebx + 0xb4]
cmp byte [ebx + 0xb5], al
je 0x51b747
push 0x5b5d98
push esi
mov byte [ebx + 0xb5], al
call dword [sym.imp.USER32.dll_SetWindowTextW]
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, eax
or eax, 0x8000
and ecx, 0xffff7fff
cmp byte [ebx + 0xb4], 0
cmove eax, ecx
push eax
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
lea ecx, [ebp - 0x28]
call int.00408eb0
mov byte [ebp - 4], 1
cmp byte [ebx + 0xb4], 0
je 0x51b78a
push dword [ebx + 0x3c]
lea ecx, [ebp - 0x58]
call fcn.00445870
mov byte [ebp - 4], 2
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 4]
mov ecx, dword [ebp - 0x28]
push 0xffffffffffffffff
push eax
mov edx, dword [ecx + 8]
lea ecx, [ebp - 0x28]
call edx
lea ecx, [ebp - 0x58]
call fcn.00408e60
jmp 0x51b798
push dword [ebx + 0x40]
lea ecx, [ebp - 0x28]
push dword [ebx + 0x3c]
call fcn.0058c580
lea ecx, [ebp - 0x40]
call int.00408eb0
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x24]
call dword [0x5b49d0]
push dword [ebp - 0x3c]
push esi
call dword [0x5b4998]
lea ecx, [ebp - 0x40]
call fcn.00408e60
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.00408e60
mov esi, dword [ebx + 0x88]
mov eax, esi
mov ecx, dword [ebx + 0xa0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51b7f9
test dl, dl
je 0x51b7f5
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51b7f9
add eax, 2
add ecx, 2
test dl, dl
jne 0x51b7d9
xor eax, eax
jmp 0x51b7fe
sbb eax, eax
or eax, 1
test eax, eax
je 0x51b823
push dword [ebx + 0x8c]
lea ecx, [ebx + 0x9c]
push esi
call fcn.0058c580
push dword [ebx + 0x88]
push dword [ebx + 4]
call dword [0x5b4998]
or dword [ebp - 4], 0xffffffff
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebx + 0xcc]
mov edi, dword [ebx + 0xd0]
test byte [ebx + 0x80], 4
je 0x51b89c
cmp dword [ebx + 0xd4], esi
je 0x51b89c
push 0
push esi
push 0x402
push 0x421
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov ecx, dword [ebx + 0xdc]
mov dword [ebx + 0xd4], esi
test ecx, ecx
je 0x51b89c
mov eax, dword [ecx]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
push ecx
addsd xmm0, qword [esi*8 + 0x5d6090]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x5d5cf4]
movss dword [esp], xmm0
call dword [eax + 0xc]
test byte [ebx + 0x80], 8
pop esi
je 0x51b8ca
cmp dword [ebx + 0xd8], edi
je 0x51b8ca
push 0
push edi
push 0x402
push 0x422
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov dword [ebx + 0xd8], edi
mov ecx, dword [ebp - 0xc]
pop edi
pop ebx
mov dword fs:[0], ecx
leave
ret