Function at 0x10051020
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 0x1012c768
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x408
mov eax, dword [0x10188068]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x3e0], esi
mov eax, dword [ebx + 8]
mov dword [ebp - 0x404], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x3dc], eax
mov eax, dword [esi + 4]
test eax, eax
je 0x1005108b
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
add esi, 0x2e8
lea edi, [ebp - 0x3d8]
mov ecx, 0xe6
lea eax, [ebp - 0x414]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x3e0]
xorps xmm0, xmm0
push eax
mov ecx, esi
movups xmmword [ebp - 0x414], xmm0
call fcn.10054310
mov eax, dword [esi + 0x28]
lea ecx, [esi + 0x28]
lea edx, [ebp - 0x3c]
xorps xmm0, xmm0
push edx
movups xmmword [ebp - 0x3c], xmm0
call dword [eax + 0x74]
push str.44777E38_7348_4954_AAE0_E95AB9F4A45A
push dword [ebp - 0x3dc]
call fcn.10108488
add esp, 8
test eax, eax
sete al
mov byte [esi + 0x680], al
mov eax, dword [esi + 4]
test eax, eax
je 0x10051100
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov edi, eax
jmp 0x10051102
xor edi, edi
push dword [ebp - 0x3dc]
mov ecx, esi
push dword [ebp - 0x404]
call fcn.10051320
cmp dword [esi + 0x700], 0
je 0x100511d5
xor eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x400]
mov dword [ebp - 0x3f8], eax
mov dword [ebp - 0x3f4], eax
mov dword [ebp - 0x3f0], eax
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x3e4], 1
mov dword [ebp - 0x400], esi
mov dword [ebp - 0x3fc], eax
mov dword [ebp - 0x3ec], 0xff045407
call fcn.100686f0
mov eax, dword [ebp - 0x3ec]
shr eax, 0x10
and eax, 0xf
cmp eax, 8
jb 0x10051194
mov eax, dword [0x10188d08]
jmp 0x1005119e
lea eax, [eax + eax*2]
mov eax, dword [eax*8 + 0x10188ca8]
push ecx
push eax
lea ecx, [ebp - 0x400]
call fcn.10068660
mov ecx, dword [ebp - 0x400]
mov edx, dword [ebp - 0x3ec]
add ecx, 0x28
shr edx, 0x18
push edx
mov eax, dword [ecx]
call dword [eax + 0xd0]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call fcn.10043ac0
mov ecx, esi
call fcn.100528a0
lea eax, [ebp - 0x3d8]
push eax
lea eax, [esi + 0x2e8]
push eax
call fcn.10108488
add esp, 8
test eax, eax
je 0x100512d7
test edi, edi
je 0x100512d7
mov ecx, dword [esi + 0x2b4]
test ecx, ecx
setne al
mov byte [esi + 0x288], al
test ecx, ecx
je 0x10051229
push 0
push 0
push 0x131
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esi + 0x290], 0
call fcn.1004a3a0
movups xmm0, xmmword [ebp - 0x3c]
mov dword [esi + 0x28c], eax
mov ecx, esi
lea eax, [ebp - 0x3f0]
movups xmmword [esi + 0x294], xmm0
push eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x3f0], xmm0
call fcn.10054310
mov eax, dword [esi + 0x244]
mov esi, dword [ebp - 0x3e8]
mov ecx, dword [ebp - 0x3e4]
mov edx, dword [eax + 0x24]
mov edi, dword [eax + 0x20]
mov eax, edi
sub eax, dword [ebp - 0x3f0]
add esi, eax
mov eax, edx
sub eax, dword [ebp - 0x3ec]
sub esi, edi
add ecx, eax
lea eax, [ebp - 0x24]
sub ecx, edx
push ecx
push esi
push dword [ebp - 0x410]
mov esi, dword [ebp - 0x3e0]
mov ecx, esi
push dword [ebp - 0x414]
push eax
call fcn.10053110
mov ecx, esi
movups xmm0, xmmword [eax]
movups xmmword [esi + 0x2a4], xmm0
push dword [esi + 0x2a8]
push dword [esi + 0x2a4]
call fcn.100543d0
push ecx
mov ecx, esi
call fcn.10054a40
jmp 0x100512eb
mov eax, dword [esi + 0x244]
push ecx
mov ecx, esi
push dword [eax + 0x24]
push dword [eax + 0x20]
call fcn.10053040
mov ecx, esi
call fcn.10052ad0
xor eax, eax
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.100e278d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8