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

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x28], 1
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], eax
jne 0x41f375
movzx ecx, word [esi + 0x43c]
cdq
idiv ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x52c]
sub ecx, 1
je 0x41f3c0
xor ebp, ebp
sub ecx, 1
je 0x41f3b0
sub ecx, 1
je 0x41f39c
xor edi, edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], 4
jmp 0x41f3d4
lea edi, [ebx - 0x320]
mov dword [esp + 0x14], 0xfffffffc
mov dword [esp + 0x18], ebp
jmp 0x41f3d4
xor edi, edi
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], ebp
jmp 0x41f3d4
xor edi, edi
lea ebp, [eax - 0x258]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0xfffffffc
cmp dword [0x4b3d98], 0
jne 0x41f543
mov ebx, esi
call fcn.00428cb0
test eax, eax
je 0x41f5b5
mov ebx, 1
cmp dword [0x4b5a90], ebx
jne 0x41f405
call dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x41f40b
call dword [sym.imp.WINMM.dll_timeGetTime]
add edi, dword [esp + 0x14]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x20], eax
test edi, edi
jge 0x41f41f
xor edi, edi
jmp 0x41f42e
mov eax, dword [esp + 0x1c]
add eax, 0xfffffce0
cmp edi, eax
jle 0x41f42e
mov edi, eax
test ebp, ebp
jge 0x41f436
xor ebp, ebp
jmp 0x41f445
mov eax, dword [esp + 0x10]
add eax, 0xfffffda8
cmp ebp, eax
jle 0x41f445
mov ebp, eax
cmp dword [esp + 0x2c], ebx
jne 0x41f455
push edi
mov ebx, ebp
call fcn.0041f5e0
jmp 0x41f471
mov eax, dword [esp + 0x28]
push ebp
push edi
push 0x258
push 0x320
push 0
push 0
lea ecx, [esi + 0x68]
call fcn.00408dc0
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
push 0
push 0
push 0
push 0x258
push 0x320
push 0
push 0
mov ecx, esi
call eax
mov edi, edi
cmp dword [0x4b5a90], 1
jne 0x41f4a1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x41f4a7
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [esi + 0x53c]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jbe 0x41f4ca
mov ebx, esi
call fcn.00428cb0
test eax, eax
jne 0x41f490
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov eax, dword [esi + 0x52c]
cmp eax, 3
ja case.default.0x41f4d5
jmp dword [eax*4 + 0x41f5c0]
mov edx, dword [esp + 0x10]
add edx, 0xfffffda8
cmp edx, ebp
jmp 0x41f4fd
test ebp, ebp
jmp 0x41f4fd
mov eax, dword [esp + 0x1c]
add eax, 0xfffffce0
cmp eax, edi
jmp 0x41f4fd
test edi, edi
je case.default.0x41f4d5
mov ecx, dword [esi + 0x24]
push 0
mov eax, 1
call fcn.004037d0
mov ecx, dword [esi + 0x24]
push 0
mov eax, 0x80
call fcn.004037d0
cmp eax, 1
je case.default.0x41f4d5
mov ebx, esi
call fcn.00428cb0
test eax, eax
jne 0x41f3f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x52c]
cmp ecx, 3
ja case.default.0x41f54e
jmp dword [ecx*4 + 0x41f5d0]
lea ebp, [eax - 0x258]
jmp case.default.0x41f54e
xor ebp, ebp
jmp case.default.0x41f54e
lea edi, [ebx - 0x320]
jmp case.default.0x41f54e
xor edi, edi
cmp dword [esp + 0x2c], 1
jne 0x41f57c
push edi
mov ebx, ebp
call fcn.0041f5e0
jmp 0x41f598
mov eax, dword [esp + 0x28]
push ebp
push edi
push 0x258
push 0x320
push 0
push 0
lea ecx, [esi + 0x68]
call fcn.00408dc0
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
push 0
push 0
push 0
push 0x258
push 0x320
push 0
push 0
mov ecx, esi
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8