joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4c08b4
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
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5451f0]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
imul eax, dword [eax + 0x118], 0x3e8
cdq
cmp edx, dword [esp + 4]
jne 0x4c08f2
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c09a9
jmp 0x4c08fa
pop edx
pop eax
jge 0x4c09a9
cmp byte [ebp - 1], 0
jne 0x4c091c
mov eax, dword [0x544738]
mov eax, dword [eax]
mov eax, dword [eax + 0x54]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0x11c]
jge 0x4c09a9
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
mov edx, dword [0x544f94]
mov edx, dword [edx + 0x124]
call fcn.00405118
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
call fcn.0052de80
mov edx, dword [ebp + 8]
mov dword [edx - 8], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0
jl 0x4c096f
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5451f0]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.004c0088
mov ebx, eax
jmp 0x4c09a9
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
call fcn.0052df08
mov edx, dword [ebp + 8]
mov dword [edx - 8], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0
jl 0x4c09a9
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5451f0]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.004c0088
mov ebx, eax
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret

Function at 0x4c0a44
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 [0x544f94]
cmp dword [eax + 0xd4], 0
jl 0x4c0aed
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54469c]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xdc]
cdq
cmp edx, dword [esp + 4]
jne 0x4c0a8c
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c0aed
jmp 0x4c0a90
pop edx
pop eax
jge 0x4c0aed
cmp byte [ebp - 1], 0
jne 0x4c0aae
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov eax, dword [eax + 0x54]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0xe0]
jge 0x4c0aed
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xd4]
call fcn.0052e11c
mov edx, dword [ebp + 8]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jl 0x4c0aed
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54469c]
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.004c01a0
mov ebx, eax
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret
Function at 0x4c0af4
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 [0x544f94]
cmp dword [eax + 0xf0], 0
jl 0x4c0b9d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544728]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xf8]
cdq
cmp edx, dword [esp + 4]
jne 0x4c0b3c
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c0b9d
jmp 0x4c0b40
pop edx
pop eax
jge 0x4c0b9d
cmp byte [ebp - 1], 0
jne 0x4c0b5e
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov eax, dword [eax + 0x54]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0xfc]
jge 0x4c0b9d
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xf0]
call fcn.0052e11c
mov edx, dword [ebp + 8]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jl 0x4c0b9d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544728]
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.004c01a0
mov ebx, eax
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret

