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

Disassembly:
sub esp, 0xc
mov edx, dword [esp + 0x10]
push ebx
push esi
mov esi, ecx
push edi
mov cx, word [esp + 0x20]
mov edi, dword [esi + 0x104]
mov eax, dword [esi + 0x108]
cmp edi, eax
je 0x435582
cmp dword [edi], edx
jne 0x43557b
cmp word [edi + 4], cx
je 0x4355f4
add edi, 0xc
cmp edi, eax
jne 0x435571
push ebp
mov dword [esp + 0x10], edx
mov word [esp + 0x14], cx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x108]
mov edx, dword [esi + 0x10c]
add esi, 0x100
mov dword [esp + 0x18], eax
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
mov edi, ecx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x4356fb
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x4355e7
mov edx, ecx
mov eax, 0x2aaaaaab
sub edx, ebx
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
mov ebp, edx
ja 0x4355ec
mov ebp, 1
test ebx, ebx
jne 0x43560b
xor edx, edx
jmp 0x43561d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0xc
ret 8
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea eax, [edx + ebp]
test eax, eax
mov dword [esp + 0x24], eax
jge 0x43562a
xor eax, eax
lea edx, [eax + eax*2]
shl edx, 2
push edx
call fcn.0041b540
mov ebp, dword [esi + 4]
add esp, 4
cmp ebp, edi
mov dword [esp + 0x20], eax
mov ebx, eax
je 0x43565a
push ebp
push ebx
call fcn.0041f8a0
add ebp, 0xc
add esp, 8
add ebx, 0xc
cmp ebp, edi
jne 0x435646
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 1
push ebx
call fcn.00435d60
mov ecx, dword [esi + 8]
add ebx, 0xc
push ebx
push ecx
push edi
mov ecx, esi
call fcn.0041f850
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push edx
push eax
mov ecx, esi
call fcn.00435d50
mov ecx, dword [esi + 4]
push ecx
call fcn.0041da60
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
add esp, 4
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 4]
test eax, eax
jne 0x4356ca
xor edx, edx
mov dword [esi + 4], edi
pop ebp
lea edx, [edx + edx*2 + 3]
lea eax, [edi + edx*4]
pop edi
mov dword [esi + 8], eax
pop esi
mov eax, 1
pop ebx
add esp, 0xc
ret 8
mov ecx, dword [esi + 8]
mov dword [esi + 4], edi
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
pop ebp
shr ecx, 0x1f
add edx, ecx
lea edx, [edx + edx*2 + 3]
lea eax, [edi + edx*4]
pop edi
mov dword [esi + 8], eax
pop esi
mov eax, 1
pop ebx
add esp, 0xc
ret 8
mov edx, ecx
mov eax, 0x2aaaaaab
sub edx, edi
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x435773
lea edx, [edi + 0xc]
push edx
push ecx
push edi
mov ecx, esi
call fcn.0041f850
mov ebx, dword [esi + 8]
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
mov eax, 1
shr ecx, 0x1f
add edx, ecx
mov ecx, esi
sub eax, edx
push eax
push ebx
call fcn.00435d60
mov eax, dword [esi + 8]
cmp edi, eax
je 0x4357cc
mov edx, dword [esp + 0x10]
mov ecx, edi
add edi, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x14]
cmp edi, eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x18]
mov dword [ecx + 8], edx
jne 0x435754
jmp 0x4357cc
push ecx
push ecx
add ecx, 0xfffffff4
push ecx
mov ecx, esi
call fcn.0041f850
mov ecx, dword [esi + 8]
lea eax, [ecx - 0xc]
cmp edi, eax
je 0x4357a8
sub eax, 0xc
sub ecx, 0xc
mov edx, eax
mov ebx, ecx
cmp eax, edi
mov ebp, dword [edx]
mov dword [ebx], ebp
mov ebp, dword [edx + 4]
mov dword [ebx + 4], ebp
mov edx, dword [edx + 8]
mov dword [ebx + 8], edx
jne 0x43578a
lea eax, [edi + 0xc]
cmp edi, eax
je 0x4357cc
mov edx, dword [esp + 0x10]
mov ecx, edi
add edi, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x14]
cmp edi, eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x18]
mov dword [ecx + 8], edx
jne 0x4357af
mov eax, dword [esi + 8]
pop ebp
add eax, 0xc
pop edi
mov dword [esi + 8], eax
pop esi
mov eax, 1
pop ebx
add esp, 0xc
ret 8