Function at 0x10057479
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008ac04
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0xf088
call fcn.10062090
mov eax, dword [0x1009a008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x44]
mov ebx, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov dword [ebp - 0xf050], eax
mov eax, dword [ebp + 0x14]
xor edi, edi
mov dword [ebp - 0xf024], eax
mov eax, dword [ebp + 0xc]
mov esi, ecx
mov dword [ebp - 0xf084], eax
mov eax, dword [ebp + 0x10]
mov dword [0x1009c308], edi
mov dword [0x1009c30c], edi
push dword [esi + 0x11fbc]
mov dword [ebp - 0xf054], esi
mov dword [ebp - 0xf048], edi
mov dword [ebp - 0xf078], edi
mov dword [ebp - 0xf040], edi
mov byte [ebp - 0xf029], 0
mov dword [ebp - 0xf04c], edi
mov dword [ebp - 0xf058], edi
mov dword [ebp - 0xf080], eax
mov dword [ebp - 4], edi
call ebx
test eax, eax
jne 0x10057575
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1010
mov esi, eax
call fcn.10062b5c
pop ecx
mov dword [ebp - 0xf028], eax
mov byte [ebp - 4], 1
cmp eax, edi
je 0x1005755a
push esi
push 0x100099a8
push esi
push 5
push eax
call fcn.10037a50
add esp, 0x14
mov edi, eax
mov byte [ebp - 4], 0
mov dword [ebp - 0xf070], edi
push 0x1008bdb8
lea eax, [ebp - 0xf070]
push eax
call fcn.1006330f
push dword [esi + 0x11fc0]
call ebx
test eax, eax
jne 0x100575cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1010
mov esi, eax
call fcn.10062b5c
pop ecx
mov dword [ebp - 0xf028], eax
mov byte [ebp - 4], 2
cmp eax, edi
je 0x100575b6
push esi
push 0x10009940
push esi
push 5
push eax
call fcn.10037a50
add esp, 0x14
mov edi, eax
mov byte [ebp - 4], 0
mov dword [ebp - 0xf05c], edi
push 0x1008bdb8
lea eax, [ebp - 0xf05c]
jmp 0x1005756f
lea ecx, [esi + 0x3020]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [esi + 0x11c78]
call fcn.10041c43
mov eax, dword [ebp + 8]
mov ecx, eax
add eax, 0x38
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0xf078]
push eax
push edi
push esi
push 0x10044a2b
push edi
push edi
mov dword [esi + 0x11c7c], ecx
mov dword [esi + 0x11fc4], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xf048], eax
cmp eax, edi
jne 0x1005766c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1010
mov esi, eax
call fcn.10062b5c
pop ecx
mov dword [ebp - 0xf028], eax
mov byte [ebp - 4], 3
cmp eax, edi
je 0x10057652
push esi
push 0x100098e8
push esi
push 5
push eax
call fcn.10037a50
add esp, 0x14
mov edi, eax
mov byte [ebp - 4], 0
mov dword [ebp - 0xf064], edi
push 0x1008bdb8
lea eax, [ebp - 0xf064]
jmp 0x1005756f
lea eax, [ebp - 0xf048]
push eax
lea ecx, [ebp - 0xf098]
call fcn.100379a4
mov eax, dword [esi + 0x11fc8]
cdq
mov ecx, 0xb0
idiv ecx
push edi
mov byte [ebp - 4], 4
mov dword [ebp - 0xf040], eax
lea eax, [ebp - 0xf040]
push eax
push dword [esi + 0x11fd4]
push 6
call dword [esi + 0x11fd0]
push dword [ebp - 0xf040]
push dword [esi + 0x11fbc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, eax
cmp ebx, edi
je 0x10057714
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1010
mov esi, eax
call fcn.10062b5c
pop ecx
mov dword [ebp - 0xf028], eax
mov byte [ebp - 4], 5
cmp eax, edi
je 0x100576fa
push ebx
push esi
push 0x10009878
push esi
push 5
push eax
call fcn.10037a50
add esp, 0x18
mov edi, eax
mov byte [ebp - 4], 4
mov dword [ebp - 0xf068], edi
push 0x1008bdb8
lea eax, [ebp - 0xf068]
jmp 0x1005756f
push edi
push edi
push dword [esi + 0x11fd4]
push 7
call dword [esi + 0x11fd0]
push edi
push edi
push dword [esi + 0x11fd4]
push 0x28
call dword [esi + 0x11fd0]
mov dword [ebp - 0xf03c], edi
mov dword [ebp - 0xf038], edi
mov dword [ebp - 0xf034], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0xf000
mov dword [ebp - 0xf044], eax
mov dword [ebp - 0xf028], eax
lea eax, [ebp - 0xf014]
push edi
push eax
call fcn.100620c0
add esp, 0xc
cmp byte [ebp + 0x3c], 1
jne 0x10057785
cmp dword [ebp + 0x34], edi
jne 0x10057785
cmp byte [ebp + 0x2c], 1
jne 0x10057785
mov ecx, esi
call fcn.10050b39
mov dword [ebp - 0xf030], edi
mov ebx, 0x990
cmp dword [ebp - 0xf030], 0x96
jge 0x1005786c
push 0xf000
lea eax, [ebp - 0xf014]
push edi
push eax
call fcn.100620c0
add esp, 0xc
cmp byte [ebp + 0x2c], 1
jne 0x10057839
cmp byte [ebp + 0x38], 1
je 0x10057829
cmp byte [ebp + 0x30], 1
mov ecx, esi
sete al
inc al
movzx eax, al
push eax
push dword [ebp - 0xf024]
lea eax, [ebp - 0xf014]
push ebx
push 0xa
push eax
call fcn.10045e50
push ebx
push 0xa
lea eax, [ebp - 0xf014]
push eax
mov ecx, esi
call fcn.10045db3
xor eax, eax
inc eax
push eax
push 0xa
push eax
push edi
push eax
lea ecx, [ebp - 0xf014]
push ecx
push eax
push 4
push dword [ebp - 0xf024]
mov ecx, esi
push 0x1e
pop eax
sub eax, dword [ebp - 0xf030]
imul eax, eax, 0xa
add eax, dword [ebp - 0xf024]
push eax
call fcn.10046a4f
push 0xa
lea eax, [ebp - 0xf014]
push eax
mov ecx, esi
call fcn.10046dcb
mov eax, dword [esi + 0x11fcc]
imul eax, eax, 0xa
push eax
push dword [ebp - 0xf024]
lea eax, [ebp - 0xf014]
push 0xa
push eax
mov ecx, esi
call fcn.10041963
add dword [ebp - 0xf024], 0xa
add dword [ebp - 0xf030], 0xa
jmp 0x10057790
mov ebx, dword [ebp + 0x18]
cmp ebx, edi
jle 0x100578d7
cmp edi, ebx
jge 0x100578d7
mov eax, ebx
sub eax, edi
cmp eax, 0xa
jge 0x100578ab
mov ecx, dword [esi + 0x11fcc]
imul ecx, eax
push ecx
push dword [ebp - 0xf024]
mov ecx, esi
push eax
lea eax, [ebp - 0xf014]
push eax
call fcn.10041963
mov eax, ebx
sub eax, edi
add dword [ebp - 0xf024], eax
jmp 0x100578d2
mov eax, dword [esi + 0x11fcc]
imul eax, eax, 0xa
push eax
push dword [ebp - 0xf024]
lea eax, [ebp - 0xf014]
push 0xa
push eax
mov ecx, esi
call fcn.10041963
add dword [ebp - 0xf024], 0xa
add edi, 0xa
jmp 0x10057873
lea ecx, [esi + 0x3020]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
xor edi, edi
mov dword [ebp - 0xf030], ebx
cmp ebx, edi
je 0x10057bb9
cmp byte [ebx + 0x19], 1
jne 0x10057913
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xf074], eax
push 0x1008bdb8
lea eax, [ebp - 0xf074]
jmp 0x1005756f
cmp byte [ebp + 0x40], 1
jne 0x1005794e
cmp dword [ebp - 0xf050], edi
je 0x1005794e
cmp dword [ebp - 0xf024], 0x4b0
jge 0x1005794e
mov eax, dword [ebp - 0xf024]
push dword [ebx + 0x24]
imul eax, eax, 0x990
add eax, dword [ebp - 0xf050]
push eax
push dword [ebx + 0x2c]
call fcn.10062770
add esp, 0xc
cmp byte [ebp + 0x2c], 1
jne 0x1005797e
cmp byte [ebp + 0x38], 0
jne 0x1005796c
push 0x990
push dword [ebx + 0x28]
mov ecx, esi
push dword [ebx + 0x2c]
call fcn.10045db3
cmp dword [ebp - 0xf024], edi
jne 0x1005797e
push dword [ebx + 0x2c]
mov ecx, esi
call fcn.10045d14
push dword [ebx + 0x24]
mov ecx, esi
push dword [ebp - 0xf024]
push dword [ebx + 0x28]
push dword [ebx + 0x2c]
call fcn.10041963
mov al, byte [ebx + 0x18]
mov byte [ebp - 0xf029], al
mov eax, dword [ebx + 0x28]
add dword [ebp - 0xf024], eax
cdq
add dword [ebp - 0xf03c], eax
adc dword [ebp - 0xf038], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xf06c], eax
cmp dword [ebp + 0x20], edi
jbe 0x100579fb
mov edx, dword [ebp + 0x20]
imul edx, edx, 0x3e8
mov ecx, eax
sub ecx, dword [ebp - 0xf044]
cmp ecx, edx
jbe 0x100579fb
mov dword [ebp - 0xf044], eax
lea eax, [ebp - 0xf03c]
push eax
lea eax, [ebp - 0xf084]
push eax
push dword [esi + 0x11fd4]
push 0xc
call dword [esi + 0x11fd0]
cmp dword [ebp + 0x24], edi
jbe 0x10057b2f
inc dword [ebp - 0xf034]
cmp dword [ebp - 0xf034], 8
jle 0x10057a8c
and dword [ebp - 0xf034], 0
xor eax, eax
lea edi, [ebp - 0xf020]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0xc
lea eax, [ebp - 0xf020]
push eax
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.10041551
mov dword [ebp - 4], 4
jmp 0x10057a8c
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0xf06c]
imul edx, edx, 0x3e8
mov ecx, eax
sub ecx, dword [ebp - 0xf028]
cmp ecx, edx
jbe 0x10057b2f
movzx ecx, byte [ebp - 0xf01b]
mov dword [ebp - 0xf028], eax
movzx eax, byte [ebp - 0xf01c]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xf01a]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xf019]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xf017]
mov dword [ebp - 0xf04c], eax
movzx eax, byte [ebp - 0xf018]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xf016]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xf015]
shl eax, 8
or eax, ecx
mov dword [ebp - 0xf058], eax
lea eax, [ebp - 0xf058]
push eax
lea eax, [ebp - 0xf04c]
push eax
push dword [esi + 0x11fd4]
push 0xd
call dword [esi + 0x11fd0]
mov ecx, dword [esi + 0x11c78]
push ebx
call fcn.10041c7a
push 0
push dword [esi + 0x11fc0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x100578d7
cmp byte [esi + 0x11c76], 1
jne 0x100578d7
push 0x1010
call fcn.10062b5c
pop ecx
mov dword [ebp - 0xf028], eax
xor eax, eax
mov byte [ebp - 4], 8
cmp dword [ebp - 0xf028], eax
je 0x10057b9f
push dword [ebp - 0xf038]
push dword [ebp - 0xf03c]
push 0x10009820
push eax
push 0xe
push dword [ebp - 0xf028]
call fcn.10037a50
add esp, 0x18
mov dword [ebp - 0xf07c], eax
mov byte [ebp - 4], 4
push 0x1008bdb8
lea eax, [ebp - 0xf07c]
jmp 0x1005756f
cmp dword [ebp + 0x1c], edi
jle 0x10057c25
push 0xa
xor ebx, ebx
pop edi
mov eax, dword [ebp + 0x1c]
cmp ebx, eax
jge 0x10057c25
sub eax, ebx
cmp eax, edi
jge 0x10057bfc
mov ecx, dword [esi + 0x11fcc]
imul ecx, eax
push ecx
push dword [ebp - 0xf024]
mov ecx, esi
push eax
lea eax, [ebp - 0xf014]
push eax
call fcn.10041963
mov eax, dword [ebp + 0x1c]
sub eax, ebx
add dword [ebp - 0xf024], eax
jmp 0x10057c21
mov eax, dword [esi + 0x11fcc]
imul eax, eax, 0xa
push eax
push dword [ebp - 0xf024]
lea eax, [ebp - 0xf014]
push edi
push eax
mov ecx, esi
call fcn.10041963
add dword [ebp - 0xf024], edi
add ebx, edi
jmp 0x10057bc3
cmp byte [ebp - 0xf029], 0
jne 0x10057c51
push 0
push 0
push dword [esi + 0x11fd4]
push 0x19
call dword [esi + 0x11fd0]
push dword [0x10097748]
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100578d7
lea ecx, [ebp - 0xf098]
mov byte [ebp - 4], 0
call fcn.100379c7
mov ecx, esi
call fcn.10044f16
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10062074
leave
ret 0x40