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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52adf4
mov eax, dword fs:[0]
push eax
sub esp, 0x7b8
mov eax, dword [0x5644a4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x780], ecx
push 0xe
call dword [sym.imp.Dump.dll_if_dump]
add esp, 4
test eax, eax
je 0x4d68fd
push str.read_buffer_begin
lea ecx, [ebp - 0xbc]
call fcn.0040e500
mov dword [ebp - 0x784], eax
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x788], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x788]
push ecx
push 0xe
call dword [sym.imp.Dump.dll_dump]
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xbc]
call fcn.0040c9f0
xor edx, edx
jne 0x4d68a1
sub esp, 0x14
mov ecx, esp
mov dword [ebp - 0x778], esp
push 0x14
mov eax, dword [ebp + 8]
add eax, 4
push eax
call fcn.0050e930
mov dword [ebp - 0x78c], eax
mov ecx, dword [ebp - 0x78c]
mov dword [ebp - 0x790], ecx
mov dword [ebp - 4], 1
call fcn.004e50d0
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.004e4fd0
mov dword [ebp - 0x794], eax
mov edx, dword [ebp - 0x794]
mov dword [ebp - 0x320], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x228]
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x324], 0xffffffff
cmp dword [ebp - 0x320], 0
je 0x4d6995
mov edx, dword [ebp - 0x320]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x320]
mov edx, dword [eax + 4]
call edx
movzx eax, al
cmp eax, 2
je 0x4d699a
jmp 0x4d6e62
mov ecx, dword [ebp - 0x320]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x320]
mov eax, dword [edx + 0xc]
call eax
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp + 8]
add ecx, 0x18
push ecx
lea ecx, [ebp - 0x35c]
call fcn.0040ac70
mov dword [ebp - 4], 2
mov dword [ebp - 0x33c], 0xffffffff
mov dword [ebp - 0x32c], 0xffffffff
lea edx, [ebp - 0x33c]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x224]
push ecx
mov edx, dword [eax + 0x220]
push edx
lea eax, [ebp - 0x35c]
push eax
mov ecx, dword [ebp - 0x334]
call fcn.004d1550
mov dword [ebp - 0x330], eax
lea ecx, [ebp - 0x32c]
push ecx
mov eax, dword [ebp - 0x318]
cdq
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x220]
adc edx, dword [ecx + 0x224]
sub eax, 1
sbb edx, 0
push edx
push eax
lea edx, [ebp - 0x35c]
push edx
mov ecx, dword [ebp - 0x334]
call fcn.004d1550
mov dword [ebp - 0x328], eax
mov eax, dword [ebp - 0x330]
push eax
mov ecx, dword [ebp - 0x320]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x320]
mov eax, dword [edx + 0x84]
call eax
mov byte [ebp - 0x335], al
cmp dword [ebp - 0x330], 3
jle 0x4d6ab7
movzx ecx, byte [ebp - 0x335]
test ecx, ecx
jne 0x4d6ab7
cmp dword [0x569c70], 0
je 0x4d6ab7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x569c70]
cmp eax, 0x2710
jae 0x4d6ab7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x35c]
call fcn.00402c30
jmp 0x4d6e62
mov edx, dword [ebp - 0x330]
push edx
mov eax, dword [ebp - 0x320]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x320]
mov eax, dword [edx + 0x80]
call eax
mov ecx, dword [ebp - 0x318]
push ecx
mov edx, dword [ebp - 0x780]
mov eax, dword [edx + 0x3c]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x224]
push edx
mov eax, dword [ecx + 0x220]
push eax
lea ecx, [ebp - 0x35c]
push ecx
mov ecx, dword [ebp - 0x334]
call fcn.004d36b0
mov dword [ebp - 0x324], eax
cmp dword [ebp - 0x324], 0xffffffff
jne 0x4d6b5c
mov edx, dword [ebp - 0x330]
push edx
call fcn.004d6010
add esp, 4
mov eax, dword [ebp - 0x320]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x320]
mov eax, dword [edx + 0x18]
call eax
mov ecx, eax
call fcn.004dbcd0
mov dword [0x569c78], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x35c]
call fcn.00402c30
jmp 0x4d6e62
mov ecx, dword [ebp - 0x328]
push ecx
mov ecx, dword [ebp - 0x320]
call fcn.004dd8e0
mov edx, dword [ebp - 0x330]
push edx
call fcn.004d5f80
add esp, 4
mov dword [ebp - 0x340], eax
cmp dword [ebp - 0x340], 0
je 0x4d6dd4
mov dword [ebp - 0x364], 0xffffffff
mov dword [ebp - 0x770], 0xffffffff
lea eax, [ebp - 0x770]
push eax
lea ecx, [ebp - 0x364]
push ecx
lea edx, [ebp - 0x35c]
push edx
mov ecx, dword [ebp - 0x334]
call fcn.004d1610
mov ecx, dword [ebp - 0x320]
call fcn.004ddac0
mov dword [ebp - 0x360], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x360]
sub eax, dword [ebp - 0x340]
mov dword [ebp - 0x368], eax
mov byte [ebp - 0x76c], 0
push 0x3ff
push 0
lea eax, [ebp - 0x76b]
push eax
call fcn.00491e40
add esp, 0xc
push 0x14
mov ecx, dword [ebp + 8]
add ecx, 4
push ecx
lea edx, [ebp - 0xd8]
push edx
call fcn.0050dee0
add esp, 0xc
mov dword [ebp - 0x798], eax
mov eax, dword [ebp - 0x798]
mov dword [ebp - 0x79c], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x79c]
push ecx
lea edx, [ebp - 0xf4]
push edx
call fcn.0051f360
add esp, 8
mov dword [ebp - 0x7a0], eax
mov eax, dword [ebp - 0x7a0]
mov dword [ebp - 0x7a4], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x770]
push ecx
mov edx, dword [ebp - 0x364]
push edx
mov eax, dword [ebp - 0x368]
push eax
mov ecx, dword [ebp - 0x340]
push ecx
mov edx, dword [ebp - 0x330]
push edx
mov eax, dword [0x569c78]
shr eax, 0xa
push eax
mov ecx, dword [ebp - 0x7a4]
call fcn.00402b10
push eax
push str.dtpchokeih_sds_dpn_dct_dpt_dbgn_dend_d
push 0x400
lea ecx, [ebp - 0x76c]
push ecx
call fcn.00491d00
add esp, 0x28
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xf4]
call fcn.00402ab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xd8]
call fcn.00402c30
lea edx, [ebp - 0x76c]
push edx
call dword [sym.imp.quality.dll_report_something]
add esp, 4
push 0xe
call dword [sym.imp.Dump.dll_if_dump]
add esp, 4
test eax, eax
je 0x4d6dab
mov eax, dword [0x569c78]
shr eax, 0xa
mov dword [ebp - 0x77c], eax
push str.pchokedl_rate_1_ulIdxBegin_2_pause_time_3_play_time_4_needlen_5_begin_idx_6_end_idx_7_
lea ecx, [ebp - 0x19c]
call fcn.0040e500
mov dword [ebp - 0x7a8], eax
mov ecx, dword [ebp - 0x7a8]
mov dword [ebp - 0x7ac], ecx
mov byte [ebp - 4], 5
lea edx, [ebp - 0x770]
push edx
lea eax, [ebp - 0x364]
push eax
lea ecx, [ebp - 0x318]
push ecx
lea edx, [ebp - 0x368]
push edx
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x330]
push ecx
lea edx, [ebp - 0x77c]
push edx
mov ecx, dword [ebp - 0x7ac]
call fcn.0040e7c0
mov ecx, eax
call fcn.0040e800
mov ecx, eax
call fcn.0040e800
mov ecx, eax
call fcn.0040e800
mov ecx, eax
call fcn.0040e800
mov ecx, eax
call fcn.004367b0
mov ecx, eax
call fcn.004367b0
push eax
push 0xe
call dword [sym.imp.Dump.dll_dump]
add esp, 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x19c]
call fcn.0040c9f0
xor eax, eax
jne 0x4d6ce3
push 1
mov ecx, dword [ebp - 0x320]
call fcn.004ddae0
mov ecx, dword [ebp - 0x340]
push ecx
mov ecx, dword [ebp - 0x320]
call fcn.004ddb10
jmp 0x4d6e48
push 0xe
call dword [sym.imp.Dump.dll_if_dump]
add esp, 4
test eax, eax
je 0x4d6e44
push str.read_buffer:fineulIdxBegin_1_needlen_2_
lea ecx, [ebp - 0x244]
call fcn.0040e500
mov dword [ebp - 0x7b0], eax
mov edx, dword [ebp - 0x7b0]
mov dword [ebp - 0x7b4], edx
mov byte [ebp - 4], 6
lea eax, [ebp - 0x318]
push eax
lea ecx, [ebp - 0x330]
push ecx
mov ecx, dword [ebp - 0x7b4]
call fcn.0040e800
mov ecx, eax
call fcn.0040e800
push eax
push 0xe
call dword [sym.imp.Dump.dll_dump]
add esp, 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x244]
call fcn.0040c9f0
xor edx, edx
jne 0x4d6dd4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x35c]
call fcn.00402c30
xor eax, eax
jne 0x4d6971
mov dword [ebp - 0x314], 0x402
push 0x14
mov ecx, dword [ebp + 8]
add ecx, 4
push ecx
push 0x14
lea edx, [ebp - 0x310]
push edx
call fcn.00491940
add esp, 0x10
mov eax, dword [ebp - 0x324]
mov dword [ebp - 0x2fc], eax
cmp dword [ebp - 0x324], 0xffffffff
jne 0x4d6eda
mov dword [ebp - 0x774], 0x28
push 4
lea ecx, [ebp - 0x774]
push ecx
mov ecx, dword [ebp - 0x780]
add ecx, 4
call fcn.00419cf0
push 0x28
lea edx, [ebp - 0x314]
push edx
mov ecx, dword [ebp - 0x780]
add ecx, 4
call fcn.00419cf0
xor eax, eax
jmp 0x4d6fd9
call fcn.004d5f20
mov dword [ebp - 0x7b8], eax
mov eax, dword [ebp - 0x324]
push eax
push 0x28
mov ecx, dword [ebp - 0x7b8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x7b8]
mov eax, dword [edx + 0x14]
call eax
mov dword [ebp - 0x31c], eax
push 4
lea ecx, [ebp - 0x31c]
push ecx
mov ecx, dword [ebp - 0x780]
add ecx, 4
call fcn.00419cf0
push 0x28
lea edx, [ebp - 0x314]
push edx
mov ecx, dword [ebp - 0x780]
add ecx, 4
call fcn.00419cf0
call fcn.004d5f20
mov dword [ebp - 0x7bc], eax
mov eax, dword [ebp - 0x324]
push eax
mov ecx, dword [ebp - 0x780]
mov edx, dword [ecx + 0x3c]
push edx
mov eax, dword [ebp - 0x780]
push eax
mov ecx, dword [ebp - 0x7bc]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x7bc]
mov eax, dword [edx + 0x10]
call eax
push 0xe
call dword [sym.imp.Dump.dll_if_dump]
add esp, 4
test eax, eax
je 0x4d6fd3
push str.read_buffer_endlen_1_
lea ecx, [ebp - 0x2ec]
call fcn.0040e500
mov dword [ebp - 0x7c0], eax
mov ecx, dword [ebp - 0x7c0]
mov dword [ebp - 0x7c4], ecx
mov dword [ebp - 4], 7
lea edx, [ebp - 0x31c]
push edx
mov ecx, dword [ebp - 0x7c4]
call fcn.0040e800
push eax
push 0xe
call dword [sym.imp.Dump.dll_dump]
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2ec]
call fcn.0040c9f0
xor eax, eax
jne 0x4d6f6b
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00490d41
mov esp, ebp
pop ebp
ret 4