Function at 0x48e8ae
Capabilities:
Check for time delay via gettickcount
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x106c
call fcn.004a98b0
mov ecx, dword [ebp + 0x10]
mov eax, dword [0x4dd52c]
mov dword [ebp - 0x1040], ecx
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x1044], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x1038], ecx
mov ecx, dword [ebp + 0x1c]
push esi
xor esi, esi
push edi
mov dword [ebp - 0x102c], eax
mov dword [ebp - 0x104c], eax
mov dword [ebp - 0x1050], ecx
xor eax, eax
mov word [ebp - 0x101c], si
mov ecx, 0x3ff
lea edi, [ebp - 0x101a]
rep stosd dword es:[edi], eax
xor edx, edx
inc edx
cmp word [ebx + 0x578], 2
stosw word es:[edi], ax
mov ax, word [ebx + 0xa3f]
mov dword [ebp - 0x1030], esi
mov dword [ebp - 0x1020], esi
mov word [ebp - 0xc], si
mov word [ebp - 0xa], dx
mov word [ebp - 8], 2
mov dword [ebp - 0x103c], esi
mov word [ebp - 0x1034], ax
jne 0x48e959
mov dword [ebp - 0x1034], edx
cmp byte [ebp + 0x30], 0
mov ax, word [ebx + 0x144]
mov word [ebp - 0x1048], ax
jne 0x48e98a
cmp word [ebp - 0x1034], dx
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1024], eax
jne 0x48e993
mov eax, dword [ebp + 0x14]
shl eax, 2
mov dword [ebp + 0x14], eax
jmp 0x48e993
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1024], eax
mov ecx, dword [ebp + 0x14]
lea edi, [ecx + 3]
and edi, 0xfffffffc
push edi
push esi
push dword [ebx + 0x500c]
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x1068], eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, esi
mov dword [ebp - 0x1028], eax
jne 0x48e9c5
xor eax, eax
jmp 0x48ee00
mov ecx, edi
mov edi, dword [ebp - 0x1028]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 0x24]
and eax, 0x20
mov dword [ebp - 0x106c], eax
je 0x48ea05
or word [ebp - 0x12], 0xffff
mov word [ebp - 0x10], si
mov word [ebp - 0x14], 0xfffe
lea esi, [ebp - 0x14]
lea edi, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
cmp word [ebp + 0x1c], si
je 0x48eb66
mov eax, dword [ebp + 0x24]
and eax, 0x10
mov dword [ebp - 0x14], eax
movzx eax, word [ebp + 0x1c]
mov dword [ebp - 0x1054], eax
add dword [ebp + 0x1c], 0xffff
cmp dword [ebp - 0x106c], esi
mov edi, dword [ebp - 0x102c]
mov dword [ebp - 0x1020], edi
je 0x48ea7a
cmp dword [ebp + 0x20], 0x20
jne 0x48ea4f
mov eax, dword [ebp - 0x1024]
lea eax, [edi + eax*4 - 2]
jmp 0x48ea74
cmp dword [ebp + 0x20], 0x18
je 0x48ea67
cmp dword [ebp + 0x20], 0x10
je 0x48ea67
mov eax, dword [ebp - 0x1024]
lea eax, [edi + eax - 1]
jmp 0x48ea74
mov eax, dword [ebp - 0x1024]
lea ecx, [edi + eax*2]
lea eax, [eax + ecx - 1]
mov dword [ebp - 0x1020], eax
cmp word [ebp - 0x1034], 1
jne 0x48ead0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x38]
mov word [ebp - 0x1c], 2
push dword [ebp + 0x34]
mov word [ebp - 0x1a], 1
push 4
push dword [ebp - 0x1024]
mov word [ebp - 0x18], si
push dword [ebp + 0x24]
push dword [ebp - 0x1038]
push dword [ebp - 0x1044]
push dword [ebp - 0x1028]
push dword [ebp - 0x1020]
push dword [ebp + 0x20]
push ebx
call fcn.004416b5
jmp 0x48eb0a
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push dword [ebp - 0x1048]
push dword [ebp - 0x1024]
push dword [ebp + 0x24]
push dword [ebp - 0x1038]
push dword [ebp - 0x1044]
push dword [ebp - 0x1028]
push dword [ebp - 0x1020]
push dword [ebp + 0x20]
push ebx
call fcn.00441b42
mov dword [ebp - 0x1030], eax
mov ecx, dword [ebp - 0x1030]
mov eax, dword [ebp - 0x1028]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x1068]
cmp ecx, esi
jbe 0x48eb41
mov edi, edx
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x102c]
cmp dword [ebp - 0x14], esi
jne 0x48eb4e
add edi, dword [ebp - 0x1040]
jmp 0x48eb54
sub edi, dword [ebp - 0x1040]
dec dword [ebp - 0x1054]
mov dword [ebp - 0x102c], edi
jne 0x48ea22
add dword [ebp + 0x1c], 0xffff
cmp word [ebp - 0x1034], 1
jne 0x48ec81
cmp dword [ebx + 0x1dfa8], 1
jne 0x48ec49
mov eax, dword [ebx + 0x1dfac]
cmp eax, esi
je 0x48ec49
cmp eax, 2
jb 0x48ec49
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x1064]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
push 0x413f58
mov ecx, 0x400
lea edi, [ebp - 0x101c]
rep stosd dword es:[edi], eax
movzx eax, word [ebp - 0x1056]
push 0x413ef8
push eax
movzx eax, word [ebp - 0x1058]
push eax
movzx eax, word [ebp - 0x105a]
push eax
movzx eax, word [ebp - 0x105c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x101c]
push 0x800
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x101c]
push eax
jne 0x48ec2b
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x48ec49
lea edi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp dword [ebp + 0x20], 8
ja 0x48ec5e
mov dword [ebx + 0x1dfe8], 3
jmp 0x48edea
push dword [ebp + 0x48]
lea eax, [ebp - 0xc]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push dword [ebp - 0x1048]
push eax
push dword [ebp - 0x1030]
push 1
jmp 0x48ed7b
cmp dword [ebx + 0x1dfa8], 1
jne 0x48ed4f
mov eax, dword [ebx + 0x1dfac]
cmp eax, esi
je 0x48ed4f
cmp eax, 2
jb 0x48ed4f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x1064]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
push 0x413ec0
mov ecx, 0x400
lea edi, [ebp - 0x101c]
rep stosd dword es:[edi], eax
movzx eax, word [ebp - 0x1056]
push 0x413ef8
push eax
movzx eax, word [ebp - 0x1058]
push eax
movzx eax, word [ebp - 0x105a]
push eax
movzx eax, word [ebp - 0x105c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x101c]
push 0x800
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x101c]
push eax
jne 0x48ed31
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x48ed4f
lea edi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp dword [ebp + 0x20], 8
jb 0x48edea
push dword [ebp + 0x48]
lea eax, [ebp - 0xc]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push dword [ebp - 0x1048]
push eax
push dword [ebp - 0x1030]
push dword [ebp - 0x1034]
push dword [ebp - 0x1024]
movzx eax, word [ebp - 0x1050]
push dword [ebp - 0x104c]
push dword [ebp - 0x1020]
push dword [ebp - 0x1028]
push esi
push eax
push esi
push dword [ebp + 0x38]
lea eax, [ebp - 0x103c]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp - 0x1038]
push dword [ebp - 0x1044]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp - 0x1040]
push dword [ebp - 0x102c]
push eax
push ebx
call fcn.0048d7c5
test eax, eax
je 0x48edea
mov eax, dword [ebp - 0x103c]
mov dword [ebx + 0x1dfe8], eax
push dword [ebp - 0x1028]
push esi
push dword [ebx + 0x500c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.004a9585
leave
ret 0x44