Function at 0x4c0d18
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 [0x544f94]
cmp dword [eax + 0xd8], 0
jl 0x4c0dc1
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544514]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xe4]
cdq
cmp edx, dword [esp + 4]
jne 0x4c0d60
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c0dc1
jmp 0x4c0d64
pop edx
pop eax
jge 0x4c0dc1
cmp byte [ebp - 1], 0
jne 0x4c0d82
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0xe8]
jge 0x4c0dc1
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xd8]
call fcn.0052e11c
mov edx, dword [ebp + 8]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jl 0x4c0dc1
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544514]
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.004c01a0
mov ebx, eax
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret
Function at 0x4c0dc8
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 [0x544f94]
cmp dword [eax + 0xf4], 0
jl 0x4c0e71
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54459c]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
mov eax, dword [eax + 0x100]
cdq
cmp edx, dword [esp + 4]
jne 0x4c0e10
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c0e71
jmp 0x4c0e14
pop edx
pop eax
jge 0x4c0e71
cmp byte [ebp - 1], 0
jne 0x4c0e32
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0x104]
jge 0x4c0e71
mov eax, dword [0x544f94]
mov eax, dword [eax + 0xf4]
call fcn.0052e11c
mov edx, dword [ebp + 8]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jl 0x4c0e71
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54459c]
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.004c01a0
mov ebx, eax
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret

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

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4c107d
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x4c107d
mov eax, dword [0x544f94]
cmp byte [eax + 0x130], 0
je 0x4c107d
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov eax, dword [eax + 0x54]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0x138]
jge 0x4c107d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5444d0]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
imul eax, dword [eax + 0x134], 0x3e8
cdq
cmp edx, dword [esp + 4]
jne 0x4c1050
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c107d
jmp 0x4c1054
pop edx
pop eax
jge 0x4c107d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5444d0]
mov dword [edx], eax
push 0
push 0
push 0
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov edx, 0x1410
mov eax, ebx
call fcn.004aa548
pop ebx
ret

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

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4c1108
mov eax, dword [0x544738]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x4c1108
mov eax, dword [0x544f94]
cmp byte [eax + 0x108], 0
je 0x4c1108
mov eax, dword [0x544738]
mov eax, dword [eax]
mov eax, dword [eax + 0x54]
mov edx, dword [0x544f94]
cmp eax, dword [edx + 0x110]
jge 0x4c1108
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544810]
sub eax, dword [edx]
xor edx, edx
push edx
push eax
mov eax, dword [0x544f94]
imul eax, dword [eax + 0x10c], 0x3e8
cdq
cmp edx, dword [esp + 4]
jne 0x4c10f0
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4c1108
jmp 0x4c10f4
pop edx
pop eax
jge 0x4c1108
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544810]
mov dword [edx], eax
mov eax, ebx
call fcn.004a18b0
pop ebx
ret
Function at 0x4c110c
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], edx
xor eax, eax
push ebp
push 0x4c125b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x544f94]
cmp byte [eax + 0x39], 0
je 0x4c1238
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4c1238
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5448cc]
sub eax, dword [edx]
cmp eax, 0x7d0
jbe 0x4c1238
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5448cc]
mov dword [edx], eax
xor esi, esi
mov ebx, dword [0x5444e4]
cmp byte [ebx], 0
je 0x4c1228
cmp esi, 9
jne 0x4c11dc
cmp byte [ebx + 0x3e], 0x19
jne 0x4c11dc
cmp word [ebx + 0xa4], 0x64
ja 0x4c1228
mov edx, ebx
lea eax, [ebp - 0x2c]
call fcn.00403848
mov edx, 0x4c1268
lea eax, [ebp - 0x2c]
mov cl, 0x27
call fcn.00403818
lea edx, [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.004052f4
push 0xff
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, dword [ebp - 4]
call fcn.0053ad68
jmp 0x4c1228
cmp word [ebx + 0xa4], 0x3e8
ja 0x4c1228
mov edx, ebx
lea eax, [ebp - 0x2c]
call fcn.00403848
mov edx, 0x4c1268
lea eax, [ebp - 0x2c]
mov cl, 0x27
call fcn.00403818
lea edx, [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.004052f4
push 0xff
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, dword [ebp - 4]
call fcn.0053ad68
inc esi
add ebx, 0xa8
cmp esi, 0xd
jne 0x4c1177
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c1262
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.004050a4
lea eax, [ebp - 4]
call fcn.00405080
ret
Function at 0x4d5c08
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 0x4d5cd4
mov eax, dword [edi]
cmp dword [eax + 0xce0], 0x14
jge 0x4d5c98
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0xce8]
cmp eax, 0x64
jbe 0x4d5dd8
mov eax, dword [edi]
mov eax, dword [eax + 0xce0]
mov ecx, 5
cdq
idiv ecx
mov ecx, eax
cmp ecx, 4
jne 0x4d5c73
mov eax, 6
call fcn.00403984
inc eax
mov edx, dword [edi]
mov dword [edx + 0xcd4], eax
jmp 0x4d5c7e
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 0x4d5dd8
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 0x4d5dd8
mov eax, dword [edi]
mov eax, dword [eax + 0x364]
xor edx, edx
call fcn.00473e94
jmp 0x4d5dd8
mov byte [ebp - 1], 1
mov eax, dword [edi]
mov eax, dword [eax + 0xcc8]
dec eax
test eax, eax
jl 0x4d5dc3
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 0x4d5d8e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + esi*4 + 0xce8]
cmp eax, 0x64
jbe 0x4d5d88
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xce0]
mov ecx, 5
cdq
idiv ecx
cmp eax, 4
jne 0x4d5d4d
mov eax, 6
call fcn.00403984
inc eax
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
jmp 0x4d5d71
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 0x4d5db9
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 0x4d5db9
mov byte [ebp - 1], 0
inc ebx
dec dword [ebp - 8]
jne 0x4d5cef
cmp byte [ebp - 1], 0
je 0x4d5dd8
mov eax, dword [edi]
mov eax, dword [eax + 0x364]
xor edx, edx
call fcn.00473e94
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret
Function at 0x4f8028
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 0x4f80f4
mov eax, dword [edi]
cmp dword [eax + 0xce0], 0x14
jge 0x4f80b8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0xce8]
cmp eax, 0x64
jbe 0x4f81f8
mov eax, dword [edi]
mov eax, dword [eax + 0xce0]
mov ecx, 5
cdq
idiv ecx
mov ecx, eax
cmp ecx, 4
jne 0x4f8093
mov eax, 6
call fcn.00403984
inc eax
mov edx, dword [edi]
mov dword [edx + 0xcd4], eax
jmp 0x4f809e
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 0x4f81f8
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 0x4f81f8
mov eax, dword [edi]
mov eax, dword [eax + 0x6bc]
xor edx, edx
call fcn.00473e94
jmp 0x4f81f8
mov byte [ebp - 1], 1
mov eax, dword [edi]
mov eax, dword [eax + 0xcc8]
dec eax
test eax, eax
jl 0x4f81e3
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 0x4f81ae
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + esi*4 + 0xce8]
cmp eax, 0x64
jbe 0x4f81a8
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0xce0]
mov ecx, 5
cdq
idiv ecx
cmp eax, 4
jne 0x4f816d
mov eax, 6
call fcn.00403984
inc eax
mov edx, dword [edi]
mov dword [edx + esi*4 + 0xcd4], eax
jmp 0x4f8191
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 0x4f81d9
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 0x4f81d9
mov byte [ebp - 1], 0
inc ebx
dec dword [ebp - 8]
jne 0x4f810f
cmp byte [ebp - 1], 0
je 0x4f81f8
mov eax, dword [edi]
mov eax, dword [eax + 0x6bc]
xor edx, edx
call fcn.00473e94
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret
Function at 0x4ff218
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov esi, ecx
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], edx
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
xor eax, eax
push ebp
push 0x4ff3c4
push dword fs:[eax]
mov dword fs:[eax], esp
test ebx, ebx
je 0x4ff3b6
cmp byte [ebx], 0
je 0x4ff3b6
mov dword [ebp - 8], edi
movzx edx, word [ebx + 0x45]
mov eax, dword [0x544b18]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
test esi, esi
je 0x4ff2ad
lea edx, [ebp - 0x28]
mov eax, esi
call fcn.00466a4c
lea eax, [ebp - 0x28]
push eax
push esi
push 1
push 0
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x14]
sub ecx, dword [esi + 4]
sar ecx, 1
jns 0x4ff28d
adc ecx, 0
add ecx, dword [ebp - 0x14]
inc ecx
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x18]
sub edx, dword [esi + 8]
sar edx, 1
jns 0x4ff2a1
adc edx, 0
add edx, dword [ebp - 0x18]
dec edx
mov eax, dword [ebp - 4]
call fcn.00466c14
test edi, edi
je 0x4ff3b6
cmp word [ebx + 0x90], 0
jl 0x4ff3b6
mov eax, dword [0x545230]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
movsx edx, word [ebx + 0x90]
cmp eax, edx
jle 0x4ff3b6
cmp byte [ebx + 0x94], 0
jbe 0x4ff3b6
xor eax, eax
mov al, byte [ebx + 0x94]
mov edx, 0xa
call fcn.00470308
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, 0x64
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, 0xa
call fcn.00470308
mov esi, eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 8]
sub eax, dword [edx + 8]
cmp esi, eax
ja 0x4ff33d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 8]
inc byte [eax + 4]
mov eax, dword [ebp - 8]
mov al, byte [eax + 4]
cmp al, byte [ebx + 0x94]
jb 0x4ff352
mov eax, dword [ebp - 8]
mov byte [eax + 4], 0
movsx edx, word [ebx + 0x90]
mov eax, dword [0x545230]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x4ff3b6
movzx edx, word [ebx + 0x92]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 4]
add edx, ecx
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
test esi, esi
je 0x4ff3b6
push esi
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
sub ecx, edx
sub ecx, dword [esi + 4]
sar ecx, 1
jns 0x4ff396
adc ecx, 0
add ecx, edx
inc ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
sub edx, eax
sub edx, dword [esi + 8]
sar edx, 1
jns 0x4ff3ab
adc edx, 0
add edx, eax
dec edx
mov eax, dword [ebp - 4]
call fcn.00537208
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff3cb
ret
Function at 0x4ff3d4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov esi, ecx
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], edx
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
xor eax, eax
push ebp
push 0x4ff580
push dword fs:[eax]
mov dword fs:[eax], esp
test ebx, ebx
je 0x4ff572
cmp byte [ebx], 0
je 0x4ff572
mov dword [ebp - 8], edi
movzx edx, word [ebx + 0x45]
mov eax, dword [0x544b18]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
test esi, esi
je 0x4ff469
lea edx, [ebp - 0x28]
mov eax, esi
call fcn.00466a4c
lea eax, [ebp - 0x28]
push eax
push esi
push 1
push 0
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x14]
sub ecx, dword [esi + 4]
sar ecx, 1
jns 0x4ff449
adc ecx, 0
add ecx, dword [ebp - 0x14]
inc ecx
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x18]
sub edx, dword [esi + 8]
sar edx, 1
jns 0x4ff45d
adc edx, 0
add edx, dword [ebp - 0x18]
dec edx
mov eax, dword [ebp - 4]
call fcn.00466c14
test edi, edi
je 0x4ff572
cmp word [ebx + 0x90], 0
jl 0x4ff572
mov eax, dword [0x545230]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
movsx edx, word [ebx + 0x90]
cmp eax, edx
jle 0x4ff572
cmp byte [ebx + 0x94], 0
jbe 0x4ff572
xor eax, eax
mov al, byte [ebx + 0x94]
mov edx, 0xa
call fcn.00470308
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, 0x64
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, 0xa
call fcn.00470308
mov esi, eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 8]
sub eax, dword [edx + 8]
cmp esi, eax
ja 0x4ff4f9
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 8]
inc byte [eax + 4]
mov eax, dword [ebp - 8]
mov al, byte [eax + 4]
cmp al, byte [ebx + 0x94]
jb 0x4ff50e
mov eax, dword [ebp - 8]
mov byte [eax + 4], 0
movsx edx, word [ebx + 0x90]
mov eax, dword [0x545230]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x4ff572
movzx edx, word [ebx + 0x92]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 4]
add edx, ecx
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
test esi, esi
je 0x4ff572
push esi
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
sub ecx, edx
sub ecx, dword [esi + 4]
sar ecx, 1
jns 0x4ff552
adc ecx, 0
add ecx, edx
inc ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
sub edx, eax
sub edx, dword [esi + 8]
sar edx, 1
jns 0x4ff567
adc edx, 0
add edx, eax
dec edx
mov eax, dword [ebp - 4]
call fcn.00537208
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff587
ret
Function at 0x4ff590
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
mov esi, ecx
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], edx
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x4ff728
cmp byte [ebx], 0
je 0x4ff728
mov dword [ebp - 8], edi
movzx eax, word [ebx + 0x45]
call fcn.0052ecf4
mov esi, eax
test esi, esi
je 0x4ff611
lea edx, [ebp - 0x30]
mov eax, esi
call fcn.00466a4c
lea eax, [ebp - 0x30]
push eax
push esi
push 1
push 0
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x1c]
sub ecx, dword [esi + 4]
sar ecx, 1
jns 0x4ff5f1
adc ecx, 0
add ecx, dword [ebp - 0x1c]
inc ecx
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x20]
sub edx, dword [esi + 8]
sar edx, 1
jns 0x4ff605
adc edx, 0
add edx, dword [ebp - 0x20]
dec edx
mov eax, dword [ebp - 4]
call fcn.00466c14
test edi, edi
je 0x4ff728
cmp word [ebx + 0x95], 0
jl 0x4ff728
mov eax, dword [0x545230]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
movsx edx, word [ebx + 0x95]
cmp eax, edx
jle 0x4ff728
cmp byte [ebx + 0x99], 0
jbe 0x4ff728
xor eax, eax
mov al, byte [ebx + 0x99]
mov edx, 0xa
call fcn.00470308
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, 0x64
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, 0xa
call fcn.00470308
mov esi, eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 8]
sub eax, dword [edx + 8]
cmp esi, eax
ja 0x4ff6a1
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 8]
inc byte [eax + 4]
mov eax, dword [ebp - 8]
mov al, byte [eax + 4]
cmp al, byte [ebx + 0x99]
jb 0x4ff6b6
mov eax, dword [ebp - 8]
mov byte [eax + 4], 0
movsx edx, word [ebx + 0x95]
mov eax, dword [0x545230]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x4ff728
lea edx, [ebp - 0x10]
push edx
movzx edx, word [ebx + 0x97]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 4]
add edx, ecx
lea ecx, [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x18]
mov esi, eax
test esi, esi
je 0x4ff728
push esi
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
sub ecx, edx
sub ecx, dword [esi + 4]
sar ecx, 1
jns 0x4ff702
adc ecx, 0
add ecx, edx
add ecx, dword [ebp - 0x10]
inc ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
sub edx, eax
sub edx, dword [esi + 8]
sar edx, 1
jns 0x4ff71a
adc edx, 0
add edx, eax
add edx, dword [ebp - 0xc]
dec edx
mov eax, dword [ebp - 4]
call fcn.00537208
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8