Function at 0x4034e0
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41c765
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x70
mov eax, dword [0x427040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x64], ecx
mov eax, dword [edx]
lea ecx, [ebp - 0x54]
push ecx
push edx
call dword [eax + 0x6c]
xor ecx, ecx
test eax, eax
cmovns ecx, dword [ebp - 0x54]
mov dword [ebp - 0x60], ecx
test ecx, ecx
je 0x403a51
mov eax, dword [ecx]
lea edx, [ebp - 0x30]
push edx
push ecx
call dword [eax + 0x1c]
mov ecx, dword [ebp - 0x30]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
cmp ecx, 0x23
jbe 0x40356d
push 5
push dword [0x428ad8]
call edi
push 5
push dword [0x428a84]
call edi
mov ecx, dword [ebp - 0x30]
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
movq qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
xor esi, esi
mov byte [ebp - 4], 1
mov edx, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x5c], esi
test ecx, ecx
je 0x403903
movd xmm0, ecx
mov eax, esi
movd xmm1, esi
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
shr ecx, 0x1f
push 0
cvtdq2pd xmm0, xmm0
addsd xmm1, qword [eax*8 + 0x4246a0]
addsd xmm0, qword [ecx*8 + 0x4246a0]
divsd xmm1, xmm0
mulsd xmm1, qword [0x424690]
cvttsd2si eax, xmm1
push eax
push 0x402
push dword [0x428ad8]
call edx
mov ecx, dword [ebp - 0x60]
lea edx, [ebp - 0x38]
push edx
push esi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
push edx
push 0x80058000
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
test esi, esi
jne 0x403647
push esi
push dword [0x428a44]
call edi
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x58], esi
test esi, esi
je 0x4038eb
mov eax, dword [0x428af8]
mov edi, dword [0x428af4]
cmp edi, eax
je 0x4037ac
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403670
sub ecx, edx
mov esi, edi
sar ecx, 1
cmp dword [edi + 0x14], 7
jbe 0x403689
mov esi, dword [edi]
mov edx, dword [edi + 0x10]
cmp edx, ecx
jne 0x403737
mov ecx, dword [ebp - 0x58]
test edx, edx
je 0x4036b5
sub esi, ecx
nop dword [eax]
mov ax, word [esi + ecx]
cmp ax, word [ecx]
jne 0x403737
add ecx, 2
sub edx, 1
jne 0x4036a0
mov eax, dword [0x428af8]
mov esi, dword [ebp - 0x58]
cmp edi, eax
je 0x4037ac
push 0x428adc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, esi
mov dword [ebp - 0x40], 0
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4036f0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x50]
call fcn.004053d0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x24]
je 0x40374f
movups xmm0, xmmword [ebp - 0x50]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [ebp - 0x28], 0x18
mov word [ebp - 0x50], ax
jmp 0x40375f
mov eax, dword [0x428af8]
add edi, 0x18
mov esi, dword [ebp - 0x58]
cmp edi, eax
jne 0x403668
jmp 0x4036ba
lea ecx, [ebp - 0x50]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405660
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 4], 1
cmp ecx, 7
jbe 0x40379a
mov edx, dword [ebp - 0x50]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403790
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a6f
push ecx
push edx
call fcn.00406330
add esp, 8
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x428adc
call edi
mov esi, dword [ebp - 0x34]
jmp 0x4037b2
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, esi
call fcn.00402d40
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0x4c]
push eax
push 0x200
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
push 0x803
movups xmmword [ebp - 0x4c], xmm0
push 0
mov dword [ebp - 0x40], esi
call dword [sym.imp.WINMM.dll_mciSendCommandW]
test eax, eax
je 0x4038a9
push 0x428adc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, esi
mov dword [ebp - 0x6c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0
movups xmmword [ebp - 0x7c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403810
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x7c]
call fcn.004053d0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x18]
je 0x403857
movups xmm0, xmmword [ebp - 0x7c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x6c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [ebp - 0x1c], 0x18
mov word [ebp - 0x7c], ax
jmp 0x403867
lea ecx, [ebp - 0x7c]
push ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.00405660
mov ecx, dword [ebp - 0x68]
mov byte [ebp - 4], 1
cmp ecx, 7
jbe 0x4038a2
mov edx, dword [ebp - 0x7c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403898
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a6f
push ecx
push edx
call fcn.00406330
add esp, 8
push 0x428adc
call edi
push 0
push 0
push 0x804
push dword [ebp - 0x48]
call dword [sym.imp.WINMM.dll_mciSendCommandW]
push 0x401d10
push 0x1f4
push 0x91
push dword [ebp - 0x64]
call dword [sym.imp.USER32.dll_SetTimer]
push dword [ebp - 0x34]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x30]
inc esi
mov edx, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x5c], esi
cmp esi, ecx
jb 0x4035d0
push 0
push 0
push 0x402
push dword [0x428ad8]
call edx
push 0
push dword [0x428ad8]
call edi
push 0
push dword [0x428a84]
call edi
mov ecx, dword [ebp - 0x60]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push 0x91
push dword [0x428a90]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push dword [0x428a8c]
call edi
push 0x428a48
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x427ab4], 0
je 0x403971
push 0
push dword [0x428a8c]
call edi
mov byte [0x427ab4], 0
push 0x428a48
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x2c]
call fcn.00403020
lea ecx, [ebp - 0x20]
call fcn.00403280
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4039fb
mov edx, dword [ebp - 0x1c]
push ecx
call fcn.00405360
mov ecx, dword [ebp - 0x18]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x20]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4039dc
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a6f
push ecx
push esi
call fcn.00406330
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x403a51
mov edx, dword [ebp - 0x28]
push ecx
call fcn.00405360
mov ecx, dword [ebp - 0x24]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x2c]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x403a47
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a6f
push ecx
push esi
call fcn.00406330
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00405ea4
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0040dbb9
int3