Function at 0x66c358
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x36
push 0
push 0
dec ecx
jne 0x66c360
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov ebx, eax
lea eax, [ebp - 4]
call fcn.004058f8
xor eax, eax
push ebp
push 0x66ef22
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.006c8190
mov eax, ebx
call fcn.006c6bb8
mov byte [ebp - 5], 0
mov eax, dword [0x6e40fc]
mov byte [eax], 0
mov eax, dword [0x6e65cc]
mov byte [eax], 0
mov eax, dword [0x6e5a5c]
mov byte [eax], 0
mov eax, dword [0x6e3524]
mov byte [eax], 0
mov eax, dword [0x6e3acc]
mov byte [eax], 0
mov eax, dword [0x6e5b20]
mov byte [eax], 0
mov eax, dword [0x6e37e0]
mov byte [eax], 0
mov eax, dword [0x6e42f4]
mov byte [eax], 0
mov eax, dword [0x6e6590]
mov byte [eax], 0
mov eax, dword [0x6e3be8]
call fcn.004052d8
mov eax, dword [0x6e4038]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e3c6c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e6130]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e4894]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e52c0]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0xbff00000
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 4]
call fcn.004972dc
mov eax, dword [ebp - 0x84]
lea edx, [ebp - 0x80]
call fcn.00496d64
mov edx, dword [ebp - 0x80]
lea eax, [ebp - 0x24]
call fcn.00404e54
mov eax, dword [0x6e3510]
mov edx, dword [ebp - 4]
call fcn.00405314
mov eax, dword [0x6e33f0]
cmp dword [eax], 0
jle 0x66c472
mov eax, dword [0x6e33f0]
xor edx, edx
mov dword [eax], edx
xor edx, edx
mov eax, dword [ebx + 0x33c]
call fcn.0046d2b4
mov eax, dword [0x6e5b80]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e48c8]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0xbff00000
mov eax, dword [0x6e3c90]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0xbff00000
mov eax, dword [0x6e3c18]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0xbff00000
mov eax, dword [0x6e6484]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0xbff00000
mov eax, dword [0x6e5088]
cmp byte [eax], 0
jne 0x66c4fc
mov eax, dword [0x6e59c8]
mov eax, dword [eax]
mov edx, dword [0x6e62fc]
cmp eax, dword [edx]
je 0x66c503
mov eax, dword [0x6e570c]
cmp dword [eax], 0
je 0x66c503
mov eax, dword [0x6e4de8]
fld qword [eax + 0x10]
fcomp dword [0x66ef38]
fnstsw ax
sahf
jbe 0x66c503
mov eax, ebx
call fcn.0066c250
jmp 0x66c503
mov eax, ebx
call fcn.0066fd84
mov edx, dword [0x6e48b0]
mov eax, ebx
call fcn.0066f50c
mov eax, dword [0x6e3944]
mov byte [eax], 0
mov eax, dword [0x6e53c4]
mov eax, dword [eax]
call fcn.0048e558
mov eax, dword [0x6e3944]
mov byte [eax], 1
mov eax, dword [0x6e48b0]
cmp dword [eax], 0
je 0x66c585
mov eax, dword [0x6e4890]
cmp dword [eax], 0
jle 0x66c557
mov eax, dword [0x6e4890]
mov eax, dword [eax]
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x74]
jmp 0x66c566
push 0
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x74]
mov eax, dword [0x6e3440]
cmp dword [eax], 0
jle 0x66c585
mov eax, dword [0x6e3440]
mov eax, dword [eax]
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x7c]
mov eax, dword [0x6e3440]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e4890]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e6088]
mov byte [eax], 1
mov eax, dword [ebp - 0x24]
mov edx, 0x66ef44
call fcn.00404fd8
jne 0x66ca42
mov eax, dword [0x6e5088]
cmp byte [eax], 0
jne 0x66c5d5
mov eax, dword [0x6e53e0]
mov byte [eax], 1
xor edx, edx
mov eax, ebx
call fcn.00656ef4
mov eax, dword [0x6e53e0]
mov byte [eax], 0
mov eax, dword [0x6e53c4]
mov eax, dword [eax]
call fcn.0048e558
mov eax, ebx
call fcn.006cadac
cmp al, 1
jne 0x66c676
mov eax, ebx
call fcn.0066952c
lea edx, [ebp - 0x1c]
mov eax, dword [0x6e644c]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [0x6e33c4]
cmp dword [eax], 0
jne 0x66c63d
push dword [ebp - 0x1c]
push 0x66ef50
lea edx, [ebp - 0x88]
mov eax, dword [0x6e66a8]
mov eax, dword [eax]
call fcn.005d1e94
push dword [ebp - 0x88]
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.0040561c
mov ax, word [0x66ef54]
push eax
push 0
mov cl, 2
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.006b79f8
mov eax, dword [0x6e5c90]
mov dword [eax], 0x13
mov eax, dword [0x6e4710]
mov dword [eax], 4
xor edx, edx
mov eax, ebx
call fcn.0065306c
jmp 0x66edb0
mov eax, dword [0x6e33c4]
cmp dword [eax], 1
jne 0x66c687
mov edi, 1
jmp 0x66c68f
mov edi, dword [0x6e4408]
mov edi, dword [edi]
mov eax, dword [0x6e42ac]
cmp dword [eax], 0
je 0x66c6a0
mov eax, ebx
call fcn.0066952c
mov edx, 0x66ef5c
mov eax, dword [ebp - 4]
call fcn.005d6fdc
test al, al
je 0x66c6e0
mov al, byte [0x66ef64]
push eax
push 0
lea eax, [ebp - 0x8c]
push eax
mov ecx, 0x66ef6c
mov edx, 0x66ef74
mov eax, dword [ebp - 4]
call fcn.00496de4
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 4]
call fcn.00405338
mov eax, dword [0x6e4de8]
mov edx, dword [ebp - 4]
call fcn.00405314
mov edx, edi
mov eax, ebx
call fcn.00669470
test al, al
jne 0x66c729
lea edx, [ebp - 0x90]
mov eax, dword [0x6e43b8]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0x90]
xor edx, edx
call fcn.00521aa8
mov eax, ebx
call fcn.0066952c
mov byte [ebp - 5], 0
jmp 0x66edb0
push 1
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 0x38], eax
sub edi, 1
jb 0x66c73f
sub edi, 2
jb 0x66c772
jmp 0x66c79b
mov eax, dword [0x6e47d0]
push eax
push 1
lea edx, [ebp - 0x94]
mov eax, dword [ebp - 4]
call fcn.005d7c8c
mov eax, dword [ebp - 0x94]
call fcn.00405538
push eax
mov eax, dword [0x6e42ac]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
mov esi, eax
jmp 0x66c79b
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 4]
call fcn.005d7c8c
mov eax, dword [ebp - 0x98]
call fcn.00405538
push eax
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x7c]
mov esi, eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_SetErrorMode
test esi, esi
jne 0x66c7f6
mov eax, ebx
call fcn.00669264
test al, al
jne 0x66c7e2
lea edx, [ebp - 0x9c]
mov eax, dword [0x6e4aec]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0x9c]
xor edx, edx
call fcn.00521aa8
mov eax, ebx
call fcn.0066952c
mov byte [ebp - 5], 0
jmp 0x66edb0
mov eax, ebx
call fcn.006bc9a4
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66ca10
mov eax, esi
cmp eax, 0x8004027b
jg 0x66c818
je 0x66c833
sub eax, 0x80004005
je 0x66c8f0
sub eax, 0x3c275
je 0x66c885
jmp 0x66c9a0
sub eax, 0x80070057
je 0x66c8a9
sub eax, 0x7ff8ffaa
je 0x66c932
jmp 0x66c9a0
lea eax, [ebp - 0xa0]
push eax
lea edx, [ebp - 0xa4]
mov eax, dword [0x6e446c]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0xa4]
push eax
mov eax, dword [0x6e30e0]
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xa8], 0xb
lea edx, [ebp - 0xac]
xor ecx, ecx
pop eax
call fcn.0040bc78
mov eax, dword [ebp - 0xa0]
xor edx, edx
call fcn.00521aa8
jmp 0x66ca00
lea edx, [ebp - 0xb0]
mov eax, dword [0x6e6438]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0xb0]
xor edx, edx
call fcn.00521aa8
jmp 0x66ca00
push 0x66ef7c
push dword [ebp - 4]
push 0x66ef84
lea edx, [ebp - 0xb8]
mov eax, dword [0x6e4014]
mov eax, dword [eax]
call fcn.005d1e94
push dword [ebp - 0xb8]
lea eax, [ebp - 0xb4]
mov edx, 4
call fcn.0040561c
mov eax, dword [ebp - 0xb4]
xor edx, edx
call fcn.00521aa8
jmp 0x66ca00
lea edx, [ebp - 0xc0]
mov eax, dword [0x6e3b1c]
mov eax, dword [eax]
call fcn.005d1eec
push dword [ebp - 0xc0]
push 0x66ef90
push dword [ebp - 0x1c]
lea eax, [ebp - 0xbc]
mov edx, 3
call fcn.0040561c
mov edx, dword [ebp - 0xbc]
mov eax, ebx
call fcn.00675eb4
jmp 0x66ca00
mov eax, dword [0x6e47d0]
cmp dword [eax], 0
jle 0x66c95b
lea edx, [ebp - 0xc4]
mov eax, dword [0x6e33b4]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0xc4]
xor edx, edx
call fcn.00521aa8
mov eax, dword [0x6e47d0]
cmp dword [eax + 4], 1
sbb eax, eax
inc eax
cmp al, 1
je 0x66c97f
mov eax, dword [0x6e47d0]
cmp dword [eax + 8], 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x66ca00
lea edx, [ebp - 0xc8]
mov eax, dword [0x6e3e74]
mov eax, dword [eax]
call fcn.005d1eec
mov edx, dword [ebp - 0xc8]
mov eax, ebx
call fcn.00675eb4
jmp 0x66ca00
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0xd0]
mov edx, 8
mov eax, esi
call fcn.0040a650
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xa8], 0xb
lea eax, [ebp - 0xac]
push eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x6e5fb0]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0xd4]
xor ecx, ecx
pop edx
call fcn.0040bc78
mov eax, dword [ebp - 0xcc]
xor edx, edx
call fcn.00521aa8
mov eax, ebx
call fcn.0066952c
mov byte [ebp - 5], 0
jmp 0x66edb0
mov eax, dword [0x6e4800]
cmp dword [eax], 0
je 0x66ca24
mov eax, dword [0x6e4800]
call fcn.005df614
mov eax, dword [0x6e3e30]
cmp dword [eax], 0
je 0x66ca38
mov eax, dword [0x6e3e30]
call fcn.005df368
call fcn.005d8560
jmp 0x66ec77
mov eax, dword [0x6e5088]
cmp byte [eax], 1
jne 0x66ca55
xor edx, edx
mov eax, ebx
call fcn.00656ef4
mov eax, ebx
call fcn.00669d20
mov eax, dword [0x6e4074]
cmp byte [eax], 1
jne 0x66ca70
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006bf0f0
mov eax, dword [0x6e3290]
mov eax, dword [eax]
mov eax, dword [eax + 8]
test eax, eax
jle 0x66cabd
mov edx, dword [0x6e3460]
cmp dword [edx], 0
jl 0x66cabd
mov edx, dword [0x6e3290]
mov edx, dword [0x6e3460]
cmp eax, dword [edx]
jle 0x66cabd
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
mov edx, eax
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
call fcn.00648c58
jmp 0x66cacc
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
add eax, 8
call fcn.004052d8
mov eax, dword [ebp - 0x24]
mov edx, 0x66efa0
call fcn.00404fd8
jne 0x66cb06
mov eax, dword [0x6e6700]
cmp byte [eax], 1
jne 0x66cb06
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006ca9b8
mov esi, eax
test esi, esi
jne 0x66ce32
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66ce32
mov eax, dword [ebp - 0x24]
mov edx, 0x66efb0
call fcn.00404fd8
jne 0x66cb40
mov eax, dword [0x6e4678]
cmp byte [eax], 1
jne 0x66cb40
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006ca5ec
mov esi, eax
test esi, esi
jne 0x66ce32
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66ce32
lea eax, [ebp - 0xd8]
mov edx, dword [ebp - 0x24]
call fcn.004054bc
mov eax, dword [ebp - 0xd8]
call fcn.005fddc8
cmp al, 1
jne 0x66cb90
mov eax, dword [0x6e41d0]
cmp byte [eax], 1
jne 0x66cb90
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006c9aec
mov esi, eax
test esi, esi
jne 0x66ce32
mov eax, dword [0x6e6088]
mov byte [eax], 0
mov eax, dword [0x6e37e0]
mov byte [eax], 1
jmp 0x66ce32
mov eax, dword [ebp - 0x24]
mov edx, 0x66efc0
call fcn.00404fd8
je 0x66cbf7
mov eax, dword [ebp - 0x24]
mov edx, 0x66efd0
call fcn.00404fd8
je 0x66cbf7
mov eax, dword [ebp - 0x24]
mov edx, 0x66efe0
call fcn.00404fd8
je 0x66cbf7
mov eax, dword [ebp - 0x24]
mov edx, 0x66eff0
call fcn.00404fd8
je 0x66cbf7
mov eax, dword [ebp - 0x24]
mov edx, 0x66f000
call fcn.00404fd8
je 0x66cbf7
mov eax, dword [ebp - 0x24]
mov edx, 0x66f010
call fcn.00404fd8
je 0x66cbf7
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
cmp dword [eax + 0x48], 6
jne 0x66cc29
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
fld qword [eax + 0x40]
call fcn.00403118
push edx
push eax
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006c9d9c
mov esi, eax
test esi, esi
jne 0x66ce32
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66ce32
mov eax, dword [0x6e66dc]
cmp byte [eax], 1
jne 0x66cd59
mov eax, dword [ebp - 0x24]
mov edx, 0x66f020
call fcn.00404fd8
je 0x66cc9b
mov eax, dword [ebp - 0x24]
mov edx, 0x66f030
call fcn.00404fd8
je 0x66cc9b
mov eax, dword [ebp - 0x24]
mov edx, 0x66f040
call fcn.00404fd8
je 0x66cc9b
lea edx, [ebp - 0xdc]
mov eax, dword [ebp - 4]
call fcn.00496d64
mov edx, dword [ebp - 0xdc]
mov eax, 0x66f04c
call fcn.00405860
test eax, eax
jne 0x66cc9b
mov edx, dword [ebp - 4]
mov eax, 0x66f06c
call fcn.00405860
test eax, eax
jg 0x66cd38
lea eax, [ebp - 0xe8]
push eax
mov ecx, 6
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004056e8
mov edx, dword [ebp - 0xe8]
lea eax, [ebp - 0xe4]
call fcn.00404e54
mov eax, dword [ebp - 0xe4]
lea edx, [ebp - 0xe0]
call fcn.00409c98
mov eax, dword [ebp - 0xe0]
mov edx, 0x66f07c
call fcn.00404fd8
je 0x66cd38
lea eax, [ebp - 0xf4]
push eax
mov ecx, 7
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004056e8
mov edx, dword [ebp - 0xf4]
lea eax, [ebp - 0xf0]
call fcn.00404e54
mov eax, dword [ebp - 0xf0]
lea edx, [ebp - 0xec]
call fcn.00409c98
mov eax, dword [ebp - 0xec]
mov edx, dword [0x6e54e4]
mov edx, dword [edx]
call fcn.00404fd8
jne 0x66cd59
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006ca30c
mov esi, eax
test esi, esi
jne 0x66ce32
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66ce32
mov eax, dword [0x6e5198]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00405664
jne 0x66cd7a
mov eax, dword [ebp - 4]
xor edx, edx
call fcn.00405664
jne 0x66ce00
mov eax, dword [0x6e5198]
mov eax, dword [eax]
xor edx, edx
call fcn.00405664
je 0x66cda5
mov eax, dword [0x6e5198]
call fcn.004052d8
mov eax, dword [0x6e5c18]
call fcn.005ddb38
mov eax, ebx
call fcn.00669d20
push 1
mov eax, dword [0x6e60d8]
mov cl, 1
mov edx, dword [ebp - 4]
call fcn.005db230
mov esi, eax
mov eax, dword [0x6e60d8]
call fcn.005ddb38
cmp esi, 0x80004002
jne 0x66ce1e
lea edx, [ebp - 0xf8]
mov eax, dword [0x6e5e2c]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0xf8]
xor edx, edx
call fcn.00521aa8
mov eax, ebx
call fcn.00669d20
mov byte [ebp - 5], 0
jmp 0x66edb0
push 0
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x6e3bd8]
cmp byte [eax], 1
je 0x66cdf9
mov eax, dword [0x6e5c18]
call fcn.005ddb38
mov eax, dword [0x6e5198]
call fcn.004052d8
mov eax, esi
call fcn.0041dfc8
test al, al
jne 0x66ce32
mov eax, ebx
call fcn.006690e4
mov esi, eax
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, 0x66f06c
call fcn.00405860
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x66ce5e
lea edx, [ebp - 0x1c]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.004972a4
jmp 0x66ce8a
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.00405548
mov ecx, eax
mov eax, dword [ebp - 0x44]
add eax, 2
sub ecx, eax
mov edx, dword [ebp - 0x44]
add edx, 3
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.004056e8
lea eax, [ebp - 0x100]
mov ecx, 0x66f08c
mov edx, dword [0x6e30e0]
call fcn.00404ed8
mov edx, dword [ebp - 0x100]
lea eax, [ebp - 0xfc]
call fcn.004054bc
lea eax, [ebp - 0xfc]
mov edx, dword [ebp - 0x1c]
call fcn.00405554
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebx + 0x334]
call fcn.00514370
mov eax, dword [0x6e4b90]
cmp byte [eax], 1
jne 0x66cf1b
push dword [ebp - 0x1c]
push 0x66f094
lea eax, [ebp - 0x108]
mov edx, dword [0x6e30e4]
call fcn.004054bc
push dword [ebp - 0x108]
lea eax, [ebp - 0x104]
mov edx, 3
call fcn.0040561c
mov edx, dword [ebp - 0x104]
mov eax, dword [0x6e45f0]
mov eax, dword [eax]
call fcn.004aa944
mov eax, dword [0x6e44b8]
mov dword [eax], 0xffffffff
mov eax, dword [0x6e637c]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [0x6e48a0]
cmp dword [eax], 0
je 0x66cf51
mov eax, dword [0x6e48a0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd8]
mov eax, esi
call fcn.0041dfc8
test al, al
jne 0x66eae0
cmp esi, 0x80040216
je 0x66eae0
cmp esi, 0x80070002
je 0x66eae0
mov eax, esi
sub eax, 0x40257
je 0x66cf86
dec eax
je 0x66cfa7
jmp 0x66cfc6
lea edx, [ebp - 0x10c]
mov eax, dword [0x6e4ef8]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0x10c]
xor edx, edx
call fcn.00521aa8
jmp 0x66cfc6
lea edx, [ebp - 0x110]
mov eax, dword [0x6e64e0]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0x110]
xor edx, edx
call fcn.00521aa8
mov eax, dword [0x6e42e0]
cmp byte [eax], 1
jne 0x66cfe7
mov ecx, dword [0x6e4de8]
mov ecx, dword [ecx]
mov edx, dword [0x6e4bec]
mov edx, dword [edx]
mov eax, ebx
call fcn.006bff24
mov edx, dword [0x6e4bec]
mov cl, 1
mov eax, ebx
call fcn.0066a8dc
mov eax, ebx
call fcn.006c078c
mov eax, dword [0x6e4940]
cmp dword [eax], 0
je 0x66d026
mov eax, dword [0x6e5f4c]
cmp dword [eax], 0xffffffff
jle 0x66d026
mov eax, dword [0x6e5f4c]
mov eax, dword [eax]
push eax
mov eax, dword [0x6e4940]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x38]
mov eax, dword [0x6e449c]
cmp dword [eax], 0
jne 0x66d048
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
jne 0x66d048
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
je 0x66d15f
mov eax, dword [0x6e449c]
cmp dword [eax], 0
je 0x66d07b
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [0x6e4de8]
add eax, 0x5c
push eax
mov eax, dword [0x6e4de8]
add eax, 0x58
push eax
mov eax, dword [0x6e449c]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov esi, eax
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
je 0x66d0ae
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [0x6e4de8]
add eax, 0x5c
push eax
mov eax, dword [0x6e4de8]
add eax, 0x58
push eax
mov eax, dword [0x6e5fd4]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov esi, eax
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
je 0x66d0de
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [0x6e4de8]
add ecx, 0x5c
mov edx, dword [0x6e4de8]
add edx, 0x58
mov eax, dword [0x6e62c0]
call fcn.005ec1e4
mov esi, eax
test esi, esi
jne 0x66d211
mov eax, dword [0x6e4de8]
mov eax, dword [eax + 0x5c]
test eax, eax
jle 0x66d211
mov edx, dword [0x6e4de8]
fild dword [edx + 0x58]
mov edx, dword [0x6e4de8]
mov dword [ebp - 0x114], eax
fild dword [ebp - 0x114]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
cmp dword [ebp - 0xc], 0
je 0x66d128
cmp dword [ebp - 0x10], 0
jne 0x66d141
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
jmp 0x66d152
fild dword [ebp - 0xc]
fild dword [ebp - 0x10]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x70]
wait
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66d211
mov eax, dword [0x6e5f24]
cmp byte [eax], 1
jne 0x66d176
mov eax, dword [0x6e6088]
mov byte [eax], 0
jmp 0x66d211
mov eax, dword [0x6e48b0]
cmp dword [eax], 0
je 0x66d211
push 0
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x34]
mov eax, ebx
call fcn.006bc958
mov eax, dword [0x6e4890]
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x78]
mov eax, dword [0x6e3440]
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x80]
mov eax, dword [0x7efcf8]
call fcn.00473d08
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x74]
push 0x46000000
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x24]
mov eax, dword [0x7efcf8]
call fcn.00473d08
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x7c]
test eax, eax
jne 0x66d211
mov eax, dword [0x6e6088]
mov byte [eax], 0
mov eax, dword [0x6e6088]
cmp byte [eax], 1
jne 0x66d589
mov eax, dword [0x6e6340]
cmp byte [eax], 1
jne 0x66d3ee
lea edx, [ebp - 0x20]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.00497270
mov eax, dword [ebp - 0x20]
call fcn.00405548
test eax, eax
jle 0x66d268
mov eax, dword [ebp - 0x20]
call fcn.00405548
mov edx, dword [ebp - 0x20]
cmp word [edx + eax*2 - 2], 0x5c
je 0x66d268
lea eax, [ebp - 0x20]
mov edx, 0x66ef6c
call fcn.00405554
lea edx, [ebp - 0x118]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.005f67b8
mov edx, dword [ebp - 0x118]
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
call fcn.005fdb64
mov eax, dword [0x6e3ce4]
cmp byte [eax], 1
jne 0x66d335
mov eax, dword [ebp - 0x1c]
xor edx, edx
call fcn.00405664
jne 0x66d335
mov dl, 1
mov eax, dword [0x4946e0]
call fcn.00495798
mov dword [ebp - 0x48], eax
push 0
mov ecx, 0x66f0a0
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
call fcn.005fa840
push 0
mov ecx, 0x66f0b0
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
call fcn.005fa840
push 0
mov ecx, 0x66f0c0
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
call fcn.005fa840
push 0
mov ecx, 0x66f0d0
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
call fcn.005fa840
mov eax, dword [ebp - 0x48]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x66d32d
lea ecx, [ebp - 0x11c]
xor edx, edx
mov eax, dword [ebp - 0x48]
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x11c]
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.004055b4
mov eax, dword [ebp - 0x48]
call fcn.00403c70
mov eax, dword [ebp - 0x1c]
xor edx, edx
call fcn.00405664
jne 0x66d3f6
lea ecx, [ebp - 0x1c]
mov edx, dword [0x6e3a04]
mov edx, dword [edx]
mov eax, dword [ebp - 0x20]
call fcn.005fdb64
mov eax, dword [ebp - 0x1c]
xor edx, edx
call fcn.00405664
jne 0x66d3f6
mov eax, dword [0x6e57d8]
mov eax, dword [eax]
xor edx, edx
call fcn.00405664
je 0x66d3f6
mov eax, dword [0x6e57d8]
mov eax, dword [eax]
call fcn.004973d4
cmp al, 1
jne 0x66d3a2
lea eax, [ebp - 0x1c]
mov edx, dword [0x6e57d8]
mov edx, dword [edx]
call fcn.00405338
mov eax, dword [0x6e5b20]
mov byte [eax], 1
jmp 0x66d3f6
mov ecx, dword [0x6e36f0]
mov ecx, dword [ecx]
mov edx, dword [0x6e5118]
mov edx, dword [edx]
lea eax, [ebp - 0x120]
call fcn.004055b4
mov eax, dword [ebp - 0x120]
call fcn.004973d4
cmp al, 1
jne 0x66d3f6
mov ecx, dword [0x6e36f0]
mov ecx, dword [ecx]
mov edx, dword [0x6e5118]
mov edx, dword [edx]
lea eax, [ebp - 0x1c]
call fcn.004055b4
mov eax, dword [0x6e5b20]
mov byte [eax], 1
jmp 0x66d3f6
lea eax, [ebp - 0x1c]
call fcn.004052d8
mov eax, dword [ebp - 0x1c]
xor edx, edx
call fcn.00405664
je 0x66d461
mov eax, dword [ebp - 0x1c]
mov edx, dword [0x6e6204]
mov edx, dword [edx]
call fcn.00405664
je 0x66d4a1
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
call fcn.005f3cfc
mov eax, dword [0x6e6204]
mov edx, dword [ebp - 0x1c]
call fcn.00405314
mov eax, dword [0x6e4ea8]
cmp dword [eax], 0
je 0x66d4a1
mov ecx, dword [0x6e6204]
mov ecx, dword [ecx]
mov eax, dword [0x6e4ea8]
mov eax, dword [eax]
mov edx, dword [eax + 0x320]
mov eax, dword [0x6e4ea8]
mov eax, dword [eax]
call fcn.00548e90
jmp 0x66d4a1
mov eax, dword [0x6e5998]
mov eax, dword [eax]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x6e6204]
call fcn.004052d8
mov eax, dword [0x6e50cc]
call fcn.004052d8
mov eax, dword [0x6e4ea8]
cmp dword [eax], 0
je 0x66d4a1
mov eax, dword [0x6e4ea8]
mov eax, dword [eax]
mov eax, dword [eax + 0x338]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x6e5998]
cmp dword [eax], 0
je 0x66d535
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
test eax, eax
jle 0x66d535
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
test eax, eax
jle 0x66d535
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x58], eax
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edi, eax
mov eax, dword [0x6e4de8]
mov dword [eax + 0x5c], edi
mov eax, dword [0x6e4de8]
fild dword [eax + 0x58]
mov eax, dword [0x6e4de8]
mov dword [ebp - 0x114], edi
fild dword [ebp - 0x114]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x58], 0
jne 0x66d550
mov eax, dword [0x6e5844]
mov eax, dword [eax]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x58], eax
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x5c], 0
jne 0x66d56b
mov eax, dword [0x6e57b8]
mov eax, dword [eax]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x5c], eax
mov eax, dword [0x7efcf8]
cmp byte [eax + 0x22b], 2
jne 0x66d7b3
mov eax, ebx
call fcn.00666868
jmp 0x66d7b3
mov eax, dword [0x6e5998]
mov eax, dword [eax]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x6e6204]
call fcn.004052d8
mov eax, dword [0x6e50cc]
call fcn.004052d8
mov eax, dword [0x6e5b5c]
cmp dword [eax], 0
je 0x66d5d0
mov eax, dword [0x6e5b5c]
mov eax, dword [eax]
cmp byte [eax + 0x57], 1
jne 0x66d5d0
mov eax, dword [0x6e5b5c]
mov eax, dword [eax]
xor edx, edx
call fcn.0046d2b4
mov eax, dword [0x6e4ea8]
cmp dword [eax], 0
je 0x66d5ee
mov eax, dword [0x6e4ea8]
mov eax, dword [eax]
mov eax, dword [eax + 0x338]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x344]
cmp byte [eax + 0x57], 1
jne 0x66d60c
xor edx, edx
call fcn.0046d2b4
mov eax, dword [ebx + 0x344]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [0x6e6088]
mov byte [eax], 0
mov eax, dword [0x6e449c]
cmp dword [eax], 0
jne 0x66d74b
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
jne 0x66d74b
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
jne 0x66d74b
mov eax, dword [0x6e5f24]
cmp byte [eax], 0
jne 0x66d74b
mov edx, dword [0x6e4de8]
add edx, 0x58
mov eax, ebx
call fcn.006702bc
mov edx, dword [0x6e4de8]
add edx, 0x5c
mov eax, ebx
call fcn.006702d8
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x58], 0
je 0x66d682
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x5c], 0
jne 0x66d6a2
mov eax, dword [0x6e5844]
mov eax, dword [eax]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x58], eax
mov eax, dword [0x6e57b8]
mov eax, dword [eax]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x5c], eax
mov eax, dword [0x6e4de8]
fild dword [eax + 0x58]
mov eax, dword [0x6e4de8]
fild dword [eax + 0x5c]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
mov eax, dword [0x6e39cc]
cmp dword [eax], 0
je 0x66d734
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [0x6e39cc]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x9c]
test eax, eax
jne 0x66d71b
cmp dword [ebp - 0xc], 0
je 0x66d6ef
cmp dword [ebp - 0x10], 0
jne 0x66d708
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
jmp 0x66d74b
fild dword [ebp - 0xc]
fild dword [ebp - 0x10]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x70]
wait
jmp 0x66d74b
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
jmp 0x66d74b
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
lea edx, [ebp - 0x12c]
mov eax, dword [0x6e4de8]
mov eax, dword [eax + 0x58]
call fcn.0040a458
push dword [ebp - 0x12c]
push 0x66f0e4
lea edx, [ebp - 0x130]
mov eax, dword [0x6e4de8]
mov eax, dword [eax + 0x5c]
call fcn.0040a458
push dword [ebp - 0x130]
lea eax, [ebp - 0x128]
mov edx, 3
call fcn.00404f4c
mov edx, dword [ebp - 0x128]
lea eax, [ebp - 0x124]
call fcn.004054bc
mov edx, dword [ebp - 0x124]
mov eax, 0x7d0
call fcn.00537730
mov eax, dword [0x6e52c0]
fld qword [eax]
fcomp dword [0x66f0e8]
fnstsw ax
sahf
jbe 0x66d7db
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e52c0]
mov ecx, dword [edx]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0x74], ecx
mov eax, dword [0x6e4de8]
fld qword [eax + 0x88]
fcomp dword [0x66f0ec]
fnstsw ax
sahf
je 0x66d82d
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x58], 0
jle 0x66d82d
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x5c], 0
jle 0x66d82d
mov eax, dword [0x6e4de8]
fild dword [eax + 0x58]
mov eax, dword [0x6e4de8]
fmul qword [eax + 0x88]
mov eax, dword [0x6e4de8]
fild dword [eax + 0x5c]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x70]
wait
mov eax, dword [0x6e4c3c]
cmp dword [eax], 0
je 0x66d97c
mov eax, dword [0x6e45bc]
cmp byte [eax], 1
jne 0x66d97c
lea eax, [ebp - 0x40]
call fcn.00406cb4
push eax
mov eax, dword [0x6e5a74]
push eax
mov eax, dword [0x6e4c3c]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax]
test eax, eax
jne 0x66d97c
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov edi, eax
dec edi
test edi, edi
jl 0x66d974
inc edi
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x7b]
mov edx, 0x1b
call fcn.00408700
mov word [ebp - 0x7b], 0x1b
lea eax, [ebp - 0x7b]
push eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 0x10]
cmp byte [ebp - 0x79], 1
jne 0x66d96a
lea eax, [ebp - 0x60]
mov edx, 0x18
call fcn.00408700
mov word [ebp - 0x60], 0x18
lea eax, [ebp - 0x60]
push eax
push 0
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
cmp eax, 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x66d96a
cmp dword [ebp - 0x5a], 0
jbe 0x66d923
cmp dword [ebp - 0x56], 0
jbe 0x66d923
mov eax, dword [0x6e4de8]
mov edx, dword [ebp - 0x5a]
mov dword [eax + 0x58], edx
mov eax, dword [0x6e4de8]
mov edx, dword [ebp - 0x56]
mov dword [eax + 0x5c], edx
mov eax, dword [0x6e4de8]
fild dword [eax + 0x58]
mov eax, dword [0x6e4de8]
fild dword [eax + 0x5c]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
cmp dword [ebp - 0x52], 0
jbe 0x66d96a
cmp dword [ebp - 0x4e], 0
jbe 0x66d96a
mov eax, dword [ebp - 0x52]
mov dword [ebp - 0xac], eax
xor eax, eax
mov dword [ebp - 0xa8], eax
fild qword [ebp - 0xac]
mov eax, dword [ebp - 0x4e]
mov dword [ebp - 0x138], eax
xor eax, eax
mov dword [ebp - 0x134], eax
fild qword [ebp - 0x138]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x70]
wait
jmp 0x66d974
inc dword [ebp - 0x44]
dec edi
jne 0x66d888
lea eax, [ebp - 0x40]
call fcn.00406cb4
mov eax, dword [0x6e583c]
cmp byte [eax], 1
jne 0x66d9fa
mov eax, dword [0x6e6088]
cmp byte [eax], 0
jne 0x66d9fa
mov eax, dword [0x6e37e0]
cmp byte [eax], 0
jne 0x66d9fa
fld xword [0x66f0f0]
mov eax, dword [0x6e4de8]
fsubr qword [eax + 0x70]
fabs
fld xword [0x66f0fc]
fcompp
fnstsw ax
sahf
jbe 0x66d9ca
mov eax, dword [0x6e4de8]
mov dword [eax + 0x70], 0x55555555
mov dword [eax + 0x74], 0x3ff55555
fld xword [0x66f108]
mov eax, dword [0x6e4de8]
fsubr qword [eax + 0x70]
fabs
fld xword [0x66f0fc]
fcompp
fnstsw ax
sahf
jbe 0x66d9fa
mov eax, dword [0x6e4de8]
mov dword [eax + 0x70], 0x1c71c71c
mov dword [eax + 0x74], 0x3ffc71c7
mov eax, dword [0x6e3744]
mov byte [eax], 0
mov eax, dword [0x6e3460]
cmp dword [eax], 0xffffffff
jle 0x66df29
mov eax, dword [0x6e3460]
mov eax, dword [eax]
mov edx, dword [0x6e3290]
mov edx, dword [edx]
cmp eax, dword [edx + 8]
jge 0x66df29
lea edx, [ebp - 0x13c]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.004972dc
mov eax, dword [ebp - 0x13c]
lea edx, [ebp - 0x1c]
call fcn.00496d64
mov eax, dword [0x6e6088]
cmp byte [eax], 1
jne 0x66da73
mov eax, dword [0x6e3f88]
cmp byte [eax], 1
jne 0x66da64
mov eax, dword [0x6e6504]
mov byte [eax], 1
mov edx, dword [0x6e6204]
mov edx, dword [edx]
mov eax, ebx
call fcn.0068a74c
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, 0x66f06c
call fcn.00405860
test eax, eax
jne 0x66df29
mov eax, dword [ebp - 0x1c]
mov edx, 0x66f118
call fcn.00405664
jne 0x66dafa
mov dl, 1
mov eax, dword [0x50ca64]
call fcn.0050cb24
mov edx, dword [0x6e43f8]
mov dword [edx], eax
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, dword [0x6e43f8]
mov eax, dword [eax]
call fcn.0050cbbc
cmp al, 1
jne 0x66dae9
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
mov edx, dword [0x6e43f8]
mov edx, dword [edx]
call fcn.005f1f80
mov eax, dword [0x6e43f8]
mov eax, dword [eax]
call fcn.00403c70
jmp 0x66df29
mov eax, dword [ebp - 0x1c]
mov edx, 0x66f128
call fcn.00405664
jne 0x66db7d
mov dl, 1
mov eax, dword [0x4ed79c]
call fcn.004ee28c
mov edx, dword [0x6e38b8]
mov dword [edx], eax
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, dword [0x6e38b8]
mov eax, dword [eax]
call fcn.004ee2f0
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
push eax
mov eax, dword [0x6e3ea0]
mov eax, dword [eax]
call fcn.0042df00
and eax, 0xff
call fcn.005fce34
mov ecx, eax
mov edx, dword [0x6e38b8]
mov edx, dword [edx]
pop eax
call fcn.005f2ad4
mov eax, dword [0x6e38b8]
mov eax, dword [eax]
call fcn.00403c70
jmp 0x66df29
mov eax, dword [ebp - 0x1c]
call fcn.005f6de8
cmp al, 1
je 0x66db9c
mov eax, dword [ebp - 0x1c]
mov edx, 0x66f138
call fcn.00405664
jne 0x66df29
mov dl, 1
mov eax, dword [0x5ff28c]
call fcn.005fff50
mov edx, dword [0x6e4a84]
mov dword [edx], eax
mov eax, dword [0x6e3ea0]
mov eax, dword [eax]
call fcn.0042df00
and eax, 0xff
call fcn.005fce34
mov edx, dword [0x6e4a84]
mov edx, dword [edx]
mov dword [edx + 0x40], eax
mov ecx, dword [0x6e37f4]
mov cl, byte [ecx]
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, dword [0x6e4a84]
mov eax, dword [eax]
call fcn.00600020
test al, al
jne 0x66ddfa
mov dl, 1
mov eax, dword [0x4d11cc]
call fcn.004d1378
mov edx, dword [0x6e4844]
mov dword [edx], eax
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, dword [0x6e4844]
mov eax, dword [eax]
call fcn.004d13e4
test al, al
jne 0x66ddae
mov dl, 1
mov eax, dword [0x5ef2cc]
call fcn.005ef6f8
mov edx, dword [0x6e6194]
mov dword [edx], eax
mov ecx, dword [0x6e37f4]
mov cl, byte [ecx]
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, dword [0x6e6194]
mov eax, dword [eax]
call fcn.005ef798
test al, al
jne 0x66dd1b
mov dl, 1
mov eax, dword [0x5f08e0]
call fcn.005f09a0
mov edx, dword [0x6e5a70]
mov dword [edx], eax
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, dword [0x6e5a70]
mov eax, dword [eax]
call fcn.005f0a44
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
mov edx, dword [0x6e5a70]
mov edx, dword [edx]
call fcn.005f21b8
mov eax, dword [0x6e5a70]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x66dd0a
mov eax, dword [0x6e37f4]
cmp byte [eax], 1
jne 0x66dd0a
mov eax, dword [0x6e5b20]
mov byte [eax], 0
mov edx, dword [0x6e55cc]
mov dl, byte [edx]
mov eax, dword [0x6e5a70]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.00434854
mov eax, dword [0x6e5a70]
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x6e6204]
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
call fcn.00405314
mov eax, dword [0x6e5a70]
mov eax, dword [eax]
call fcn.00403c70
jmp 0x66dda0
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
mov edx, dword [0x6e6194]
mov edx, dword [edx]
call fcn.005f2854
mov eax, dword [0x6e6194]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x66dda0
mov eax, dword [0x6e37f4]
cmp byte [eax], 1
jne 0x66dda0
mov eax, dword [0x6e5b20]
mov byte [eax], 0
mov edx, dword [0x6e55cc]
mov dl, byte [edx]
mov eax, dword [0x6e6194]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c]
call fcn.00434854
mov eax, dword [0x6e6194]
mov eax, dword [eax]
mov edx, dword [eax + 0x7c]
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x6e6204]
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
call fcn.00405314
mov eax, dword [0x6e6194]
mov eax, dword [eax]
call fcn.00403c70
jmp 0x66dde9
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
push eax
mov eax, dword [0x6e3ea0]
mov eax, dword [eax]
call fcn.0042df00
and eax, 0xff
call fcn.005fce34
mov ecx, eax
mov edx, dword [0x6e4844]
mov edx, dword [edx]
pop eax
call fcn.005f23f0
mov eax, dword [0x6e4844]
mov eax, dword [eax]
call fcn.00403c70
jmp 0x66df1d
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
push eax
mov eax, dword [0x6e3ea0]
mov eax, dword [eax]
call fcn.0042df00
and eax, 0xff
call fcn.005fce34
mov ecx, eax
mov edx, dword [0x6e4a84]
mov edx, dword [edx]
pop eax
call fcn.005f2660
mov eax, dword [0x6e4a84]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x66df1d
mov eax, dword [0x6e37f4]
cmp byte [eax], 1
jne 0x66df1d
mov eax, dword [0x6e5b20]
mov byte [eax], 0
mov edx, dword [0x6e55cc]
mov dl, byte [edx]
mov eax, dword [0x6e4a84]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
call fcn.00434854
mov eax, dword [0x6e4a84]
mov eax, dword [eax]
mov edx, dword [eax + 0x44]
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x6e6204]
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
call fcn.00405314
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
test eax, eax
jle 0x66df1d
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
test eax, eax
jle 0x66df1d
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x58], eax
mov eax, dword [0x6e5998]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x5c], eax
mov eax, dword [0x6e4de8]
fild dword [eax + 0x58]
mov eax, dword [0x6e4de8]
fild dword [eax + 0x5c]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
mov eax, dword [0x6e4a84]
mov eax, dword [eax]
call fcn.00403c70
mov eax, dword [0x6e45d8]
cmp dword [eax], 0
jne 0x66df85
mov eax, dword [0x6e5140]
cmp dword [eax], 0
jne 0x66df85
mov eax, dword [0x6e6758]
cmp dword [eax], 0
jne 0x66df85
mov eax, dword [0x6e4344]
cmp dword [eax], 0
jne 0x66df85
mov eax, dword [0x6e513c]
cmp dword [eax], 0
jne 0x66df85
mov eax, dword [0x6e3224]
cmp dword [eax], 0
jne 0x66df85
mov edx, dword [0x6e4de8]
add edx, 0x18
mov eax, ebx
call fcn.006706c8
mov edx, dword [0x6e4de8]
add edx, 0x10
mov eax, ebx
call fcn.0067063c
mov eax, dword [0x6e45d8]
cmp dword [eax], 0
je 0x66df97
mov eax, dword [0x6e46f4]
mov byte [eax], 1
mov eax, dword [0x6e5140]
cmp dword [eax], 0
je 0x66dfa9
mov eax, dword [0x6e5254]
mov byte [eax], 1
mov eax, ebx
call fcn.00666868
mov eax, dword [0x6e4378]
cmp dword [eax], 0
je 0x66e117
mov eax, dword [0x6e4de8]
fld qword [eax + 0x10]
fcomp dword [0x66ef38]
fnstsw ax
sahf
jbe 0x66dfe8
mov eax, dword [0x6e4de8]
fld qword [eax + 0x18]
fcomp dword [0x66ef38]
fnstsw ax
sahf
ja 0x66e0b8
lea eax, [ebp - 0x18]
push eax
mov eax, dword [0x6e4378]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
test eax, eax
jne 0x66e034
fld qword [ebp - 0x18]
fcomp dword [0x66ef38]
fnstsw ax
sahf
jbe 0x66e01f
fld dword [0x66f0ec]
fdiv qword [ebp - 0x18]
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x20]
wait
jmp 0x66e047
mov eax, dword [0x6e4de8]
mov dword [eax + 0x20], 0x22d0e560
mov dword [eax + 0x24], 0x403df9db
jmp 0x66e047
mov eax, dword [0x6e4de8]
mov dword [eax + 0x20], 0x22d0e560
mov dword [eax + 0x24], 0x403df9db
mov eax, dword [0x6e4de8]
fld qword [eax + 0x10]
fcomp dword [0x66ef38]
fnstsw ax
sahf
ja 0x66e073
mov eax, dword [0x6e4de8]
fld qword [eax + 0x18]
mov eax, dword [0x6e4de8]
fdiv qword [eax + 0x20]
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x10]
wait
mov eax, dword [0x6e4de8]
fld qword [eax + 0x18]
fcomp dword [0x66ef38]
fnstsw ax
sahf
ja 0x66e0d1
mov eax, dword [0x6e4de8]
fld qword [eax + 0x10]
mov eax, dword [0x6e4de8]
fmul qword [eax + 0x20]
call fcn.0040310c
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], edx
fild qword [ebp - 0xac]
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x18]
wait
jmp 0x66e0d1
mov eax, dword [0x6e4de8]
fld qword [eax + 0x18]
mov eax, dword [0x6e4de8]
fdiv qword [eax + 0x10]
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x20]
wait
lea eax, [ebp - 0x44]
push eax
mov eax, dword [0x6e4378]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
test eax, eax
jne 0x66e0fe
mov eax, dword [ebp - 0x44]
cdq
mov ecx, dword [0x6e4de8]
mov dword [ecx + 0x80], eax
mov dword [ecx + 0x84], edx
jmp 0x66e117
mov eax, dword [0x6e4de8]
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], 0
mov eax, dword [0x6e3460]
cmp dword [eax], 0xffffffff
jle 0x66e15b
mov eax, dword [0x6e3460]
mov eax, dword [eax]
mov edx, dword [0x6e3290]
mov edx, dword [edx]
cmp eax, dword [edx + 8]
jge 0x66e15b
mov edx, dword [0x6e3460]
mov edx, dword [edx]
mov eax, dword [0x6e3290]
mov eax, dword [eax]
call fcn.00648e80
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x38], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x3c], ecx
mov eax, dword [0x6e4de8]
fld qword [eax + 0x10]
fcomp dword [0x66ef38]
fnstsw ax
sahf
ja 0x66e282
lea edx, [ebp - 0x140]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.00496d64
mov eax, dword [ebp - 0x140]
push eax
lea eax, [ebp - 0x144]
mov edx, dword [0x6e3df0]
mov edx, dword [edx]
call fcn.004054bc
mov edx, dword [ebp - 0x144]
pop eax
call fcn.005d6fdc
test al, al
jne 0x66e27a
lea edx, [ebp - 0x148]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.00496d64
mov eax, dword [ebp - 0x148]
push eax
lea eax, [ebp - 0x14c]
mov edx, dword [0x6e54e4]
mov edx, dword [edx]
call fcn.004054bc
mov edx, dword [ebp - 0x14c]
pop eax
call fcn.005d6fdc
test al, al
jne 0x66e27a
lea edx, [ebp - 0x150]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.00496d64
mov eax, dword [ebp - 0x150]
push eax
lea eax, [ebp - 0x154]
mov edx, dword [0x6e4a30]
mov edx, dword [edx]
call fcn.004054bc
mov edx, dword [ebp - 0x154]
pop eax
call fcn.005d6fdc
test al, al
jne 0x66e27a
lea edx, [ebp - 0x158]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.004972dc
mov eax, dword [ebp - 0x158]
mov edx, 0x66f148
add al, ch
mov byte [ebp - 0x3f7a0027], bh
je 0x66e27a
lea edx, [ebp - 0x15c]
mov eax, dword [0x6e4de8]
mov eax, dword [eax]
call fcn.004972dc
mov eax, dword [ebp - 0x15c]
mov edx, 0x66f158
call fcn.00409fd8
test eax, eax
jne 0x66e282
mov eax, dword [0x6e40fc]
mov byte [eax], 1
mov eax, dword [0x6e4de8]
fld qword [eax + 0x20]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x164]
call fcn.0040c2e4
mov edx, dword [ebp - 0x164]
lea eax, [ebp - 0x160]
call fcn.004054bc
mov edx, dword [ebp - 0x160]
mov eax, 0x834
call fcn.00537730
mov eax, dword [0x6e6088]
cmp byte [eax], 0
jne 0x66e350
mov eax, dword [0x6e4800]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e45d8]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e5140]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e6758]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e6108]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e4344]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e513c]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e3224]
cmp dword [eax], 0
jne 0x66e350
mov eax, dword [0x6e62ac]
xor edx, edx
mov dword [eax], edx
mov ecx, dword [0x6e3788]
mov edx, dword [0x6e4bec]
mov eax, ebx
call fcn.006bc2f4
test al, al
jne 0x66e350
mov eax, dword [0x6e3788]
mov dword [eax], 0xffffffff
mov eax, dword [0x6e3ffc]
cmp dword [eax], 0
je 0x66e37d
mov eax, dword [0x6e4de8]
push dword [eax + 0x24]
push dword [eax + 0x20]
mov edx, dword [0x6e637c]
mov eax, dword [0x6e3ffc]
call fcn.005ec628
mov edx, dword [0x6e6590]
mov byte [edx], al
mov eax, dword [0x6e3514]
cmp dword [eax], 0
je 0x66e3aa
mov eax, dword [0x6e4de8]
push dword [eax + 0x24]
push dword [eax + 0x20]
mov edx, dword [0x6e637c]
mov eax, dword [0x6e3514]
call fcn.005ec494
mov edx, dword [0x6e6590]
mov byte [edx], al
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, ebx
call fcn.0067bd48
mov edx, dword [0x6e36e4]
mov eax, ebx
call fcn.006bc434
mov eax, dword [0x6e4030]
cmp dword [eax], 0
je 0x66e3e2
mov edx, dword [0x6e4800]
mov eax, dword [0x6e5a84]
mov eax, dword [eax]
call fcn.005df1f4
mov eax, dword [0x6e5a40]
cmp dword [eax], 0
je 0x66e3fe
mov edx, dword [0x6e6228]
mov eax, dword [0x6e3f5c]
mov eax, dword [eax]
call fcn.005dec0c
mov eax, dword [0x6e3d24]
cmp byte [eax], 1
jne 0x66e4b0
mov eax, dword [0x6e45d8]
cmp dword [eax], 0
jne 0x66e4b0
mov eax, dword [0x6e4800]
cmp dword [eax], 0
je 0x66e42e
mov eax, dword [0x6e4800]
call fcn.005df614
mov eax, dword [0x6e3e30]
cmp dword [eax], 0
je 0x66e442
mov eax, dword [0x6e3e30]
call fcn.005df368
call fcn.005d8560
mov eax, ebx
call fcn.006bc47c
mov eax, dword [0x6e5984]
push eax
mov eax, dword [0x6e3a90]
push eax
call sub.ole32.dll_IsEqualGUID
cmp al, 1
je 0x66e4a1
mov eax, dword [0x6e3f54]
push eax
mov eax, dword [0x6e3a90]
push eax
call sub.ole32.dll_IsEqualGUID
cmp al, 1
jne 0x66e482
mov eax, dword [0x6e5b48]
cmp byte [eax], 0
je 0x66e4a1
mov eax, dword [0x6e3d04]
push eax
mov eax, dword [0x6e3a90]
push eax
call sub.ole32.dll_IsEqualGUID
cmp al, 1
jne 0x66e4b0
mov eax, dword [0x6e5b48]
cmp byte [eax], 0
jne 0x66e4b0
mov eax, dword [0x6e61d8]
mov eax, dword [eax]
mov edx, dword [0x6e65e0]
mov dword [edx], eax
mov eax, dword [0x6e58a8]
cmp byte [eax], 1
jne 0x66e4ca
push 0x3ff00000
push 0
mov eax, ebx
call fcn.0066f76c
jmp 0x66e4dc
mov eax, dword [0x6e4de8]
push dword [eax + 0x2c]
push dword [eax + 0x28]
mov eax, ebx
call fcn.0066f76c
mov eax, dword [0x6e4ee8]
mov eax, dword [eax]
call fcn.006cdcac
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
fld qword [eax + 0x40]
fcomp dword [0x66ef38]
fnstsw ax
sahf
je 0x66e539
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e44dc]
mov edx, dword [edx]
mov ecx, dword [edx + 0x40]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x44]
mov dword [eax + 0x14], ecx
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
fld qword [eax + 0x40]
mov eax, dword [0x6e4de8]
fmul qword [eax + 0x20]
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x18]
wait
mov eax, dword [0x6e4eb0]
mov byte [eax], 1
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
cmp dword [eax + 0x2c], 0
jne 0x66e54a
cmp dword [eax + 0x28], 0
je 0x66e5e8
mov eax, dword [0x6e40fc]
cmp byte [eax], 0
jne 0x66e5e8
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e44dc]
mov edx, dword [edx]
mov ecx, dword [edx + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 0xc], ecx
mov eax, dword [0x6e4de8]
cmp dword [eax + 0x84], 0
jne 0x66e5fb
cmp dword [eax + 0x80], 0
jne 0x66e5fb
mov eax, dword [0x6e4de8]
fld qword [eax + 0x10]
fcomp dword [0x66ef38]
fnstsw ax
sahf
jbe 0x66e5fb
push 0
push 8
mov eax, dword [0x6e4de8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
call fcn.00405eec
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], edx
fild qword [ebp - 0xac]
mov eax, dword [0x6e4de8]
fdiv qword [eax + 0x10]
call fcn.00403118
mov ecx, dword [0x6e4de8]
mov dword [ecx + 0x80], eax
mov dword [ecx + 0x84], edx
jmp 0x66e5fb
mov eax, dword [0x6e4de8]
mov dword [eax + 8], 0xffffffff
mov dword [eax + 0xc], 0xffffffff
mov edx, dword [0x6e500c]
mov edx, dword [edx]
mov eax, ebx
call fcn.0066f3a4
mov edx, dword [0x6e4de8]
mov edx, dword [edx + 0x34]
mov eax, ebx
call fcn.0066f91c
mov eax, dword [0x6e50f8]
cmp dword [eax], 0xffffffff
jle 0x66e646
mov eax, dword [0x6e50f8]
fild dword [eax]
mov eax, dword [0x6e4de8]
fmul qword [eax + 0x20]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, ebx
call fcn.00670d80
jmp 0x66e853
mov eax, dword [0x6e565c]
fld qword [eax]
fcomp dword [0x66f0e8]
fnstsw ax
sahf
jbe 0x66e66e
mov eax, dword [0x6e565c]
push dword [eax + 4]
push dword [eax]
mov eax, ebx
call fcn.00670d80
jmp 0x66e853
mov eax, dword [0x6e5474]
cmp byte [eax], 1
jne 0x66e853
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0x1c]
push dword [eax + 0x18]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0x2c]
push dword [eax + 0x28]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov edx, dword [eax + 8]
lea eax, [ebp - 0x16c]
call fcn.004055b4
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x168]
call fcn.00496d64
mov edx, dword [ebp - 0x168]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [0x6e40e4]
call fcn.0053f090
cmp al, 1
jne 0x66e853
cmp dword [ebp - 0x34], 0
jl 0x66e735
cmp dword [ebp - 0x34], 0x64
jg 0x66e735
mov eax, dword [0x6e4ba8]
cmp byte [eax], 1
jne 0x66e710
mov eax, dword [0x6e6088]
cmp byte [eax], 0
je 0x66e724
mov eax, dword [0x6e4bd4]
cmp byte [eax], 1
jne 0x66e735
mov eax, dword [0x6e6088]
cmp byte [eax], 1
jne 0x66e735
mov edx, dword [ebp - 0x34]
mov eax, ebx
call fcn.0066f3a4
mov eax, ebx
call fcn.006bb5b0
mov eax, dword [0x6e6174]
cmp byte [eax], 1
jne 0x66e853
mov eax, dword [0x6e3ab8]
cmp byte [eax], 1
jne 0x66e7ff
lea eax, [ebp - 0x17c]
push eax
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
call fcn.00405548
mov ecx, eax
dec ecx
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, 2
call fcn.004056e8
mov edx, dword [ebp - 0x17c]
lea eax, [ebp - 0x178]
call fcn.00404e54
mov eax, dword [ebp - 0x178]
lea edx, [ebp - 0x174]
call fcn.00409c98
mov ecx, dword [ebp - 0x174]
lea eax, [ebp - 0x170]
mov edx, 0x66f16c
call fcn.00404ed8
mov eax, dword [ebp - 0x170]
push eax
lea edx, [ebp - 0x184]
mov eax, dword [0x6e4c94]
mov eax, dword [eax]
call fcn.00409c98
mov ecx, dword [ebp - 0x184]
lea eax, [ebp - 0x180]
mov edx, 0x66f16c
call fcn.00404ed8
mov edx, dword [ebp - 0x180]
pop eax
call fcn.004051d0
test eax, eax
jg 0x66e853
mov eax, dword [0x6e6088]
cmp byte [eax], 1
je 0x66e853
mov eax, dword [0x6e3704]
cmp byte [eax], 0
je 0x66e834
mov eax, dword [0x6e3704]
cmp byte [eax], 1
jne 0x66e853
mov eax, dword [0x6e3240]
imul eax, dword [eax], 0x3c
mov dword [ebp - 0x114], eax
fild dword [ebp - 0x114]
mov eax, dword [0x6e4de8]
fcomp qword [eax + 0x10]
fnstsw ax
sahf
jae 0x66e853
fild qword [ebp - 0x30]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
fstp qword [eax + 0x30]
wait
fild qword [ebp - 0x30]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, ebx
call fcn.00670d80
mov eax, dword [0x6e449c]
cmp dword [eax], 0
jne 0x66e8ab
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
jne 0x66e8ab
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
jne 0x66e8ab
mov eax, dword [0x6e4930]
cmp byte [eax], 0
jne 0x66e882
mov eax, ebx
call fcn.0066f4dc
lea ecx, [ebp - 0x3c]
mov edx, dword [0x6e4bec]
mov eax, dword [0x6e6650]
call fcn.005e77d4
cmp dword [ebp - 0x3c], 0
je 0x66e8ab
lea eax, [ebp - 0x3c]
call fcn.005de7e4
lea eax, [ebp - 0x3c]
call fcn.00406cb4
mov eax, dword [0x6e4de8]
cmp byte [eax + 0x79], 0
jne 0x66e8bd
mov eax, ebx
call fcn.0066f188
mov eax, dword [0x6e5088]
cmp byte [eax], 0
jne 0x66e90d
mov eax, dword [0x6e6088]
cmp byte [eax], 1
jne 0x66e8f0
mov eax, dword [0x6e4d34]
cmp byte [eax], 0
jne 0x66e90d
mov eax, dword [0x6e658c]
cmp byte [eax], 1
jne 0x66e90d
xor edx, edx
mov eax, ebx
call fcn.006605bc
jmp 0x66e90d
mov eax, dword [0x6e4d34]
cmp byte [eax], 1
jne 0x66e90d
mov eax, dword [0x6e654c]
cmp byte [eax], 1
jne 0x66e90d
xor edx, edx
mov eax, ebx
call fcn.006605bc
mov eax, dword [0x6e5474]
cmp byte [eax], 1
jne 0x66e9ff
mov eax, dword [0x6e50bc]
cmp byte [eax], 1
jne 0x66e992
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0x1c]
push dword [eax + 0x18]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0x2c]
push dword [eax + 0x28]
push 0
push 0
call fcn.0040c8e0
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [0x6e500c]
mov eax, dword [eax]
push eax
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov edx, dword [eax + 8]
lea eax, [ebp - 0x188]
call fcn.004055b4
mov edx, dword [ebp - 0x188]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [0x6e40e4]
call fcn.0053f1a0
jmp 0x66e9ff
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0x1c]
push dword [eax + 0x18]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0x2c]
push dword [eax + 0x28]
push 0
push 0
call fcn.0040c8e0
fchs
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [0x6e500c]
mov eax, dword [eax]
push eax
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov edx, dword [eax + 8]
lea eax, [ebp - 0x18c]
call fcn.004055b4
mov edx, dword [ebp - 0x18c]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [0x6e40e4]
call fcn.0053f1a0
mov eax, dword [0x6e5644]
mov eax, dword [eax]
xor edx, edx
call fcn.00405664
je 0x66ea4f
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 4]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 8]
mov eax, dword [0x6e44dc]
mov eax, dword [eax]
push dword [eax + 0xc]
lea eax, [ebp - 0x190]
mov edx, 3
call fcn.0040561c
mov edx, dword [ebp - 0x190]
mov eax, dword [0x6e5644]
mov eax, dword [eax]
call fcn.0054bf38
mov eax, dword [0x6e3a40]
xor edx, edx
mov dword [eax], edx
mov edx, dword [0x6e4de8]
mov edx, dword [edx]
mov eax, 0x708
call fcn.00537730
lea edx, [ebp - 0x19c]
mov eax, dword [0x6e3460]
mov eax, dword [eax]
call fcn.0040a458
push dword [ebp - 0x19c]
push 0x66f178
mov eax, dword [0x6e4838]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
call fcn.0051ccc0
lea edx, [ebp - 0x1a0]
call fcn.0040a458
push dword [ebp - 0x1a0]
lea eax, [ebp - 0x198]
mov edx, 3
call fcn.00404f4c
mov edx, dword [ebp - 0x198]
lea eax, [ebp - 0x194]
call fcn.004054bc
mov edx, dword [ebp - 0x194]
mov eax, 0x76c
call fcn.00537730
jmp 0x66ec77
mov eax, dword [0x6e6508]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x66eb4c
mov eax, dword [0x6e6508]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x58], eax
mov eax, dword [0x6e6508]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [0x6e4de8]
mov dword [edx + 0x5c], eax
mov eax, dword [0x6e4de8]
fild dword [eax + 0x58]
mov eax, dword [0x6e4de8]
fild dword [eax + 0x5c]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
mov eax, ebx
call fcn.00669d20
mov eax, dword [0x6e4de8]
call fcn.004052d8
mov eax, dword [0x6e4e0c]
cmp byte [eax], 1
jne 0x66ebb8
mov eax, dword [0x6e3290]
mov eax, dword [eax]
cmp dword [eax + 8], 1
jle 0x66ebb8
mov eax, dword [0x6e3a40]
mov eax, dword [eax]
mov edx, dword [0x6e3290]
mov edx, dword [edx]
mov edx, dword [edx + 8]
dec edx
cmp eax, edx
jge 0x66ec77
mov eax, dword [0x6e3a40]
inc dword [eax]
mov eax, dword [0x6e5004]
mov byte [eax], 0
mov eax, dword [0x6e45cc]
mov byte [eax], 1
push 0
xor ecx, ecx
xor edx, edx
mov eax, ebx
call fcn.006a2f9c
jmp 0x66ec77
mov eax, dword [0x6e53e0]
mov byte [eax], 0
mov eax, ebx
call fcn.006c82bc
cmp esi, 0x80040216
je 0x66ebd7
cmp esi, 0x80070002
jne 0x66ec1b
lea edx, [ebp - 0x1a8]
mov eax, dword [0x6e3d00]
mov eax, dword [eax]
call fcn.005d1e94
push dword [ebp - 0x1a8]
push 0x66f180
push dword [ebp - 4]
push 0x66ef7c
lea eax, [ebp - 0x1a4]
mov edx, 4
call fcn.0040561c
mov eax, dword [ebp - 0x1a4]
xor edx, edx
call fcn.00521aa8
jmp 0x66ec77
lea eax, [ebp - 0x1ac]
push eax
lea edx, [ebp - 0x1b0]
mov eax, dword [ebp - 4]
call fcn.004972a4
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xa8], 0xf
lea eax, [ebp - 0xac]
push eax
lea edx, [ebp - 0x1b4]
mov eax, dword [0x6e5834]
mov eax, dword [eax]
call fcn.005d1e94
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
pop edx
call fcn.0040bc78
mov eax, dword [ebp - 0x1ac]
xor edx, edx
call fcn.00521aa8
mov eax, dword [0x6e6108]
cmp dword [eax], 0
je 0x66eca0
mov eax, dword [0x6e31e0]
cmp dword [eax], 0
je 0x66eca0
mov eax, dword [0x6e31e0]
mov eax, dword [eax]
call fcn.0048adbc
xor edx, edx
mov eax, ebx
call fcn.00661314
mov eax, dword [0x6e4b84]
cmp dword [eax], 0
je 0x66ecce
mov eax, dword [0x6e4b84]
mov eax, dword [eax]
mov edx, dword [0x6e3950]
mov dword [edx], eax
mov eax, dword [0x6e3950]
mov eax, dword [eax]
call fcn.005e7884
mov eax, dword [0x6e4b84]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x6e40c0]
cmp dword [eax], 0
je 0x66ed5f
mov eax, dword [0x6e6688]
mov eax, dword [eax]
sub eax, 1
jb 0x66ecec
je 0x66ed32
jmp 0x66ed56
mov eax, dword [0x6e4804]
cmp dword [eax], 0
je 0x66ed56
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x44]
push eax
mov eax, dword [0x6e4804]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x64]
test eax, eax
jne 0x66ed56
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x6e40c0]
mov eax, dword [eax]
push eax
mov eax, dword [0x6e4804]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x68]
jmp 0x66ed56
mov eax, dword [0x6e4100]
cmp dword [eax], 0
je 0x66ed56
mov eax, dword [0x6e40c0]
mov eax, dword [eax]
push eax
push 0x32c
mov eax, dword [0x6e4100]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
mov eax, dword [0x6e40c0]
xor edx, edx
mov dword [eax], edx
call sub.kernel32.dll_GetTickCount_1
xor edx, edx
mov ecx, dword [0x6e464c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [0x6e4748]
mov edx, dword [0x6e464c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, dword [0x6e565c]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0xbff00000
mov eax, dword [0x6e50f8]
mov dword [eax], 0xffffffff
mov eax, esi
call fcn.0041dfc8
test al, al
jne 0x66edb0
mov byte [ebp - 5], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x66ef2c
lea eax, [ebp - 0x1b4]
mov edx, 5
call fcn.004052f0
lea eax, [ebp - 0x1a0]
mov edx, 3
call fcn.00404bc4
lea eax, [ebp - 0x194]
mov edx, 4
call fcn.004052f0
lea eax, [ebp - 0x184]
mov edx, 2
call fcn.00404bc4
lea eax, [ebp - 0x17c]
call fcn.004052d8
lea eax, [ebp - 0x178]
mov edx, 3
call fcn.00404bc4
lea eax, [ebp - 0x16c]
mov edx, 2
call fcn.004052f0
lea eax, [ebp - 0x164]
call fcn.00404ba0
lea eax, [ebp - 0x160]
mov edx, 0xa
call fcn.004052f0
lea eax, [ebp - 0x130]
mov edx, 3
call fcn.00404bc4
lea eax, [ebp - 0x124]
mov edx, 4
call fcn.004052f0
lea eax, [ebp - 0x110]
mov edx, 4
call fcn.004052f0
lea eax, [ebp - 0x100]
call fcn.00404ba0
lea eax, [ebp - 0xfc]
mov edx, 3
call fcn.004052f0
lea eax, [ebp - 0xf0]
mov edx, 2
call fcn.00404bc4
lea eax, [ebp - 0xe8]
call fcn.004052d8
lea eax, [ebp - 0xe4]
mov edx, 2
call fcn.00404bc4
lea eax, [ebp - 0xdc]
mov edx, 3
call fcn.004052f0
lea eax, [ebp - 0xd0]
call fcn.00404ba0
lea eax, [ebp - 0xcc]
mov edx, 8
call fcn.004052f0
lea eax, [ebp - 0xa4]
mov edx, 0xa
call fcn.004052f0
lea eax, [ebp - 0x40]
call fcn.00406cb4
lea eax, [ebp - 0x3c]
call fcn.00406cb4
lea eax, [ebp - 0x24]
call fcn.00404ba0
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004052f0
lea eax, [ebp - 4]
call fcn.004052d8
ret