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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x90
mov edi, dword [ebp + 0x10]
mov eax, dword [0x540010]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
dec eax
lea esi, [ebp - 0x78]
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], eax
pcmpeqd xmm0, xmm0
movdqu xmmword [esi + 0x50], xmm0
movdqu xmmword [esi + 0x40], xmm0
movdqu xmmword [esi + 0x30], xmm0
movdqu xmmword [esi + 0x20], xmm0
movdqu xmmword [esi + 0x10], xmm0
movdqu xmmword [esi], xmm0
mov ecx, esi
call fcn.0049d290
mov ecx, esi
shr ecx, 0xe
xor eax, eax
inc eax
shl eax, cl
mov dword [ebp - 0x94], eax
mov eax, esi
shr eax, 0x13
mov dword [ebp - 0x90], eax
mov eax, dword [eax*4 + 0x548b80]
bt eax, ecx
jae 0x43eeb2
push esi
call fcn.004a0180
add esp, 4
mov edx, dword [ebp + 0x14]
mov ecx, edi
shr ecx, 0xe
mov eax, edi
shr eax, 0x13
mov dword [ebp - 0x88], eax
mov eax, dword [eax*4 + 0x548b80]
mov dword [ebp - 0x8c], ecx
bt eax, ecx
jae 0x43eecf
push edi
call fcn.004a0180
mov edx, dword [ebp + 0x14]
add esp, 4
mov ecx, edx
shr ecx, 0xe
mov eax, edx
shr eax, 0x13
mov dword [ebp - 0x80], eax
mov eax, dword [eax*4 + 0x548b80]
mov dword [ebp - 0x84], ecx
bt eax, ecx
mov esi, dword [ebp + 8]
jae 0x43eec1
push edx
call fcn.004a0180
add esp, 4
lea ecx, [ebp - 0x78]
push dword [ebp + 0xc]
push esi
call fcn.0049d810
test al, al
je 0x43f08a
mov ebx, dword [ebp + 0x20]
test ebx, ebx
je 0x43ee9d
mov eax, dword [ebp + 0xc]
cmp dword [eax + 4], 0
jne 0x43ee9d
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x53a380]
xor edi, edi
mov ecx, ebx
push edi
call esi
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x53a380]
mov ecx, ebx
push edi
push 0xffffffffffffffff
call esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x7c], 0
jmp 0x43ef10
shr esi, 0x15
mov byte [esi + 0x550b80], 1
jmp 0x43edf1
mov eax, edx
shr eax, 0x15
mov byte [eax + 0x550b80], 1
jmp 0x43ee51
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x550b80], 1
jmp 0x43ee26
mov eax, dword [ebx]
mov ebx, dword [eax + 8]
mov ecx, ebx
call dword [0x53a380]
mov ecx, dword [ebp + 0x20]
call ebx
mov ebx, dword [ebp + 0x20]
mov eax, dword [ebx]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x53a380]
mov ecx, dword [ebp + 0x20]
push 1
push edi
call ebx
mov ebx, dword [ebp + 0x20]
mov dword [ebp - 0x7c], esi
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x43ef2b
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x43f060
lea ecx, [ebp - 0x78]
call fcn.0049dde0
test eax, eax
je 0x43f015
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x43ef10
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
test ebx, ebx
je 0x43efac
movd xmm0, esi
movq xmm1, qword [0x524060]
por xmm0, xmm1
subsd xmm0, xmm1
xorps xmm4, xmm4
cvtsd2ss xmm4, xmm0
movd xmm0, edi
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
divss xmm4, xmm0
mov eax, dword [ebx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x9c], ecx
mov ecx, ebx
call dword [0x53a380]
sub esp, 4
movss dword [esp], xmm4
mov ecx, dword [ebp + 0x20]
call ebx
mov ecx, dword [ebp - 0x9c]
mov ebx, dword [ebp + 0x20]
test esi, esi
je 0x43ef10
sub ecx, dword [ebp - 0x98]
mov eax, ecx
sub eax, dword [ebp - 0x7c]
cmp eax, 0xea60
jb 0x43ef10
sub edi, esi
mov eax, edi
mul ecx
xor edi, edi
push edi
push esi
push edx
push eax
mov esi, ecx
call fcn.00500950
push edi
push 0x3e8
push edx
push eax
call fcn.00500950
mov dword [ebp - 0x7c], esi
test ebx, ebx
je 0x43ef10
mov ecx, esi
mov edi, eax
mov eax, esi
mov ecx, 0x10624dd3
mul ecx
shr edx, 6
add edx, edi
cmp edx, 0x79
jl 0x43eef5
jmp 0x43eee0
lea ecx, [ebp - 0x78]
push 0
call fcn.0049df90
test ebx, ebx
je 0x43f062
test al, al
mov edi, dword [ebp + 0x10]
je 0x43f0ea
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x53a380]
mov ecx, ebx
push 0x3f800000
call esi
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x53a380]
mov ecx, ebx
push 2
push 0
call esi
mov al, 1
jmp 0x43f0ea
xor eax, eax
mov edi, dword [ebp + 0x10]
jmp 0x43f0ea
test dl, dl
jns 0x43f074
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
push edx
push eax
call fcn.00478540
jmp 0x43f0c0
push dword [ebp - 0x54]
push dword [ebp - 0x58]
call fcn.00478600
jmp 0x43f0c0
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x43f0e8
mov ebx, edi
lea edi, [ebp - 0x5c]
mov eax, dword [edi]
mov dword [esi], eax
cmp esi, edi
je 0x43f0c0
lea ecx, [esi + 4]
lea eax, [ebp - 0x58]
cmp byte [esi + 0xf], 0
movzx edx, byte [eax + 0xb]
js 0x43f06a
test dl, dl
js 0x43f07d
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
cmp esi, edi
je 0x43f119
lea ecx, [esi + 0x10]
lea eax, [ebp - 0x4c]
cmp byte [esi + 0x1b], 0
movzx edx, byte [eax + 0xb]
js 0x43f12c
test dl, dl
mov edi, ebx
js 0x43f11f
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
xor eax, eax
mov dword [ebp - 0x7c], eax
test edi, edi
mov ebx, dword [ebp + 0x14]
je 0x43f172
lea eax, [ebp - 0x68]
cmp eax, edi
je 0x43f172
cmp byte [edi + 0xb], 0
movzx edx, byte [ebp - 0x5d]
js 0x43f15f
test dl, dl
js 0x43f141
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
movq xmm0, qword [eax]
movq qword [edi], xmm0
jmp 0x43f172
xor eax, eax
mov edi, ebx
jmp 0x43f0ea
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
call fcn.00478600
jmp 0x43f0e8
test dl, dl
mov edi, ebx
jns 0x43f138
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
push edx
push eax
call fcn.00478540
jmp 0x43f0e8
mov ecx, edi
push dword [ebp - 0x64]
push dword [ebp - 0x68]
call fcn.00479040
jmp 0x43f172
mov ecx, ebx
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call fcn.00479040
jmp 0x43f1a0
test dl, dl
jns 0x43f169
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
mov ecx, edi
push edx
push eax
call fcn.00478f70
mov esi, dword [ebp + 0x18]
test ebx, ebx
je 0x43f1a0
lea eax, [ebp - 0x40]
cmp eax, ebx
je 0x43f1a0
cmp byte [ebx + 0xb], 0
movzx edx, byte [ebp - 0x35]
js 0x43f229
test dl, dl
js 0x43f150
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
movq xmm0, qword [eax]
movq qword [ebx], xmm0
test esi, esi
je 0x43f1a9
mov eax, dword [ebp - 0x34]
mov dword [esi], eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax*4 + 0x548b80]
mov ecx, dword [ebp - 0x84]
bt eax, ecx
jae 0x43f1c7
push ebx
call fcn.004a02a0
add esp, 4
mov eax, dword [ebp - 0x88]
mov eax, dword [eax*4 + 0x548b80]
mov ecx, dword [ebp - 0x8c]
bt eax, ecx
jae 0x43f1e8
push edi
call fcn.004a02a0
add esp, 4
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x90]
test dword [ecx*4 + 0x548b80], eax
je 0x43f209
lea eax, [ebp - 0x78]
push eax
call fcn.004a02a0
add esp, 4
lea ecx, [ebp - 0x78]
call fcn.0049d320
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e0685
mov eax, dword [ebp - 0x7c]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
test dl, dl
jns 0x43f233
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov ecx, ebx
push edx
push eax
call fcn.00478f70
jmp 0x43f1a0