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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45664c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
mov dword [ebp - 0x34], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x52ec], 0
jne 0x40c61c
xor eax, eax
jmp 0x40caa0
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00427280
and eax, 0xffff
cmp eax, 0x32a
jge 0x40c653
push 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00426950
mov dword [ebp - 0x10], eax
jmp 0x40c66e
push 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00426670
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
je 0x40c67c
mov eax, dword [ebp - 0x10]
jmp 0x40caa0
cmp dword [ebp + 0x10], 1
jne 0x40ca9b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xc8
jbe 0x40c6a4
mov dword [ebp - 0x38], 0
jmp 0x40c6af
mov ecx, dword [ebp - 0x34]
call fcn.0040cab0
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x18], edx
mov eax, dword [0x480a84]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
call fcn.00437980
add esp, 8
test eax, eax
je 0x40c6eb
mov eax, dword [str.GC0101]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
call fcn.00437980
add esp, 8
test eax, eax
jne 0x40c866
mov eax, dword [ebp + 8]
mov cl, byte [eax + 7]
push ecx
push 0
push 0xf0
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425db0
mov edx, dword [ebp + 8]
mov al, byte [edx + 7]
push eax
push 0xaa
push 0xfc
mov ecx, dword [ebp + 8]
movzx dx, byte [ecx + 6]
push edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x52ec]
call fcn.00425db0
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 7]
push edx
push 0xaa
push 0xfd
mov eax, dword [ebp + 8]
movzx cx, byte [eax + 6]
push ecx
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0x52ec]
call fcn.00425db0
mov eax, dword [ebp + 8]
mov cl, byte [eax + 7]
push ecx
push 0xaa
push 0xfe
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425db0
mov edx, dword [ebp + 8]
mov al, byte [edx + 7]
push eax
lea ecx, [ebp - 0x1c]
push ecx
push 0xfc
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425e30
mov edx, dword [ebp + 8]
mov al, byte [edx + 7]
push eax
lea ecx, [ebp - 0x20]
push ecx
push 0xfd
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425e30
mov edx, dword [ebp + 8]
mov al, byte [edx + 7]
push eax
lea ecx, [ebp - 0x24]
push ecx
push 0xfe
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425e30
mov edx, dword [ebp - 0x1c]
and edx, 0xffff
cmp edx, 0xaa
jne 0x40c849
mov eax, dword [ebp - 0x20]
and eax, 0xffff
cmp eax, 0xaa
jne 0x40c849
mov ecx, dword [ebp - 0x24]
and ecx, 0xffff
cmp ecx, 0xaa
jne 0x40c849
push 0x28
push 0x481000
mov edx, dword [ebp - 0x34]
add edx, 0x168
push edx
call fcn.004372a0
add esp, 0xc
jmp 0x40c861
push 0x28
push 0x480a70
mov eax, dword [ebp - 0x34]
add eax, 0x168
push eax
call fcn.004372a0
add esp, 0xc
jmp 0x40c963
mov ecx, dword [str.OV7673H]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
call fcn.00437980
add esp, 8
test eax, eax
je 0x40c89e
mov ecx, dword [str.OV7675]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
call fcn.00437980
add esp, 8
test eax, eax
jne 0x40c94c
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 7]
push edx
push 0x80
push 0x12
mov eax, dword [ebp + 8]
movzx cx, byte [eax + 6]
push ecx
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0x52ec]
call fcn.00425db0
mov eax, dword [ebp + 8]
mov cl, byte [eax + 7]
push ecx
push 0x7a
push 0x1a
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425db0
mov edx, dword [ebp + 8]
mov al, byte [edx + 7]
push eax
lea ecx, [ebp - 0x1c]
push ecx
push 0x1a
mov edx, dword [ebp + 8]
movzx ax, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425e30
mov edx, dword [ebp - 0x1c]
and edx, 0xffff
cmp edx, 0x7b
jne 0x40c931
push 0x28
push 0x469f90
mov eax, dword [ebp - 0x34]
add eax, 0x168
push eax
call fcn.004372a0
add esp, 0xc
jmp 0x40c94a
push 0x28
push 0x469cc0
mov ecx, dword [ebp - 0x34]
add ecx, 0x168
push ecx
call fcn.004372a0
add esp, 0xc
jmp 0x40c963
push 0x28
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x34]
add eax, 0x168
push eax
call fcn.004372a0
add esp, 0xc
mov ecx, dword [ebp - 0x34]
add ecx, 0x168
mov dword [ebp + 8], ecx
cmp dword [ebp - 0x18], 0
je 0x40c985
mov edx, dword [ebp - 0x34]
xor eax, eax
mov al, byte [edx + 0x18f]
mov dword [ebp - 0x3c], eax
jmp 0x40c98c
mov dword [ebp - 0x3c], 2
mov ecx, dword [ebp + 8]
mov dl, byte [ebp - 0x3c]
mov byte [ecx + 0x27], dl
lea ecx, [ebp - 0x2c]
call fcn.0040cf40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.0044b804
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x6c], 0
mov byte [ebp - 0x28], 0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
mov eax, dword [ecx + 0xb4]
or eax, dword [edx + 0xb8]
test eax, eax
je 0x40ca72
mov cl, byte [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0xb8]
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0xb4]
push edx
mov eax, dword [ebp - 0x34]
add eax, 0x168
push eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x52ec]
call fcn.0042c5b0
mov byte [ebp - 0x28], al
mov edx, dword [ebp - 0x28]
and edx, 0xff
test edx, edx
je 0x40ca72
mov eax, dword [ebp - 0x28]
and eax, 0xff
cmp eax, 3
jne 0x40ca33
push str.__RESET___PWDN_PIN_ERROR_
lea ecx, [ebp - 0x2c]
push ecx
call fcn.00449087
add esp, 8
jmp 0x40ca65
mov edx, dword [ebp - 0x28]
and edx, 0xff
cmp edx, 1
jne 0x40ca54
push str.__PWDN_PIN_ERROR
lea eax, [ebp - 0x2c]
push eax
call fcn.00449087
add esp, 8
jmp 0x40ca65
push str.__RESET_PIN_ERROR
lea ecx, [ebp - 0x2c]
push ecx
call fcn.00449087
add esp, 8
push 0x32
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Beep]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
lea edx, [ebp - 0x2c]
push edx
call fcn.0044b5ee
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x34]
call fcn.00403820
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0044b879
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc