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

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 0xf8]
shl eax, 5
mov eax, dword [eax + 0x413448]
test al, 0x20
je 0x40431b
mov cl, byte [ebp + 0x16]
test cl, cl
je 0x402dc0
and eax, 0x3fc000
cmp eax, 0x80000
je 0x402d76
cmp eax, 0x84000
je 0x402d76
mov byte [ebp + 0x20d], 0x40
mov cl, byte [ebp + 0x190]
xor edx, edx
mov byte [ebp + 0x20c], cl
mov dh, byte [ebp + 0x199]
pop edi
mov dl, byte [ebp + 0x19a]
pop esi
imul edx, dword [ebp + 0xc0]
mov dword [ebp + 0xf0], edx
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret
mov al, byte [ebp + 0x1a7]
pop edi
mov byte [ebp + 0x20c], al
xor eax, eax
mov ah, byte [ebp + 0x18f]
pop esi
mov al, byte [ebp + 0x190]
imul eax, dword [ebp + 0xc0]
lea ecx, [eax + eax*2]
mov eax, 0x92492493
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
xor eax, eax
mov dword [ebp + 0xf0], edx
pop ebp
pop ebx
add esp, 0x60
ret
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xb4]
test eax, eax
mov eax, 0x422b60
jne 0x402de6
mov eax, str.Adjusting_frequency_...
push eax
push ebp
call fcn.00401660
mov edx, dword [ebp + 0xf8]
add esp, 8
shl edx, 5
mov eax, dword [edx + 0x413448]
and eax, 0x3fc000
cmp eax, 0x80000
je 0x403b18
cmp eax, 0x84000
je 0x403b18
cmp eax, 0xe8000
je 0x40378d
cmp eax, 0xec000
je 0x40378d
cmp eax, 0xf0000
je 0x40378d
cmp eax, 0xf4000
je 0x40378d
mov byte [esp + 0x13], 0xfe
mov byte [esp + 0x12], 0xfe
mov byte [ebp + 0x610], 0
mov byte [ebp + 0x611], 0xb
xor ecx, ecx
lea esi, [ebp + 0x612]
mov eax, ecx
mov edi, 3
cdq
idiv edi
test edx, edx
jne 0x402e76
mov byte [esi], dl
cmp edx, 1
jne 0x402e7e
mov byte [esi], 0x80
cmp edx, 2
jne 0x402e86
mov byte [esi], 0xff
mov eax, dword [ebp + 0xf8]
shl eax, 5
mov eax, dword [eax + 0x413448]
and eax, 0x3fc000
cmp eax, 0x80000
je 0x402ec2
cmp eax, 0x84000
je 0x402ec2
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, 3
sub al, dl
shl al, 6
mov byte [esi + 1], al
jmp 0x402ed6
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
shl dl, 6
mov byte [esi + 1], dl
inc ecx
add esi, 2
cmp ecx, 0xc
jl 0x402e66
lea eax, [ebp + 0x610]
push 0x1a
push eax
mov ecx, ebp
mov byte [ebp + 0x628], 0
call fcn.00401c00
push 0x1388
mov ecx, ebp
call fcn.00401f50
push 1
push 0
mov ecx, ebp
call fcn.00401cf0
mov esi, 0x4b0
mov al, byte [ebp + 0x17]
test al, al
je 0x403677
mov ecx, ebp
call fcn.00401f70
test al, al
jne 0x403684
mov al, byte [ebp + 0x14]
test al, al
jne 0x402f64
mov al, byte [ebp + 0x18]
test al, al
jne 0x402f64
lea ecx, [esp + 0x12]
push 1
push ecx
mov ecx, ebp
call fcn.00401a80
mov ebx, dword [ebp + 0xc0]
xor edx, edx
cmp ebx, esi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.00402420
lea eax, [ebp + 0x210]
push 1
push eax
mov ecx, ebp
call fcn.00401cf0
test al, al
je 0x402f12
mov cl, byte [ebp + 0x610]
mov al, byte [ebp + 0x210]
and cl, 0xf
cmp al, cl
je 0x402f98
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret
mov ebx, dword [ebp + 0xc0]
lea esi, [esp + 0x40]
lea ecx, [ebp + 0x213]
mov edi, 0xc
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x402fad
mov ecx, 8
lea esi, [ebp + 0x610]
lea edi, [ebp + 0x210]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
lea eax, [edi + edi]
sub eax, esi
mov dword [esp + 0x6c], eax
sub eax, ecx
cdq
idiv ecx
cmp eax, 2
jge 0x403023
mov eax, dword [ebp + 0xb4]
test eax, eax
mov eax, 0x422b3c
jne 0x40300e
mov eax, str._Skipped____
push eax
push ebp
call fcn.00401660
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, dword [ebp + 0xd4]
mov esi, dword [esp + 0x44]
cmp eax, esi
jg 0x403035
xor ecx, ecx
jmp 0x403080
cmp eax, dword [esp + 0x48]
jg 0x403042
mov ecx, 1
jmp 0x403080
cmp eax, dword [esp + 0x50]
jg 0x40304f
mov ecx, 3
jmp 0x403080
cmp eax, dword [esp + 0x54]
jg 0x40305c
mov ecx, 4
jmp 0x403080
cmp eax, dword [esp + 0x5c]
jg 0x403069
mov ecx, 6
jmp 0x403080
cmp eax, dword [esp + 0x60]
jg 0x403076
mov ecx, 7
jmp 0x403080
xor ecx, ecx
cmp eax, edi
setg cl
add ecx, 9
mov al, byte [ebp + ecx*2 + 0x213]
mov ebx, 3
mov byte [ebp + 0x61d], al
mov byte [ebp + 0x61b], al
mov byte [ebp + 0x619], al
mov byte [ebp + 0x617], al
mov byte [ebp + 0x615], al
mov byte [ebp + 0x613], al
mov eax, ecx
cdq
idiv ebx
test edx, edx
je 0x4030e8
mov eax, dword [esp + ecx*4 + 0x40]
mov ebx, dword [esp + ecx*4 + 0x44]
mov ecx, dword [ebp + 0xd4]
sub ebx, eax
sub ecx, eax
mov eax, ecx
shl eax, 7
sub eax, ecx
cdq
idiv ebx
add eax, 0x80
cmp eax, 0xfd
jle 0x40310a
mov eax, 0xfd
jmp 0x40310a
mov edx, dword [esp + ecx*4 + 0x40]
mov eax, dword [ebp + 0xd4]
mov ecx, dword [esp + ecx*4 + 0x44]
sub eax, edx
shl eax, 7
sub ecx, edx
cdq
idiv ecx
cmp eax, 3
jge 0x40310a
mov eax, 3
mov dl, al
mov cl, al
sub dl, 3
sub cl, 2
mov byte [ebp + 0x612], dl
mov byte [ebp + 0x614], cl
mov dl, al
mov cl, al
dec dl
mov byte [ebp + 0x618], al
inc cl
mov byte [ebp + 0x616], dl
add al, 2
mov byte [ebp + 0x61a], cl
mov byte [ebp + 0x61c], al
mov eax, dword [ebp + 0xf0]
cmp eax, esi
jg 0x403150
xor ecx, ecx
jmp 0x40319b
cmp eax, dword [esp + 0x48]
jg 0x40315d
mov ecx, 1
jmp 0x40319b
cmp eax, dword [esp + 0x50]
jg 0x40316a
mov ecx, 3
jmp 0x40319b
cmp eax, dword [esp + 0x54]
jg 0x403177
mov ecx, 4
jmp 0x40319b
cmp eax, dword [esp + 0x5c]
jg 0x403184
mov ecx, 6
jmp 0x40319b
cmp eax, dword [esp + 0x60]
jg 0x403191
mov ecx, 7
jmp 0x40319b
xor ecx, ecx
cmp eax, edi
setg cl
add ecx, 9
mov al, byte [ebp + ecx*2 + 0x213]
mov esi, 3
mov byte [ebp + 0x629], al
mov byte [ebp + 0x627], al
mov byte [ebp + 0x625], al
mov byte [ebp + 0x623], al
mov byte [ebp + 0x621], al
mov byte [ebp + 0x61f], al
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x403203
mov eax, dword [esp + ecx*4 + 0x40]
mov esi, dword [esp + ecx*4 + 0x44]
mov ecx, dword [ebp + 0xf0]
sub esi, eax
sub ecx, eax
mov eax, ecx
shl eax, 7
sub eax, ecx
cdq
idiv esi
add eax, 0x80
cmp eax, 0xfd
jle 0x403225
mov eax, 0xfd
jmp 0x403225
mov edx, dword [esp + ecx*4 + 0x40]
mov eax, dword [ebp + 0xf0]
mov ecx, dword [esp + ecx*4 + 0x44]
sub eax, edx
shl eax, 7
sub ecx, edx
cdq
idiv ecx
cmp eax, 3
jge 0x403225
mov eax, 3
mov dl, al
mov cl, al
sub dl, 3
sub cl, 2
mov byte [ebp + 0x61e], dl
mov dl, al
mov byte [ebp + 0x620], cl
dec dl
mov cl, al
mov byte [ebp + 0x622], dl
mov byte [ebp + 0x624], al
inc cl
add al, 2
mov byte [ebp + 0x626], cl
mov byte [ebp + 0x628], al
mov byte [esp + 0x10], 0
lea eax, [ebp + 0x610]
push 0x1a
push eax
mov ecx, ebp
mov edi, 0x4b0
mov byte [ebp + 0x611], 0xc
call fcn.00401c00
push 0x1388
mov ecx, ebp
call fcn.00401f50
push 1
push 0
mov ecx, ebp
call fcn.00401cf0
mov byte [esp + 0x13], 0xfe
mov byte [esp + 0x12], 0xfe
mov al, byte [ebp + 0x17]
test al, al
je 0x403677
mov ecx, ebp
call fcn.00401f70
test al, al
jne 0x403684
mov al, byte [ebp + 0x14]
test al, al
jne 0x4032f0
mov al, byte [ebp + 0x18]
test al, al
jne 0x4032f0
lea edx, [esp + 0x12]
push 1
push edx
mov ecx, ebp
call fcn.00401a80
mov ebx, dword [ebp + 0xc0]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.00402420
lea esi, [ebp + 0x210]
push 1
push esi
mov ecx, ebp
call fcn.00401cf0
test al, al
je 0x40329f
mov cl, byte [ebp + 0x610]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
jne 0x402f8b
mov ebx, dword [ebp + 0xc0]
lea esi, [esp + 0x40]
lea ecx, [ebp + 0x213]
mov edi, 0xc
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x40332c
mov eax, dword [ebp + 0xd4]
mov edx, dword [esp + 0x54]
xor ecx, ecx
cmp eax, edx
jle 0x403419
cmp byte [ebp + 0x61c], 0xff
jae 0x4034d5
xor eax, eax
mov al, byte [ebp + 0x612]
add eax, 5
cmp eax, 0xff
jle 0x40337f
mov eax, 0xff
mov byte [ebp + 0x612], al
xor eax, eax
mov al, byte [ebp + 0x614]
add eax, 5
cmp eax, 0xff
jle 0x40339c
mov eax, 0xff
mov byte [ebp + 0x614], al
xor eax, eax
mov al, byte [ebp + 0x616]
add eax, 5
cmp eax, 0xff
jle 0x4033b9
mov eax, 0xff
mov byte [ebp + 0x616], al
xor eax, eax
mov al, byte [ebp + 0x618]
add eax, 5
cmp eax, 0xff
jle 0x4033d6
mov eax, 0xff
mov byte [ebp + 0x618], al
xor eax, eax
mov al, byte [ebp + 0x61a]
add eax, 5
cmp eax, 0xff
jle 0x4033f3
mov eax, 0xff
mov byte [ebp + 0x61a], al
xor eax, eax
mov al, byte [ebp + 0x61c]
add eax, 5
cmp eax, 0xff
jle 0x4034ca
mov eax, 0xff
jmp 0x4034ca
cmp eax, dword [esp + 0x40]
jge 0x4034d5
mov al, byte [ebp + 0x612]
test al, al
jbe 0x4034d5
and eax, 0xff
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x612], al
xor eax, eax
mov al, byte [ebp + 0x614]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x614], al
xor eax, eax
mov al, byte [ebp + 0x616]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x616], al
xor eax, eax
mov al, byte [ebp + 0x618]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x618], al
xor eax, eax
mov al, byte [ebp + 0x61a]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x61a], al
xor eax, eax
mov al, byte [ebp + 0x61c]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x61c], al
mov ecx, 1
mov eax, dword [ebp + 0xf0]
mov edx, dword [esp + 0x6c]
cmp eax, edx
jle 0x4035a7
cmp byte [ebp + 0x628], 0xff
jae 0x403660
xor eax, eax
mov al, byte [ebp + 0x61e]
add eax, 5
cmp eax, 0xff
jle 0x40350b
mov eax, 0xff
mov byte [ebp + 0x61e], al
xor eax, eax
mov al, byte [ebp + 0x620]
add eax, 5
cmp eax, 0xff
jle 0x403528
mov eax, 0xff
mov byte [ebp + 0x620], al
xor eax, eax
mov al, byte [ebp + 0x622]
add eax, 5
cmp eax, 0xff
jle 0x403545
mov eax, 0xff
mov byte [ebp + 0x622], al
xor eax, eax
mov al, byte [ebp + 0x624]
add eax, 5
cmp eax, 0xff
jle 0x403562
mov eax, 0xff
mov byte [ebp + 0x624], al
xor eax, eax
mov al, byte [ebp + 0x626]
add eax, 5
cmp eax, 0xff
jle 0x40357f
mov eax, 0xff
mov byte [ebp + 0x626], al
xor eax, eax
mov al, byte [ebp + 0x628]
add eax, 5
cmp eax, 0xff
jle 0x40359c
mov eax, 0xff
mov byte [ebp + 0x628], al
jmp 0x403664
cmp eax, dword [esp + 0x58]
jge 0x403660
mov al, byte [ebp + 0x61e]
test al, al
jbe 0x403660
and eax, 0xff
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x61e], al
xor eax, eax
mov al, byte [ebp + 0x620]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x620], al
xor eax, eax
mov al, byte [ebp + 0x622]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x622], al
xor eax, eax
mov al, byte [ebp + 0x624]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x624], al
xor eax, eax
mov al, byte [ebp + 0x626]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x626], al
xor eax, eax
mov al, byte [ebp + 0x628]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x628], al
jmp 0x403664
test ecx, ecx
je 0x403691
mov al, byte [esp + 0x10]
inc al
cmp al, 4
mov byte [esp + 0x10], al
jae 0x403691
jmp 0x403262
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x60
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x60
ret
mov edi, dword [ebp + 0xd4]
mov dword [esp + 0x14], 0x42c80000
mov dword [esp + 0x18], edi
xor ecx, ecx
fild dword [esp + 0x18]
lea esi, [esp + 0x40]
mov edx, dword [esi]
mov eax, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv st(1)
fcom dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4036d7
fstp dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
jmp 0x4036d9
fstp st(0)
inc ecx
add esi, 4
cmp ecx, 6
jl 0x4036ad
mov ebx, dword [ebp + 0xf0]
mov edi, dword [esp + 0x28]
fstp st(0)
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], 0x42c80000
fild dword [esp + 0x20]
mov ecx, 6
lea esi, [esp + 0x58]
mov edx, dword [esi]
mov eax, ebx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv st(1)
fcom dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x40372f
fstp dword [esp + 0x14]
mov edi, ecx
jmp 0x403731
fstp st(0)
inc ecx
add esi, 4
cmp ecx, 0xc
jl 0x403707
mov eax, dword [esp + 0x1c]
fstp st(0)
mov edx, dword [esp + eax*4 + 0x40]
mov dword [ebp + 0xf4], edx
mov cl, byte [ebp + eax*2 + 0x613]
mov byte [ebp + 0x20f], cl
mov dl, byte [ebp + eax*2 + 0x612]
mov eax, dword [esp + edi*4 + 0x40]
mov byte [ebp + 0x20e], dl
mov dword [ebp + 0xf0], eax
mov cl, byte [ebp + edi*2 + 0x612]
mov byte [ebp + 0x20c], cl
mov dl, byte [ebp + edi*2 + 0x613]
mov byte [ebp + 0x20d], dl
jmp 0x404278
lea eax, [ebp + 0x610]
push 6
push eax
mov ecx, ebp
mov byte [esp + 0x1b], 0xfe
mov byte [esp + 0x1a], 0xfe
mov byte [eax], 0
mov byte [ebp + 0x611], 2
mov byte [ebp + 0x612], 0
mov byte [ebp + 0x613], 0
mov byte [ebp + 0x614], 0x80
mov byte [ebp + 0x615], 0
call fcn.00401c00
push 0x1388
mov ecx, ebp
call fcn.00401f50
push 1
push 0
mov ecx, ebp
call fcn.00401cf0
mov esi, 0x4b0
mov al, byte [ebp + 0x17]
test al, al
je 0x403677
mov ecx, ebp
call fcn.00401f70
test al, al
jne 0x403684
mov al, byte [ebp + 0x14]
test al, al
jne 0x40383b
mov al, byte [ebp + 0x18]
test al, al
jne 0x40383b
lea eax, [esp + 0x12]
push 1
push eax
mov ecx, ebp
call fcn.00401a80
mov ebx, dword [ebp + 0xc0]
xor ecx, ecx
cmp ebx, esi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.00402420
lea edx, [ebp + 0x210]
push 1
push edx
mov ecx, ebp
call fcn.00401cf0
test al, al
je 0x4037e9
mov al, byte [ebp + 0x610]
mov cl, byte [ebp + 0x210]
and al, 0xf
cmp cl, al
je 0x40386e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret
mov ecx, dword [ebp + 0xc0]
xor eax, eax
mov ah, byte [ebp + 0x212]
mov esi, dword [ebp + 0xd4]
mov al, byte [ebp + 0x213]
mov dword [esp + 0x14], 1
imul eax, ecx
cdq
sub eax, edx
mov edi, eax
xor eax, eax
mov ah, byte [ebp + 0x214]
mov al, byte [ebp + 0x215]
imul eax, ecx
cdq
sub eax, edx
mov edx, esi
sar edi, 1
sar eax, 1
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], eax
xor ecx, ecx
mov ebx, dword [esp + 0x14]
cmp edx, edi
jge 0x4038d2
inc ebx
add edx, esi
cmp ebx, 0x40
mov dword [esp + 0x14], ebx
jl 0x4038bc
jmp 0x4038fc
imul esi, ebx
sub eax, edi
sub esi, edi
cdq
and edx, 0x7f
add eax, edx
mov ecx, eax
mov eax, esi
cdq
sar ecx, 7
idiv ecx
mov ecx, 0xff
cmp eax, 0xff
jg 0x4038f7
mov ecx, eax
cmp ebx, 0x40
jl 0x403904
mov dword [esp + 0x14], 0x3f
test ecx, ecx
jne 0x40390f
mov ecx, 1
jmp 0x40391c
cmp ecx, 0xff
jne 0x40391c
mov ecx, 0xfe
mov al, cl
lea edx, [ebp + 0x610]
dec al
mov byte [ebp + 0x611], 0xc
mov byte [edx], 0
mov byte [ebp + 0x612], al
mov byte [ebp + 0x613], 0
mov byte [ebp + 0x614], al
mov byte [ebp + 0x615], 1
mov byte [ebp + 0x616], al
mov byte [ebp + 0x617], 2
mov byte [ebp + 0x618], al
mov byte [ebp + 0x619], 3
mov byte [ebp + 0x61a], cl
mov byte [ebp + 0x61b], 0
mov byte [ebp + 0x61c], cl
mov byte [ebp + 0x61d], 1
mov byte [ebp + 0x61e], cl
mov byte [ebp + 0x61f], 2
mov byte [ebp + 0x620], cl
inc cl
mov byte [ebp + 0x621], 3
mov byte [ebp + 0x622], cl
mov byte [ebp + 0x623], 0
mov byte [ebp + 0x624], cl
mov byte [ebp + 0x625], 1
mov byte [ebp + 0x626], cl
mov byte [ebp + 0x627], 2
mov byte [ebp + 0x628], cl
push 0x1a
push edx
mov ecx, ebp
mov byte [ebp + 0x629], 3
call fcn.00401c00
push 0x1388
mov ecx, ebp
call fcn.00401f50
push 1
push 0
mov ecx, ebp
call fcn.00401cf0
mov edi, 0x4b0
mov al, byte [ebp + 0x17]
test al, al
je 0x403677
mov ecx, ebp
call fcn.00401f70
test al, al
jne 0x403684
mov al, byte [ebp + 0x14]
test al, al
jne 0x403a45
mov al, byte [ebp + 0x18]
test al, al
jne 0x403a45
lea edx, [esp + 0x12]
push 1
push edx
mov ecx, ebp
call fcn.00401a80
mov ebx, dword [ebp + 0xc0]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.00402420
lea esi, [ebp + 0x210]
push 1
push esi
mov ecx, ebp
call fcn.00401cf0
test al, al
je 0x4039f4
mov cl, byte [ebp + 0x610]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
je 0x403a75
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret
mov ebx, dword [ebp + 0xc0]
lea esi, [esp + 0x40]
lea ecx, [ebp + 0x213]
mov edi, 0xc
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x403a8a
mov edx, dword [esp + 0x14]
or ebx, 0xffffffff
xor esi, esi
imul edx, dword [ebp + 0xd4]
lea edi, [esp + 0x40]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x403ac5
mov eax, edx
sub eax, ecx
jmp 0x403ac9
sub ecx, edx
mov eax, ecx
cmp eax, ebx
jae 0x403ad3
mov dword [esp + 0x20], esi
mov ebx, eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x403ab9
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + esi*4 + 0x40]
cdq
idiv ecx
shl cl, 2
mov dword [ebp + 0xf4], eax
mov dl, byte [ebp + esi*2 + 0x613]
and dl, 3
add dl, cl
mov byte [ebp + 0x20f], dl
mov al, byte [ebp + esi*2 + 0x612]
mov byte [ebp + 0x20e], al
jmp 0x404278
mov cl, byte [ebp + 0x243]
lea esi, [ebp + 0x625]
mov al, 0x7f
lea edi, [ebp + 0x610]
mov byte [esi], cl
mov dl, byte [ebp + 0x244]
mov byte [esp + 0x13], al
mov byte [esp + 0x12], al
mov byte [ebp + 0x626], dl
mov al, byte [ebp + 0x245]
mov byte [ebp + 0x627], al
mov cl, byte [ebp + 0x246]
mov byte [ebp + 0x628], cl
mov dl, byte [ebp + 0x247]
mov byte [ebp + 0x629], dl
mov al, byte [ebp + 0x248]
mov byte [ebp + 0x62a], al
mov cl, byte [ebp + 0x249]
mov byte [ebp + 0x62b], cl
mov eax, esi
mov byte [ebp + 0x62d], 0xff
mov byte [ebp + 0x62c], 0xff
mov ecx, dword [eax]
lea edx, [ebp + 0x611]
mov byte [esp + 0x42], 0x14
mov byte [esp + 0x43], 0xe
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov byte [esp + 0x44], 0xc
mov byte [esp + 0x45], 0x12
mov dword [edx + 4], ecx
mov ax, word [eax + 8]
mov byte [esp + 0x46], 0xc
mov byte [esp + 0x47], 6
mov word [edx + 8], ax
mov al, 0x10
mov byte [esp + 0x40], al
mov byte [esp + 0x41], al
mov al, 8
mov byte [edi], 0x65
mov byte [esp + 0x49], al
mov byte [esp + 0x51], al
mov eax, dword [ebp + 0xc0]
mov byte [esp + 0x48], 6
cmp eax, 0x12c0
mov byte [esp + 0x4a], 6
mov byte [esp + 0x4b], 6
mov byte [esp + 0x4c], 6
mov byte [esp + 0x4d], 6
mov byte [esp + 0x4e], 6
mov byte [esp + 0x4f], 6
mov byte [esp + 0x50], 6
mov byte [esp + 0x52], 6
mov byte [esp + 0x53], 6
mov byte [esp + 0x54], 6
mov byte [esp + 0x55], 6
mov byte [esp + 0x56], 6
mov byte [esp + 0x57], 6
mov byte [esp + 0x58], 6
mov byte [esp + 0x59], 0xc
mov byte [esp + 0x5a], 0xc
mov byte [esp + 0x5b], 0xc
mov byte [esp + 0x5c], 0xff
mov byte [esp + 0x5d], 0xff
mov byte [esp + 0x5e], 0xff
mov byte [esp + 0x5f], 0xff
mov byte [esp + 0x60], 0xff
mov byte [esp + 0x61], 0xff
mov byte [esp + 0x62], 0xff
jg 0x403c87
je 0x403c80
cmp eax, 0x4b0
je 0x403c7c
cmp eax, 0x960
jne 0x403c8e
mov eax, 7
jmp 0x403c9a
xor eax, eax
jmp 0x403c9a
mov eax, 0xe
jmp 0x403c9a
cmp eax, 0x2580
je 0x403c95
mov eax, 0x1c
jmp 0x403c9a
mov eax, 0x15
mov ecx, dword [ebp + 0xd4]
cmp ecx, 0x5b8d80
jle 0x403ca9
inc eax
cmp ecx, 0x802c80
jle 0x403cb2
inc eax
cmp ecx, 0xb71b00
jle 0x403cbb
inc eax
cmp ecx, 0x1036640
jle 0x403cc4
inc eax
cmp ecx, 0x16e3600
jle 0x403ccd
inc eax
cmp ecx, 0x206cc80
jle 0x403cd6
inc eax
mov cl, byte [esp + eax + 0x40]
mov byte [ebp + 0x61a], cl
mov byte [ebp + 0x61b], 6
mov eax, dword [ebp + 0xd4]
cmp eax, 0x7270e0
jg 0x403cfd
xor al, al
xor dl, dl
jmp 0x403e91
cmp eax, 0x989680
jg 0x403e63
xor al, al
mov dl, 1
mov bl, 0x80
mov byte [esp + 0x10], 0xff
mov byte [esp + 0x11], 0
mov cl, bl
shl al, 6
or al, 0x18
mov byte [ebp + 0x620], al
mov byte [ebp + 0x61c], al
mov al, byte [esp + 0x10]
mov byte [ebp + 0x61d], bl
shl dl, 6
mov byte [ebp + 0x621], al
mov byte [ebp + 0x622], 2
mov al, dl
mov dl, byte [esp + 0x11]
mov byte [ebp + 0x61e], 2
mov byte [ebp + 0x623], 0
or al, 0x18
mov byte [ebp + 0x61f], 0
mov byte [ebp + 0x628], al
mov byte [ebp + 0x624], al
mov byte [esi], dl
mov byte [ebp + 0x629], cl
mov byte [ebp + 0x62a], 2
mov byte [ebp + 0x626], 2
mov byte [ebp + 0x62b], 0
mov byte [ebp + 0x627], 0
mov eax, dword [ebp + 0xf0]
cmp eax, 0x1312d00
mov al, 0x58
jl 0x403da3
mov al, 0x98
mov byte [ebp + 0x630], al
mov byte [ebp + 0x62c], al
mov byte [ebp + 0x62d], 0
mov byte [ebp + 0x631], 0x80
mov byte [ebp + 0x632], 2
mov byte [ebp + 0x62e], 2
push 0x24
mov byte [ebp + 0x633], 0
push edi
mov ecx, ebp
mov byte [ebp + 0x62f], 0
call fcn.00401c00
push 0x7d0
mov ecx, ebp
call fcn.00401f50
push 1
push 0
mov ecx, ebp
call fcn.00401cf0
mov al, byte [ebp + 0x17]
test al, al
je 0x403677
mov ecx, ebp
call fcn.00401f70
test al, al
jne 0x403684
mov al, byte [ebp + 0x14]
test al, al
jne 0x403e39
mov al, byte [ebp + 0x18]
test al, al
jne 0x403e39
lea eax, [esp + 0x12]
push 1
push eax
mov ecx, ebp
call fcn.00401a80
push 0
mov ecx, ebp
call fcn.00402420
lea ecx, [ebp + 0x210]
push 1
push ecx
mov ecx, ebp
call fcn.00401cf0
test al, al
je 0x403dfa
cmp byte [ebp + 0x210], 0x65
je 0x403eb1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret
cmp eax, 0xe4e1c0
jg 0x403e70
mov al, 1
mov dl, al
jmp 0x403e91
cmp eax, 0x1406f40
jg 0x403e80
mov al, 1
mov dl, 2
jmp 0x403d0c
cmp eax, 0x1d905c0
jg 0x403e8d
mov al, 2
mov dl, al
jmp 0x403e91
mov al, 3
mov dl, al
xor bl, bl
cmp al, 3
setne cl
dec ecx
mov byte [esp + 0x10], 0x80
and ecx, 0xffffffb5
mov byte [esp + 0x11], 0x80
add ecx, 0xff
jmp 0x403d1a
mov eax, dword [ebp + 0xc0]
cmp eax, 0x1c200
jne 0x403ecb
mov dword [esp + 0x14], 0x835
jmp 0x403f59
cmp eax, 0xe100
jne 0x403edc
mov dword [esp + 0x14], 0x820
jmp 0x403f59
cmp eax, 0x9600
jne 0x403eed
mov dword [esp + 0x14], 0x81b
jmp 0x403f59
cmp eax, 0x7080
jne 0x403efe
mov dword [esp + 0x14], 0x818
jmp 0x403f59
cmp eax, 0x4b00
jne 0x403f0f
mov dword [esp + 0x14], 0x816
jmp 0x403f59
cmp eax, 0x3840
jne 0x403f20
mov dword [esp + 0x14], 0x814
jmp 0x403f59
cmp eax, 0x2580
jne 0x403f31
mov dword [esp + 0x14], 0x814
jmp 0x403f59
cmp eax, 0x12c0
jne 0x403f42
mov dword [esp + 0x14], 0x812
jmp 0x403f59
cmp eax, 0x960
mov dword [esp + 0x14], 0x80f
je 0x403f59
mov dword [esp + 0x14], 0x80d
xor ecx, ecx
lea esi, [esp + 0x30]
mov ch, byte [ebp + 0x232]
mov ebx, 4
mov cl, byte [ebp + 0x233]
imul ecx, eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
mov cl, byte [ebp + 0x231]
shr eax, 0x1f
mov byte [ebp + 0x20c], cl
lea ecx, [ebp + 0x21f]
lea eax, [edx + eax + 6]
imul eax, dword [esp + 0x14]
mov dword [ebp + 0xf0], eax
mov edi, dword [ebp + 0xc0]
xor edx, edx
mov eax, 0x1b4e81b5
mov dh, byte [ecx - 1]
add esi, 4
mov dl, byte [ecx]
add ecx, 4
imul edx, edi
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 6]
imul edx, dword [esp + 0x14]
mov dword [esi - 4], edx
dec ebx
jne 0x403fa9
mov esi, dword [ebp + 0xd4]
mov dword [esp + 0x1c], 0x42c80000
mov dword [esp + 0x18], esi
xor ecx, ecx
fild dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
lea edi, [esp + 0x30]
mov edx, dword [edi]
mov eax, esi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv st(1)
fcom dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x40401f
fstp dword [esp + 0x1c]
mov ebx, ecx
jmp 0x404021
fstp st(0)
inc ecx
add edi, 4
cmp ecx, 4
jl 0x403ff7
cmp ebx, 2
fstp st(0)
jge 0x404086
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
xor eax, eax
sub ecx, edi
mov al, byte [ebp + 0x21d]
xor edx, edx
mov dl, byte [ebp + 0x221]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
sub edx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
xor ebx, ebx
fidiv dword [esp + 0x20]
mov bl, byte [ebp + 0x21c]
mov dword [esp + 0x18], ebx
fild dword [esp + 0x1c]
fmul st(1)
call sub.MSVCRT.dll__ftol
sub eax, edi
add eax, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jmp 0x4040d9
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
xor eax, eax
sub ecx, edi
mov al, byte [ebp + 0x225]
xor edx, edx
mov dl, byte [ebp + 0x229]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
sub edx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
xor ebx, ebx
fidiv dword [esp + 0x20]
mov bl, byte [ebp + 0x224]
mov dword [esp + 0x18], ebx
fild dword [esp + 0x1c]
fmul st(1)
call sub.MSVCRT.dll__ftol
sub eax, edi
add eax, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv st(1)
call sub.MSVCRT.dll__ftol
sub eax, 5
fstp st(0)
jns 0x4040eb
xor eax, eax
jmp 0x4040f7
cmp eax, 0xf4
jle 0x4040f7
mov eax, 0xf4
mov byte [ebp + 0x61b], 0xb
mov cl, byte [ebp + 0x61b]
xor edx, edx
test cl, cl
jbe 0x404137
lea ecx, [ebp + 0x61d]
jmp 0x404116
mov ebx, dword [esp + 0x18]
mov byte [ecx - 1], bl
mov bl, dl
add bl, al
inc edx
mov byte [ecx], bl
mov byte [ecx + 1], 2
xor ebx, ebx
mov byte [ecx + 2], 0
mov bl, byte [ebp + 0x61b]
add ecx, 4
cmp edx, ebx
jl 0x404112
lea eax, [ebp + 0x610]
push 0x38
push eax
mov ecx, ebp
call fcn.00401c00
push 0x7d0
mov ecx, ebp
call fcn.00401f50
push 1
push 0
mov ecx, ebp
call fcn.00401cf0
push 0xfa0
mov ecx, ebp
call fcn.00401f50
mov al, byte [ebp + 0x17]
test al, al
je 0x403677
mov ecx, ebp
call fcn.00401f70
test al, al
jne 0x403684
mov al, byte [ebp + 0x14]
test al, al
jne 0x4041a9
mov al, byte [ebp + 0x18]
test al, al
jne 0x4041a9
lea eax, [esp + 0x12]
push 1
push eax
mov ecx, ebp
call fcn.00401a80
push 0
mov ecx, ebp
call fcn.00402420
lea esi, [ebp + 0x210]
push 1
push esi
mov ecx, ebp
call fcn.00401cf0
test al, al
je 0x40416a
cmp byte [esi], 0x65
je 0x4041cf
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret
mov edi, dword [ebp + 0xd4]
mov cl, byte [ebp + 0x21c]
mov ebx, dword [ebp + 0xc0]
mov dword [esp + 0x18], edi
fild dword [esp + 0x18]
mov dword [esp + 0x1c], 0x42c80000
mov byte [ebp + 0x20f], cl
mov dword [esp + 0x20], edi
lea esi, [ebp + 0x21f]
mov dword [esp + 0x18], 0xb
xor ecx, ecx
mov eax, 0x1b4e81b5
mov ch, byte [esi - 1]
mov cl, byte [esi]
imul ecx, ebx
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 6]
mov eax, edi
imul ecx, dword [esp + 0x14]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fdiv st(1)
fcom dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x40425c
fstp dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov cl, byte [esi - 2]
mov byte [ebp + 0x20e], cl
jmp 0x40425e
fstp st(0)
mov eax, dword [esp + 0x18]
add esi, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x404209
mov edx, dword [esp + 0x20]
fstp st(0)
mov dword [ebp + 0xf4], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
sub eax, ebx
sub esp, 8
mov dword [esp + 0x30], eax
fild qword [esp + 0x30]
fmul dword [0x41aa3c]
fstp qword [esp]
push 0x422b1c
push ebp
call fcn.00401660
mov eax, dword [ebp + 0xb4]
add esp, 0x10
test eax, eax
mov eax, 0x422af8
jne 0x4042c2
mov eax, str.Adjusted_frequency:__.3fMHz___.3f____r_n
fild dword [ebp + 0xf4]
fild dword [ebp + 0xd4]
sub esp, 8
fld st(1)
fsub st(1)
sub esp, 8
fdiv st(1)
fmul dword [0x41aa38]
fstp qword [esp + 8]
fstp st(0)
fmul qword [0x41aa30]
fstp qword [esp]
push eax
push ebp
call fcn.00401660
fild dword [ebp + 0xd4]
fild dword [ebp + 0xf4]
add esp, 0x18
mov byte [ebp + 0x27], 1
fsub st(1)
fdiv st(1)
fmul dword [0x41aa38]
fstp dword [ebp + 0x15c]
fstp st(0)
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret