Function at 0x10079c2c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
lea eax, [esi + 0x48]
push eax
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x1c], ebx
jne 0x10079c4f
xor esi, esi
jmp 0x10079e2b
cmp byte [esi + 1], 0
mov ebp, dword [esp + 0x18]
je 0x10079c90
cmp byte [esi + 4], 0
je 0x10079c90
mov ecx, dword [esi + ebp*4 + 0x30]
cmp ecx, ebx
je 0x10079c7f
cmp ebp, 1
jne 0x10079c86
and byte [esi + 4], 0
mov ecx, dword [esi + 0x34]
call fcn.100697ff
mov esi, eax
jmp 0x10079e2b
mov ecx, dword [esi + 0x30]
cmp ecx, ebx
je 0x10079c94
call fcn.100695fd
mov dword [esi + 0x2c], eax
jmp 0x10079c94
and byte [esi + 4], 0
cmp byte [esi + 1], 0
je 0x10079caa
cmp byte [esi + 2], 0
jne 0x10079caa
cmp ebp, 2
jne 0x10079c48
cmp dword [esi + 0x34], ebx
jne 0x10079c48
cmp dword [esi + ebp*4 + 0x30], 0
lea edi, [esi + ebp*4 + 0x30]
je 0x10079c48
cmp ebp, 1
jne 0x10079d4d
cmp dword [esi + 0x34], 0
je 0x10079ce3
cmp dword [esi + 0x24], 0xffffffff
jne 0x10079ce3
call dword [sym.imp.WINMM.dll_timeGetTime]
and eax, 0x7fffffff
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x34]
call fcn.100695fd
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x34]
test edi, edi
je 0x10079c48
mov ecx, esi
call fcn.10079fbf
mov ecx, edi
mov ebp, eax
call fcn.100695fd
cmp eax, ebp
jge 0x10079d40
test ebx, ebx
je 0x10079d14
mov ecx, ebx
call fcn.100696d8
push ebx
call fcn.1005bf2f
pop ecx
mov ebx, dword [esi + 0x34]
mov eax, dword [ebx]
test eax, eax
je 0x10079d22
mov dword [esi + 0x34], eax
jmp 0x10079d2a
and dword [esi + 0x40], 0
and dword [esi + 0x34], 0
test ebx, ebx
je 0x10079d39
mov eax, dword [ebx + 0x14]
mov al, byte [eax]
and al, 0xf0
cmp al, 0x30
jne 0x10079d40
mov edi, dword [esi + 0x34]
test edi, edi
jne 0x10079cee
test ebx, ebx
jne 0x10079df4
jmp 0x10079c48
cmp ebp, 2
jne 0x10079d8b
cmp dword [esi + 0x24], 0xffffffff
jne 0x10079d71
call dword [sym.imp.WINMM.dll_timeGetTime]
and eax, 0x7fffffff
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x38]
call fcn.100695fd
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0x38]
call fcn.100695fd
mov ecx, esi
mov ebx, eax
call fcn.10079fbf
cmp ebx, eax
jl 0x10079de0
jmp 0x10079c48
test ebp, ebp
jne 0x10079de0
cmp byte [esi + 6], 0
je 0x10079de0
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x10]
xor edx, edx
sub eax, dword [ecx + 0x100]
mov ecx, dword [esi + 0x7c]
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x1009b394]
shl eax, cl
mov ecx, 0x1b9
div ecx
mov ecx, dword [esi + 0x30]
lea ebp, [eax + eax*4]
shl ebp, 1
call fcn.100695fd
mov ecx, esi
mov ebx, eax
call fcn.10079fbf
add eax, ebp
cmp ebx, eax
jg 0x10079c48
mov ebp, dword [esp + 0x18]
mov ebx, dword [edi]
mov eax, dword [ebx]
test eax, eax
je 0x10079dec
mov dword [edi], eax
jmp 0x10079df4
and dword [esi + ebp*4 + 0x3c], 0
and dword [edi], 0
mov ecx, esi
call fcn.10079a4f
test eax, eax
jne 0x10079e1b
call dword [sym.imp.WINMM.dll_timeGetTime]
and eax, 0x7fffffff
cmp dword [esi + 0x78], 0
mov dword [esi + 0x14], eax
mov byte [esi + 1], 1
jne 0x10079e1b
or dword [esi + 0x24], 0xffffffff
test ebx, ebx
je 0x10079e29
mov ecx, ebx
call fcn.100695fd
mov dword [esi + 0x2c], eax
mov esi, ebx
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 4