joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4bf92c
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov byte [ebp - 1], al
xor ebx, ebx
mov eax, dword [0x53ef18]
cmp dword [eax + 0xf0], 0
jl 0x4bf9d6
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e544]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x53ef18]
mov eax, dword [eax + 0xfc]
cdq
cmp edx, dword [esp + 4]
jne 0x4bf974
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4bf9d6
jmp 0x4bf978
pop edx
pop eax
jge 0x4bf9d6
cmp byte [ebp - 1], 0
jne 0x4bf997
mov eax, dword [0x53ec04]
mov eax, dword [eax]
movzx eax, word [eax + 0x58]
mov edx, dword [0x53ef18]
cmp eax, dword [edx + 0x100]
jge 0x4bf9d6
mov eax, dword [0x53ef18]
mov eax, dword [eax + 0xf0]
call fcn.004ff2bc
mov edx, dword [ebp + 8]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jl 0x4bf9d6
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e544]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax - 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 8]
call fcn.004becf4
mov ebx, eax
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret

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

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4bfbea
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne 0x4bfbea
mov eax, dword [0x53ef18]
cmp byte [eax + 0x12c], 0
je 0x4bfbea
mov eax, dword [0x53ec04]
mov eax, dword [eax]
movzx eax, word [eax + 0x56]
mov edx, dword [0x53ef18]
cmp eax, dword [edx + 0x134]
jge 0x4bfbea
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e47c]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x53ef18]
imul eax, dword [eax + 0x130], 0x3e8
cdq
cmp edx, dword [esp + 4]
jne 0x4bfbbd
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4bfbea
jmp 0x4bfbc1
pop edx
pop eax
jge 0x4bfbea
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e47c]
mov dword [edx], eax
push 0
push 0
push 0
mov eax, dword [0x53ec04]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov edx, 0x1410
mov eax, ebx
call fcn.004aa9d8
pop ebx
ret

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

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4bfc75
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne 0x4bfc75
mov eax, dword [0x53ef18]
cmp byte [eax + 0x104], 0
je 0x4bfc75
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
movzx eax, word [eax + 0x56]
mov edx, dword [0x53ef18]
cmp eax, dword [edx + 0x10c]
jge 0x4bfc75
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e7ac]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x53ef18]
imul eax, dword [eax + 0x108], 0x3e8
cdq
cmp edx, dword [esp + 4]
jne 0x4bfc5d
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4bfc75
jmp 0x4bfc61
pop edx
pop eax
jge 0x4bfc75
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e7ac]
mov dword [edx], eax
mov eax, ebx
call fcn.004a1fb0
pop ebx
ret
Function at 0x4bfc78
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], edx
xor eax, eax
push ebp
push 0x4bfd86
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x53ef18]
cmp byte [eax + 0x39], 0
je 0x4bfd68
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4bfd68
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e868]
sub eax, dword [edx]
cmp eax, 0x7d0
jbe 0x4bfd68
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e868]
mov dword [edx], eax
mov esi, 0xd
mov ebx, dword [0x53e490]
cmp byte [ebx], 0
je 0x4bfd5e
movzx eax, word [ebx + 0x46]
add eax, eax
lea eax, [eax + eax*4]
mov dword [ebp - 8], eax
fild dword [ebp - 8]
fdiv dword [0x4bfd94]
call fcn.00402fc8
push edx
push eax
movzx eax, word [ebx + 0x44]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4bfd19
cmp eax, dword [esp]
pop edx
pop eax
ja 0x4bfd5e
jmp 0x4bfd1d
pop edx
pop eax
jg 0x4bfd5e
mov edx, ebx
lea eax, [ebp - 0x20]
call fcn.004034e0
mov edx, 0x4bfd98
lea eax, [ebp - 0x20]
mov cl, 0x17
call fcn.004034b0
lea edx, [ebp - 0x20]
lea eax, [ebp - 4]
call fcn.00404fb0
push 0xff
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, dword [ebp - 4]
call fcn.00530c90
add ebx, 0x58
dec esi
jne 0x4bfce3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4bfd8d
lea eax, [ebp - 0x24]
call fcn.00404d3c
lea eax, [ebp - 4]
call fcn.00404d3c
ret
Function at 0x4d5b18
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add edi, 0xfffffffc
mov eax, dword [edi]
cmp dword [eax + 0xcc8], 1
jne 0x4d5be4
mov eax, dword [edi]
cmp dword [eax + 0xce0], 0x14
jge 0x4d5ba8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0xce8]
cmp eax, 0x64
jbe 0x4d5ce8
mov eax, dword [edi]
mov eax, dword [eax + 0xce0]
mov ecx, 5
cdq
idiv ecx
mov ecx, eax
cmp ecx, 4
jne 0x4d5b83
mov eax, 6
call fcn.0040361c
inc eax
mov edx, dword [edi]
mov dword [edx + 0xcd4], eax
jmp 0x4d5b8e
add ecx, 8
mov eax, dword [edi]
mov dword [eax + 0xcd4], ecx
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0xce8], eax
mov eax, dword [edi]
inc dword [eax + 0xce0]
jmp 0x4d5ce8
mov eax, dword [edi]
mov eax, dword [eax + 0xcd0]
mov edx, dword [edi]
mov dword [edx + 0xcd4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0xce8]
cmp eax, 0x5dc
jbe 0x4d5ce8
mov eax, dword [edi]
mov eax, dword [eax + 0x364]
xor edx, edx
call fcn.0047d810
jmp 0x4d5ce8
mov byte [ebp - 1], 1
mov eax, dword [edi]
mov eax, dword [eax + 0xcc8]
dec eax
test eax, eax
jl 0x4d5cd3
inc eax
mov dword [ebp - 8], eax
xor ebx, ebx
mov esi, ebx
shl esi, 3
sub esi, ebx
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xce0]
mov edx, dword [edi]
cmp eax, dword [edx + esi*4 + 0xce4]
jge 0x4d5c9e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + esi*4 + 0xce8]
cmp eax, 0x64
jbe 0x4d5c98
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xce0]
mov ecx, 5
cdq
idiv ecx
cmp eax, 4
jne 0x4d5c5d
mov eax, 6
call fcn.0040361c
inc eax
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
jmp 0x4d5c81
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [edi]
mov eax, dword [edx + eax*4 + 0xce0]
mov ecx, 5
cdq
idiv ecx
add eax, 8
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xce8], eax
mov eax, dword [edi]
inc dword [eax + esi*4 + 0xce0]
mov byte [ebp - 1], 0
jmp 0x4d5cc9
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xcd0]
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + esi*4 + 0xce8]
cmp eax, 0x7d0
jae 0x4d5cc9
mov byte [ebp - 1], 0
inc ebx
dec dword [ebp - 8]
jne 0x4d5bff
cmp byte [ebp - 1], 0
je 0x4d5ce8
mov eax, dword [edi]
mov eax, dword [eax + 0x364]
xor edx, edx
call fcn.0047d810
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret
Function at 0x4f5548
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add edi, 0xfffffffc
mov eax, dword [edi]
cmp dword [eax + 0xcc8], 1
jne 0x4f5614
mov eax, dword [edi]
cmp dword [eax + 0xce0], 0x14
jge 0x4f55d8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0xce8]
cmp eax, 0x64
jbe 0x4f5718
mov eax, dword [edi]
mov eax, dword [eax + 0xce0]
mov ecx, 5
cdq
idiv ecx
mov ecx, eax
cmp ecx, 4
jne 0x4f55b3
mov eax, 6
call fcn.0040361c
inc eax
mov edx, dword [edi]
mov dword [edx + 0xcd4], eax
jmp 0x4f55be
add ecx, 8
mov eax, dword [edi]
mov dword [eax + 0xcd4], ecx
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0xce8], eax
mov eax, dword [edi]
inc dword [eax + 0xce0]
jmp 0x4f5718
mov eax, dword [edi]
mov eax, dword [eax + 0xcd0]
mov edx, dword [edi]
mov dword [edx + 0xcd4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0xce8]
cmp eax, 0x5dc
jbe 0x4f5718
mov eax, dword [edi]
mov eax, dword [eax + 0x6bc]
xor edx, edx
call fcn.0047d810
jmp 0x4f5718
mov byte [ebp - 1], 1
mov eax, dword [edi]
mov eax, dword [eax + 0xcc8]
dec eax
test eax, eax
jl 0x4f5703
inc eax
mov dword [ebp - 8], eax
xor ebx, ebx
mov esi, ebx
shl esi, 3
sub esi, ebx
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xce0]
mov edx, dword [edi]
cmp eax, dword [edx + esi*4 + 0xce4]
jge 0x4f56ce
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + esi*4 + 0xce8]
cmp eax, 0x64
jbe 0x4f56c8
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xce0]
mov ecx, 5
cdq
idiv ecx
cmp eax, 4
jne 0x4f568d
mov eax, 6
call fcn.0040361c
inc eax
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
jmp 0x4f56b1
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [edi]
mov eax, dword [edx + eax*4 + 0xce0]
mov ecx, 5
cdq
idiv ecx
add eax, 8
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xce8], eax
mov eax, dword [edi]
inc dword [eax + esi*4 + 0xce0]
mov byte [ebp - 1], 0
jmp 0x4f56f9
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xcd0]
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + esi*4 + 0xce8]
cmp eax, 0x7d0
jae 0x4f56f9
mov byte [ebp - 1], 0
inc ebx
dec dword [ebp - 8]
jne 0x4f562f
cmp byte [ebp - 1], 0
je 0x4f5718
mov eax, dword [edi]
mov eax, dword [eax + 0x6bc]
xor edx, edx
call fcn.0047d810
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret
Function at 0x4fc94c
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov ebx, eax
lea esi, [ebx + ebx*2]
mov eax, dword [0x53e7dc]
lea eax, [eax + esi*4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov eax, dword [eax + edx*4]
cmp edi, eax
jg 0x4fc980
mov edx, dword [0x53e7dc]
mov edx, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jle 0x4fc991
mov eax, dword [0x53e7dc]
lea eax, [eax + esi*4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + edx*4], edi
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e660]
lea edx, [edx + esi*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
sub eax, dword [edx + ecx*4]
cmp eax, 0x64
jbe 0x4fc9d5
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e660]
lea edx, [edx + esi*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + ecx*4], eax
mov eax, dword [0x53e7dc]
lea eax, [eax + esi*4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
inc dword [eax + edx*4]
lea esi, [ebx + ebx*2]
mov eax, dword [0x53e7dc]
lea eax, [eax + esi*4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov eax, dword [eax + edx*4]
cmp edi, eax
jg 0x4fc9fb
mov edx, dword [0x53e7dc]
mov edx, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jle 0x4fca0c
mov eax, dword [0x53e7dc]
lea eax, [eax + esi*4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + edx*4], edi
mov eax, dword [0x53e7dc]
lea eax, [eax + esi*4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp + 8]
lea ecx, [edx - 8]
mov edx, dword [ebp + 8]
add edx, 0xfffffffc
call fcn.004ffd14
mov edx, dword [ebp + 8]
mov dword [edx - 0xc], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x4fca81
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
push eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp + 8]
add edx, dword [eax - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
call fcn.0047d744
push eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp + 8]
add edx, dword [eax - 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
call fcn.0047d730
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
pop ecx
call fcn.004785e0
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
Function at 0x4fde10
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffa8
mov esi, edx
lea edi, [esp]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
mov ebx, eax
xor edx, edx
xor eax, eax
mov al, byte [esp + 0x52]
test eax, eax
jle 0x4fdf50
cmp eax, 1
jne 0x4fde96
mov edi, 0xc8
mov esi, 0x104
mov ebp, 0x109
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 4]
xor edx, edx
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x4fde67
cmp eax, dword [esp]
pop edx
pop eax
ja 0x4fde84
jmp 0x4fde6b
pop edx
pop eax
jg 0x4fde84
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 4], eax
cmp esi, dword [ebx]
jle 0x4fde7c
mov eax, esi
dec eax
mov dword [ebx], eax
inc dword [ebx]
cmp ebp, dword [ebx]
jge 0x4fde84
mov dword [ebx], esi
mov edx, dword [ebx]
mov eax, dword [0x586db8]
mov ecx, dword [eax]
call dword [ecx]
mov edx, eax
jmp 0x4fdf50
cmp eax, 2
jne 0x4fdef4
mov edi, 0x14
mov esi, 1
mov ebp, 0x10
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 4]
xor edx, edx
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x4fdec8
cmp eax, dword [esp]
pop edx
pop eax
ja 0x4fdee5
jmp 0x4fdecc
pop edx
pop eax
jg 0x4fdee5
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 4], eax
cmp esi, dword [ebx]
jle 0x4fdedd
mov eax, esi
dec eax
mov dword [ebx], eax
inc dword [ebx]
cmp ebp, dword [ebx]
jge 0x4fdee5
mov dword [ebx], esi
mov edx, dword [ebx]
mov eax, dword [0x586ef8]
mov ecx, dword [eax]
call dword [ecx]
mov edx, eax
jmp 0x4fdf50
cmp eax, 3
jne 0x4fdf50
mov edi, 0x14
mov esi, 0x11
mov ebp, 0x20
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 4]
xor edx, edx
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x4fdf26
cmp eax, dword [esp]
pop edx
pop eax
ja 0x4fdf43
jmp 0x4fdf2a
pop edx
pop eax
jg 0x4fdf43
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 4], eax
cmp esi, dword [ebx]
jle 0x4fdf3b
mov eax, esi
dec eax
mov dword [ebx], eax
inc dword [ebx]
cmp ebp, dword [ebx]
jge 0x4fdf43
mov dword [ebx], esi
mov edx, dword [ebx]
mov eax, dword [0x586ef8]
mov ecx, dword [eax]
call dword [ecx]
mov edx, eax
mov eax, edx
add esp, 0x58
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x51419c
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff8
mov ebx, eax
mov eax, dword [ebx + 0x1b4]
cmp eax, 0xb
je 0x514341
cmp eax, 9
je 0x514341
cmp eax, 0xd
je 0x514341
cmp eax, 5
je 0x514341
mov byte [ebx + 0x2c4], 0
mov eax, dword [ebx + 0x330]
cmp dword [eax + 8], 2
jl 0x5141e8
mov byte [ebx + 0x2c4], 1
mov edx, dword [ebx + 0x288]
sub edx, dword [ebx + 0x280]
mov eax, ebx
mov si, 0xfff8
call fcn.00404114
mov edx, dword [ebx + 0x288]
sub edx, dword [ebx + 0x280]
mov eax, ebx
mov si, 0xfff7
call fcn.00404114
mov edi, dword [ebx + 0x288]
cmp dword [ebx + 0x1b4], 0
je 0x5142cd
mov edx, dword [ebx + 0x280]
mov eax, dword [ebx + 0x288]
cmp edx, eax
jg 0x514241
cmp eax, dword [ebx + 0x284]
jle 0x514247
mov dword [ebx + 0x288], edx
cmp byte [ebx + 0x2c4], 0
je 0x514273
mov eax, dword [ebx + 0x2ac]
add eax, eax
mov dword [esp], eax
xor eax, eax
mov dword [esp + 4], eax
fild qword [esp]
fdiv dword [0x514348]
call fcn.00402fc8
mov esi, eax
jmp 0x514279
mov esi, dword [ebx + 0x2ac]
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2b0]
cmp esi, eax
jae 0x5142b8
mov eax, dword [ebx + 0x288]
cmp eax, dword [ebx + 0x284]
jge 0x5142a9
inc dword [ebx + 0x288]
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
jmp 0x5142b8
xor eax, eax
mov dword [ebx + 0x1b4], eax
mov byte [ebx + 0x14a], 0
xor eax, eax
mov dword [ebx + 0x2cc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2d0], eax
jmp 0x514323
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2dc]
cmp eax, 0xc8
jbe 0x514323
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2d0]
cmp eax, 0x1f4
jbe 0x514318
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2d0], eax
inc dword [ebx + 0x2cc]
mov eax, dword [ebx + 0x2cc]
cmp eax, dword [ebx + 0x2d4]
jl 0x514318
xor eax, eax
mov dword [ebx + 0x2cc], eax
mov eax, ebx
mov si, 0xfffe
call fcn.00404114
cmp edi, dword [ebx + 0x288]
je 0x514341
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x214], eax
mov eax, ebx
mov si, 0xfff3
call fcn.00404114
pop ecx
pop edx
pop edi
pop esi
pop ebx
ret
Function at 0x514770
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff8
mov ebx, eax
mov eax, dword [ebx + 0x1b4]
cmp eax, 0xb
je 0x514982
cmp eax, 9
je 0x514982
cmp eax, 0xd
je 0x514982
cmp eax, 5
je 0x514982
mov byte [ebx + 0x2c4], 0
mov eax, dword [ebx + 0x330]
cmp dword [eax + 8], 2
jl 0x5147bc
mov byte [ebx + 0x2c4], 1
mov edx, dword [ebx + 0x288]
sub edx, dword [ebx + 0x280]
mov eax, ebx
mov si, 0xfff8
call fcn.00404114
mov edx, dword [ebx + 0x288]
sub edx, dword [ebx + 0x280]
mov eax, ebx
mov si, 0xfff7
call fcn.00404114
mov edi, dword [ebx + 0x288]
cmp dword [ebx + 0x1b4], 0
je 0x51490e
mov edx, dword [ebx + 0x280]
mov eax, dword [ebx + 0x288]
cmp edx, eax
jg 0x514815
cmp eax, dword [ebx + 0x284]
jle 0x51481b
mov dword [ebx + 0x288], edx
cmp byte [ebx + 0x2c4], 0
je 0x514847
mov eax, dword [ebx + 0x2ac]
add eax, eax
mov dword [esp], eax
xor eax, eax
mov dword [esp + 4], eax
fild qword [esp]
fdiv dword [0x514988]
call fcn.00402fc8
mov esi, eax
jmp 0x51484d
mov esi, dword [ebx + 0x2ac]
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2b0]
cmp esi, eax
jae 0x5148f9
mov eax, dword [ebx + 0x288]
cmp eax, dword [ebx + 0x284]
jge 0x514881
inc dword [ebx + 0x288]
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
jmp 0x514890
xor eax, eax
mov dword [ebx + 0x1b4], eax
mov byte [ebx + 0x14a], 0
cmp dword [ebx + 0x1b4], 0x16
jne 0x5148f9
mov eax, dword [ebx + 0x288]
sub eax, dword [ebx + 0x280]
cmp eax, 4
jne 0x5148f9
mov eax, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x118]
push eax
mov eax, dword [ebx + 0x11c]
push eax
mov eax, dword [ebx + 0x120]
push eax
push 0xb
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov ecx, dword [ebx + 8]
mov edx, ebx
call fcn.005100f0
test eax, eax
je 0x5148f9
mov edx, dword [0x53ef64]
mov edx, dword [edx]
mov dword [eax + 0x18], edx
mov dword [eax + 0x80], 0x1e
mov dword [eax + 0xd8], 0x110
xor eax, eax
mov dword [ebx + 0x2cc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2d0], eax
jmp 0x514964
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2dc]
cmp eax, 0xc8
jbe 0x514964
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2d0]
cmp eax, 0x1f4
jbe 0x514959
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2d0], eax
inc dword [ebx + 0x2cc]
mov eax, dword [ebx + 0x2cc]
cmp eax, dword [ebx + 0x2d4]
jl 0x514959
xor eax, eax
mov dword [ebx + 0x2cc], eax
mov eax, ebx
mov si, 0xfffe
call fcn.00404114
cmp edi, dword [ebx + 0x288]
je 0x514982
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x214], eax
mov eax, ebx
mov si, 0xfff3
call fcn.00404114
pop ecx
pop edx
pop edi
pop esi
pop ebx
ret
Function at 0x51b408
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
mov ebx, eax
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x2c]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x38]
cdq
cmp edx, dword [esp + 4]
jne 0x51b42a
cmp eax, dword [esp]
pop edx
pop eax
jae 0x51b439
jmp 0x51b42e
pop edx
pop eax
jge 0x51b439
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2c], eax
inc dword [ebx + 0x30]
pop ebx
ret
Function at 0x521fbc
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor edi, edi
call fcn.004ffcb4
test al, al
je 0x5220ef
mov al, byte [ebx + 0x10]
sub al, 8
jae 0x5220ef
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x214]
cmp eax, dword [ebx + 0x210]
jbe 0x522010
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x214], eax
mov eax, ebx
mov si, 0xfff3
call fcn.00404114
mov eax, ebx
call fcn.00521a94
mov edx, dword [ebx + 0x1a8]
test edx, edx
je 0x522052
mov ecx, dword [ebp - 8]
add ecx, dword [ebx + 0xd4]
add ecx, dword [ebx + 0xcc]
push ecx
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebx + 0xe8]
add ecx, dword [ebx + 0xd0]
push ecx
mov cl, byte [ebp + 0xc]
push ecx
push eax
mov ecx, edx
mov eax, ebx
mov edx, dword [ebp - 4]
call fcn.00521888
cmp byte [ebx + 0x148], 0
je 0x5220ef
cmp dword [ebx + 0x17c], 0
jle 0x5220ef
xor eax, eax
mov edx, dword [ebx + 0x164]
dec edx
lea ecx, [ebp - 0x38]
mov ah, 0x20
call fcn.004039dc
mov eax, dword [ebx + 0x160]
cmp eax, 0xff
ja 0x522090
bt dword [ebp - 0x38], eax
jae 0x5220ef
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x18]
mov eax, dword [ebx + 0x17c]
dec eax
xor edx, edx
call fcn.0052aef4
mov eax, dword [ebx + 0x160]
add dword [ebp - 0xc], eax
cmp dword [ebp - 0x18], 0
je 0x5220ca
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov esi, dword [eax]
call dword [esi + 0x18]
mov edi, eax
test edi, edi
je 0x5220ef
push edi
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x14]
add ecx, dword [ebx + 0xd0]
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x10]
add edx, dword [ebx + 0xcc]
mov eax, dword [ebp - 4]
call fcn.004785e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc

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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, dword [0x53e6d8]
cmp eax, dword [edx]
jne 0x52393a
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
sub eax, dword [edx + 0x150]
cmp eax, 0xbb8
seta al
jmp 0x523953
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
sub eax, dword [edx + 0x150]
cmp eax, 0x7d0
seta al
test al, al
je 0x523965
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
xor ecx, ecx
mov dword [edx + 0x16c], ecx
pop ebp
ret
Function at 0x523d90
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
push edi
push ecx
mov edi, eax
xor ebx, ebx
mov esi, 0x64
mov eax, dword [0x53e6d8]
cmp edi, dword [eax]
jne 0x523e13
mov eax, dword [0x53ea3c]
cmp byte [eax + 0xf], 0
je 0x523de1
xor eax, eax
mov al, byte [edi + 0x72]
imul eax, eax, 0x64
mov dword [esp], eax
fild dword [esp]
fdiv dword [0x523e50]
call fcn.00402fd4
push eax
mov eax, 0x64
pop edx
sub eax, edx
mov edx, 5
call fcn.004782a0
mov esi, eax
jmp 0x523e13
mov eax, dword [0x53ea3c]
movzx eax, byte [eax + 0x31]
imul eax, eax, 0x64
mov dword [esp], eax
fild dword [esp]
fdiv dword [0x523e50]
call fcn.00402fd4
push eax
mov eax, 0x64
pop edx
sub eax, edx
mov edx, 5
call fcn.004782a0
mov esi, eax
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [edi + 0x24c]
cmp esi, eax
ja 0x523e46
call sub.kernel32.dll_GetTickCount_1
mov dword [edi + 0x24c], eax
inc dword [edi + 0x248]
cmp dword [edi + 0x248], 1
jle 0x523e44
xor eax, eax
mov dword [edi + 0x248], eax
mov bl, 1
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret
Function at 0x526e74
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, dword [0x53e6d8]
cmp eax, dword [edx]
jne 0x526ea2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
sub eax, dword [edx + 0x150]
cmp eax, 0xbb8
seta al
jmp 0x526ebb
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
sub eax, dword [edx + 0x150]
cmp eax, 0x7d0
seta al
test al, al
je 0x526ecd
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
xor ecx, ecx
mov dword [edx + 0x16c], ecx
pop ebp
ret