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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ebp, 0xe1000
mov al, byte [esi + 0x24]
mov ebx, 0x70800
mov edi, 0x1c200
mov dword [esp + 0x1c], ebp
test al, al
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0x38400
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0xe100
mov dword [esp + 0x30], 0x9600
mov dword [esp + 0x34], 0x7080
mov dword [esp + 0x38], 0x4b00
mov dword [esp + 0x3c], 0x3840
mov dword [esp + 0x40], 0x2580
mov dword [esp + 0x44], 0x12c0
mov dword [esp + 0x48], 0x960
mov dword [esp + 0x4c], 0x4b0
jne 0x407bc2
mov al, byte [esi + 0x25]
test al, al
je 0x407bf9
mov eax, dword [esi + 0xe8]
cmp eax, edi
jle 0x407bf9
cmp eax, ebp
jl 0x407bd8
mov dword [esi + 0xe8], ebp
jmp 0x407bf9
cmp eax, ebx
jl 0x407be4
mov dword [esi + 0xe8], ebx
jmp 0x407bf9
xor ecx, ecx
cmp eax, 0x38400
setl cl
dec ecx
and ecx, edi
add ecx, edi
mov dword [esi + 0xe8], ecx
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x5218
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov edx, dword [esi + 0x11c]
add esp, 8
shl edx, 5
mov eax, dword [edx + 0x422718]
shr eax, 0xf
and eax, 0xff
dec eax
cmp eax, 0x1b
ja case.0x407c4a.3
xor ecx, ecx
mov cl, byte [eax + 0x408a28]
jmp dword [ecx*4 + 0x408a1c]
mov eax, dword [esi + 0x1a4]
mov byte [esi + 0xab6], 0x8f
cmp eax, 2
jne 0x408002
mov ebp, dword [esi + 0xe8]
fild dword [esi + 0x114]
mov dword [esp + 0x10], ebp
fild dword [esp + 0x10]
fdivr st(1)
fst dword [esp + 0x10]
fmul dword [0x42ba38]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 0x41
jne 0x407f35
fld dword [esp + 0x10]
fmul dword [0x42ba30]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 0x41
jne 0x407e68
fld dword [esp + 0x10]
fmul dword [0x42ba2c]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 0x41
jne 0x407d9b
mov byte [esi + 0xab7], 0
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x42ba28]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42ba28]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x407d22
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x407d2d
jmp 0x407d24
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x407cdb
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x42ba28]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 1
jne 0x407d55
dec ecx
sub edx, 4
test ecx, ecx
jge 0x407d36
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x407d61
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x407d71
cmp ebp, edi
jge 0x407d73
mov edi, ebp
jmp 0x407d73
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe8], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x42ba28]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x4080f6
mov byte [esi + 0xab7], 0x80
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x42ba2c]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42ba2c]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x407def
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x407dfa
jmp 0x407df1
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x407da8
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x42ba2c]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 1
jne 0x407e22
dec ecx
sub edx, 4
test ecx, ecx
jge 0x407e03
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x407e2e
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x407e3e
cmp ebp, edi
jge 0x407e40
mov edi, ebp
jmp 0x407e40
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe8], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x42ba2c]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x4080f6
mov byte [esi + 0xab7], 0x40
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x42ba30]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42ba30]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x407ebc
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x407ec7
jmp 0x407ebe
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x407e75
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x42ba30]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 1
jne 0x407eef
dec ecx
sub edx, 4
test ecx, ecx
jge 0x407ed0
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x407efb
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x407f0b
cmp ebp, edi
jge 0x407f0d
mov edi, ebp
jmp 0x407f0d
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe8], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x42ba30]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x4080f6
mov byte [esi + 0xab7], 0xc0
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x42ba38]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42ba38]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x407f89
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x407f94
jmp 0x407f8b
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x407f42
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x42ba38]
fcomp dword [0x42ba34]
fnstsw ax
test ah, 1
jne 0x407fbc
dec ecx
sub edx, 4
test ecx, ecx
jge 0x407f9d
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x407fc8
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x407fd8
cmp ebp, edi
jge 0x407fda
mov edi, ebp
jmp 0x407fda
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe8], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x42ba38]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x4080f6
cmp eax, 3
jne 0x4080fe
fild dword [esi + 0x114]
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x42ba30]
fcom dword [0x42ba14]
fnstsw ax
test ah, 1
jne 0x40806b
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42ba30]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x40806d
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x408078
jmp 0x40806f
fstp st(0)
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x408017
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x42ba30]
fcomp dword [0x42ba10]
fnstsw ax
test ah, 1
jne 0x4080a0
dec ecx
sub edx, 4
test ecx, ecx
jge 0x408081
mov eax, dword [esi + 0xe8]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x4080b2
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp edx, ecx
jle 0x4080c2
cmp eax, edi
jl 0x4080c4
mov eax, edi
jmp 0x4080c4
mov eax, ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0xe8], eax
fidiv dword [esp + 0x10]
fmul dword [0x42ba30]
fadd qword [0x42ba20]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor edx, edx
mov dl, ah
mov byte [esi + 0xab7], dl
call sub.MSVCRT.dll__ftol
neg al
mov byte [esi + 0xab8], al
mov bl, byte [esi + 0xab7]
or al, 0xff
sub al, bl
xor ecx, ecx
mov cl, byte [esi + 0xab8]
mov byte [esi + 0xab9], al
mov eax, pe_nt_image_headers32
sub eax, ecx
shl eax, 1
cmp eax, 0xfe
jle 0x40812b
mov eax, 0xfe
mov ecx, dword [esi + 0xe4]
mov byte [esi + 0xaba], al
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [edx + edx*4]
shl eax, 2
cmp eax, 0xfa
jg 0x408168
cmp eax, 0x28
jge 0x408161
mov eax, 0x28
jmp 0x40816d
cmp eax, 0xfa
jle 0x40816d
mov eax, 0xfa
mov ecx, esi
mov byte [esi + 0xabb], al
call fcn.00403e50
mov ecx, dword [esi + 0x178]
mov byte [esi + 0xabc], al
cmp ecx, 0x72
jl 0x4081a2
lea ecx, [esi + 0xab6]
push 4
mov byte [esi + 0xab9], al
push ecx
mov byte [ecx], 1
jmp 0x4087d0
lea eax, [esi + 0xab6]
push 7
push eax
mov ecx, esi
call fcn.004037d0
mov ecx, dword [esi + 0xe8]
push 0x8f
push ecx
mov ecx, esi
call fcn.00403c30
push 0x1388
mov ecx, esi
call fcn.00403be0
push 1
push 0
mov ecx, esi
call fcn.00403970
mov al, byte [esi + 0x23]
test al, al
je 0x408a01
mov ecx, esi
call fcn.00403c00
test al, al
jne 0x408a0e
lea edx, [esi + 0x6b6]
push 1
push edx
mov ecx, esi
call fcn.00403970
test al, al
je 0x4081dc
mov al, byte [esi + 0x25]
test al, al
je 0x408228
mov eax, dword [esi + 0x1c4]
test eax, eax
je 0x408228
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret
cmp byte [esi + 0x6b6], 0x8f
je 0x40823e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret
mov eax, dword [esi + 0xe4]
push 0xffffffffffffffff
push eax
mov ecx, esi
call fcn.00403c30
lea eax, [esi + 0xab6]
push 6
mov byte [eax], 0x8e
jmp 0x4087cf
cmp dword [esi + 0x178], 0x71
jge case.0x407c4a.3
mov eax, dword [esi + 0x114]
lea edi, [esi + 0xab6]
cmp eax, 0x1312d00
mov dword [esp + 0x10], eax
mov byte [edi], 0x8e
jge 0x4082bc
mov ecx, dword [esi + 0xe8]
mov byte [esi + 0xab7], 0x58
test ecx, ecx
mov byte [esi + 0xabe], 0x83
jne 0x4082a7
mov dword [esi + 0xe8], 0x7080
mov ecx, dword [esi + 0xe8]
cmp ecx, 0x7080
jl 0x4082f1
mov ecx, 0x7080
jmp 0x4082f1
mov ecx, dword [esi + 0xe8]
mov byte [esi + 0xab7], 0x98
test ecx, ecx
mov byte [esi + 0xabe], 0x81
jne 0x4082de
mov dword [esi + 0xe8], 0xe100
mov ecx, dword [esi + 0xe8]
cmp ecx, 0xe100
jl 0x4082f1
mov ecx, 0xe100
mov dword [esi + 0xe8], ecx
mov cl, byte [esi + 0x6b0]
mov byte [esi + 0xab8], cl
mov ecx, dword [esi + 0xe8]
test ecx, ecx
jne 0x40832a
xor edx, edx
cmp eax, 0x1312d00
setge dl
dec edx
and edx, 0xffff8f80
add edx, 0xe100
mov dword [esi + 0xe8], edx
cdq
idiv dword [esi + 0xe8]
mov ebx, eax
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
jne 0x408357
neg bl
mov byte [esi + 0xab9], 0
mov byte [esi + 0xaba], bl
jmp 0x408374
mov cl, dl
mov eax, ebx
inc cl
mov byte [esi + 0xab9], cl
and ecx, 0xff
cdq
idiv ecx
neg al
mov byte [esi + 0xaba], al
fild dword [esp + 0x10]
mov byte [esi + 0xabb], 0x64
fmul dword [0x42ba0c]
fsubr dword [0x42ba08]
call sub.MSVCRT.dll__ftol
and eax, 0xffff
xor ecx, ecx
mov cl, ah
push 0xc
mov byte [esi + 0xabc], cl
mov byte [esi + 0xabd], al
mov byte [esi + 0xabf], 0x20
mov byte [esi + 0xac0], 0xff
mov byte [esi + 0xac1], 0
push edi
jmp 0x4087d0
mov al, byte [esi + 0x6b1]
mov dl, byte [esi + 0x6b0]
mov byte [esi + 0xab8], al
mov eax, dword [esi + 0x1a4]
test eax, eax
mov byte [esi + 0xab6], 1
mov byte [esi + 0xab7], dl
jne 0x408526
fild dword [esi + 0x114]
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fcom dword [0x42ba04]
fnstsw ax
test ah, 1
jne 0x408443
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x408445
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x408450
jmp 0x408447
fstp st(0)
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x4083fb
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fcomp dword [0x42ba00]
fnstsw ax
test ah, 1
jne 0x408472
dec ecx
sub edx, 4
test ecx, ecx
jge 0x408459
mov eax, dword [esi + 0xe8]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x408484
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp edx, ecx
jle 0x408498
cmp eax, edi
jge 0x408494
mov edx, eax
jmp 0x40849a
mov edx, edi
jmp 0x40849a
mov edx, ecx
cmp edx, 0x9600
jle 0x4084a9
mov eax, 0x9600
jmp 0x4084bf
cmp eax, edi
mov edx, eax
jl 0x4084b1
mov edx, edi
cmp edx, ecx
jle 0x4084bd
cmp eax, edi
jl 0x4084bf
mov eax, edi
jmp 0x4084bf
mov eax, ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0xe8], eax
fidiv dword [esp + 0x10]
fld st(0)
fadd qword [0x42ba20]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor ecx, ecx
mov cl, ah
mov byte [esi + 0xab9], cl
call sub.MSVCRT.dll__ftol
fmul qword [0x42b9f8]
neg al
mov byte [esi + 0xaba], al
fadd qword [0x42ba20]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor edx, edx
mov dl, ah
mov byte [esi + 0xabb], dl
call sub.MSVCRT.dll__ftol
neg al
mov byte [esi + 0xabc], al
jmp 0x4087ba
cmp eax, 1
jne 0x4087ba
mov al, byte [esi + 0x24]
test al, al
jne 0x40867b
mov al, byte [esi + 0x25]
test al, al
jne 0x40867b
fild dword [esi + 0x114]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x40], edi
mov dword [esp + 0x1c], 0x1e8480
mov dword [esp + 0x20], 0x16e360
mov dword [esp + 0x24], 0xf4240
mov dword [esp + 0x2c], 0x7a120
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0x3d090
mov dword [esp + 0x38], 0x38400
mov dword [esp + 0x3c], 0x30d40
mov dword [esp + 0x44], 0x186a0
mov dword [esp + 0x48], 0xe100
mov dword [esp + 0x4c], 0x9600
mov dword [esp + 0x50], 0x7080
mov dword [esp + 0x54], 0x4b00
mov dword [esp + 0x58], 0x3840
mov dword [esp + 0x5c], 0x2580
mov dword [esp + 0x60], 0x12c0
mov dword [esp + 0x64], 0x960
mov dword [esp + 0x68], 0x4b0
xor edi, edi
lea ebp, [esp + 0x1c]
fild dword [ebp]
fld st(1)
fdiv st(1)
fmul dword [0x42b9f4]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42b9f4]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x40862d
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x408638
jmp 0x40862f
fstp st(0)
inc edi
add ebp, 4
cmp edi, 0x14
jb 0x4085e5
mov ecx, 0x13
lea edx, [esp + 0x68]
fild dword [edx]
fdivr st(1)
fmul dword [0x42b9f4]
fcomp dword [0x42ba10]
fnstsw ax
test ah, 1
jne 0x408660
dec ecx
sub edx, 4
test ecx, ecx
jge 0x408641
mov eax, dword [esi + 0xe8]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x408672
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
jmp 0x408774
fild dword [esi + 0x114]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0x38400
mov dword [esp + 0x2c], 0xe100
mov dword [esp + 0x30], 0x9600
mov dword [esp + 0x34], 0x7080
mov dword [esp + 0x38], 0x4b00
mov dword [esp + 0x3c], 0x3840
mov dword [esp + 0x40], 0x2580
mov dword [esp + 0x44], 0x12c0
mov dword [esp + 0x48], 0x960
mov dword [esp + 0x4c], 0x4b0
xor edi, edi
lea ebp, [esp + 0x1c]
fild dword [ebp]
fld st(1)
fdiv st(1)
fmul dword [0x42b9f4]
fadd qword [0x42ba20]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x42b9f4]
fsub st(1)
fdivrp st(1)
fcom dword [0x42ba1c]
fnstsw ax
test ah, 0x41
jne 0x40872b
fcomp dword [0x42ba18]
fnstsw ax
test ah, 1
jne 0x408736
jmp 0x40872d
fstp st(0)
inc edi
add ebp, 4
cmp edi, 0xd
jb 0x4086e3
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x42b9f4]
fcomp dword [0x42ba10]
fnstsw ax
test ah, 1
jne 0x40875e
dec ecx
sub edx, 4
test ecx, ecx
jge 0x40873f
mov eax, dword [esi + 0xe8]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x408770
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp edx, ecx
jle 0x408780
cmp eax, edi
jl 0x408782
mov eax, edi
jmp 0x408782
mov eax, ecx
mov dword [esi + 0xe8], eax
fidiv dword [esi + 0xe8]
fmul dword [0x42b9f4]
fadd qword [0x42ba20]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor ecx, ecx
mov cl, ah
mov byte [esi + 0xab9], cl
call sub.MSVCRT.dll__ftol
neg al
mov byte [esi + 0xaba], al
mov ecx, esi
call fcn.00403e50
mov byte [esi + 0xabd], al
push 8
lea eax, [esi + 0xab6]
push eax
mov ecx, esi
call fcn.004037d0
cmp dword [esi + 0x1a0], 3
jge 0x4087f3
mov edx, dword [esi + 0xe8]
push 0x8e
push edx
mov ecx, esi
call fcn.00403c30
push 0x1388
mov ecx, esi
call fcn.00403be0
push 1
push 0
mov ecx, esi
call fcn.00403970
mov al, byte [esi + 0x23]
test al, al
je 0x408a01
mov ecx, esi
call fcn.00403c00
test al, al
jne 0x408a0e
lea eax, [esi + 0x6b6]
push 1
push eax
mov ecx, esi
call fcn.00403970
test al, al
je 0x40880a
mov al, byte [esi + 0x25]
test al, al
je 0x408856
mov eax, dword [esi + 0x1c4]
test eax, eax
je 0x408856
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret
mov eax, dword [esi + 0x1a0]
test eax, eax
jne 0x40887e
mov cl, byte [esi + 0x6b6]
lea edi, [esi + 0x6b6]
cmp cl, 0x8e
je 0x4088b7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret
cmp eax, 3
lea edi, [esi + 0x6b6]
jl 0x4088a5
mov cl, byte [esi + 0xab6]
mov dl, byte [edi]
and cl, 0xf
cmp dl, cl
je 0x4088b7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret
cmp byte [edi], 0x84
je 0x4088b7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret
cmp eax, 3
jl 0x4088cc
mov edx, dword [esi + 0xe8]
push 0xffffffffffffffff
push edx
mov ecx, esi
call fcn.00403c30
mov eax, dword [esi + 0x1a0]
test eax, eax
jne 0x40899c
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x11c]
xor ecx, ecx
shl eax, 5
mov byte [esi + 0xab6], 0x80
mov byte [esi + 0xab7], 0
lea eax, [eax + 0x422720]
mov byte [esi + 0xab8], 0
mov byte [esi + 0xab9], 0x36
mov byte [esi + 0xaba], 1
mov cl, byte [eax + 1]
xor ebx, ebx
mov byte [esi + 0xabb], cl
mov dl, byte [eax]
mov byte [esi + 0xabc], dl
lea eax, [esi + 0xab6]
push 7
push eax
mov ecx, esi
call fcn.004037d0
push 0x1388
mov ecx, esi
call fcn.00403be0
push 1
push 0
mov ecx, esi
call fcn.00403970
mov al, byte [esi + 0x23]
test al, al
je 0x408a01
mov ecx, esi
call fcn.00403c00
test al, al
jne 0x408a0e
push 1
push edi
mov ecx, esi
call fcn.00403970
test al, al
je 0x408950
mov al, byte [esi + 0x25]
test al, al
je 0x40898d
mov eax, dword [esi + 0x1c4]
test eax, eax
jne 0x4088aa
cmp byte [edi], 0x80
jne 0x4088aa
inc ebx
cmp ebx, 5
jl 0x408929
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
sub eax, ebx
sub esp, 8
mov dword [esp + 0x1c], eax
mov ecx, esi
fild qword [esp + 0x1c]
fmul dword [0x42b9f0]
fstp qword [esp]
push 0x5219
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov eax, dword [esi + 0xe8]
add esp, 0x10
mov ecx, esi
push eax
push 0x521a
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x5c
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x5c
ret