Function at 0x1012bb90
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
cmp dword [ebp + 0xc], 0
push esi
mov esi, dword [ebp + 0x1c]
push edi
jl 0x1012be4a
cmp dword [esi + 0x2c], 0xffffffff
jge 0x1012bc12
mov edi, dword [esi + 0x1fc]
test edi, edi
je 0x1012bbfe
cmp byte [edi + 0xc], 0
jne 0x1012bbf4
mov eax, dword [edi + 4]
mov byte [edi + 0xc], 1
test eax, eax
je 0x1012bbf4
push 0x3a98
push 0x3a98
push eax
push 0
call dword [sym.imp.KERNEL32.dll_ChangeTimerQueueTimer]
push 0
push 0
push edi
push 0x10102b10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x1fc], 0
mov eax, dword [esi + 0x1f4]
mov dword [esi + 0x1f8], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
cmp byte [0x10177410], 0
jne 0x1012bdd7
cmp byte [esi + 0x168], 0
je 0x1012bdd7
mov eax, dword [esi + 0x1a4]
test eax, eax
jne 0x1012bca6
cmp dword [esi + 0x1fc], eax
je 0x1012bc44
inc dword [esi + 0x1f8]
mov eax, dword [esi + 0x1f8]
cmp eax, dword [esi + 0x1f4]
jle 0x1012bc5e
mov eax, dword [esi + 0x1f0]
mov dword [esi + 0x1f8], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push esi
call sym.ExuiKrnln_X32.dll_ControlAddRedrawRect
push esi
call sym.ExuiKrnln_X32.dll_ControlRedraw
cmp dword [esi + 0x1fc], 0
jne 0x1012be4a
mov eax, dword [esi + 0x1e8]
push 0
push 0
push 0
push esi
push fcn.1012bb90
push eax
push eax
call sym.ExuiKrnln_X32.dll_CreateTimerEx
mov dword [esi + 0x1fc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 1
jne 0x1012bd25
mov edi, dword [esi + 0x1fc]
test edi, edi
je 0x1012bcbb
inc dword [esi + 0x1f8]
mov eax, dword [esi + 0x1f4]
cmp dword [esi + 0x1f8], eax
jl 0x1012bc5e
mov dword [esi + 0x1f8], eax
test edi, edi
je 0x1012be36
cmp byte [edi + 0xc], 0
jne 0x1012bd16
mov eax, dword [edi + 4]
mov byte [edi + 0xc], 1
test eax, eax
je 0x1012bd16
push 0x3a98
push 0x3a98
push eax
push 0
call dword [sym.imp.KERNEL32.dll_ChangeTimerQueueTimer]
push 0
push 0
push edi
push 0x10102b10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x1fc], 0
jmp 0x1012be36
cmp eax, 2
jne 0x1012be4a
cmp dword [esi + 0x1fc], 0
je 0x1012bd4f
mov eax, dword [esi + 0x1f8]
cmp dword [esi + 0x1f4], eax
jge 0x1012bd48
dec eax
jmp 0x1012bd49
inc eax
mov dword [esi + 0x1f8], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push esi
call sym.ExuiKrnln_X32.dll_ControlAddRedrawRect
push esi
call sym.ExuiKrnln_X32.dll_ControlRedraw
mov eax, dword [esi + 0x1f8]
mov edi, dword [esi + 0x1fc]
cmp eax, dword [esi + 0x1f4]
jne 0x1012bdd0
test edi, edi
je 0x1012be4a
cmp byte [edi + 0xc], 0
jne 0x1012bdbe
mov eax, dword [edi + 4]
mov byte [edi + 0xc], 1
test eax, eax
je 0x1012bdbe
push 0x3a98
push 0x3a98
push eax
push 0
call dword [sym.imp.KERNEL32.dll_ChangeTimerQueueTimer]
push 0
push 0
push edi
push 0x10102b10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x1fc], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
test edi, edi
jmp 0x1012bc79
mov edi, dword [esi + 0x1fc]
test edi, edi
je 0x1012be2a
cmp byte [edi + 0xc], 0
jne 0x1012be20
mov eax, dword [edi + 4]
mov byte [edi + 0xc], 1
test eax, eax
je 0x1012be20
push 0x3a98
push 0x3a98
push eax
push 0
call dword [sym.imp.KERNEL32.dll_ChangeTimerQueueTimer]
push 0
push 0
push edi
push 0x10102b10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x1fc], 0
mov eax, dword [esi + 0x1f4]
mov dword [esi + 0x1f8], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push esi
call sym.ExuiKrnln_X32.dll_ControlAddRedrawRect
push esi
call sym.ExuiKrnln_X32.dll_ControlRedraw
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18