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

Disassembly:
mov ecx, dword [0x66b1a5d0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x9c]
cmp eax, dword [ecx + 8]
jbe 0x6699588b
sub esp, 0x11c
movzx eax, byte [0x66b1a4ab]
test al, al
jne 0x66993edb
lea eax, [0x66a470a0]
mov dword [esp], eax
mov dword [esp + 4], 0x44
mov dword [esp + 8], 0x45
call fcn.669caba0
mov eax, dword [esp + 0xc]
mov dword [0x66af5784], 0x44
mov dword [0x66af5788], 0x45
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66993ebc
call fcn.669e32b0
mov dword [edi], eax
mov edx, dword [0x66af5780]
mov dword [edi + 4], edx
mov dword [0x66af5780], eax
mov edx, dword [0x66af5780]
movsd xmm0, qword [0x66a7f430]
movsd qword [edx], xmm0
mov eax, 1
jmp 0x66993ef7
add esp, 0x11c
ret
mov ebp, dword [0x66af5780]
inc ebx
movzx ebx, bx
cvtsi2sd xmm0, ebx
movsd qword [ebp + eax*8], xmm0
inc eax
cmp eax, 0x44
jge 0x66993f15
mov ecx, dword [0x66af5784]
lea edx, [0x66a2e9a0]
movzx ebx, word [edx + eax*2]
cmp eax, ecx
jb 0x66993ee2
jmp 0x66995885
mov eax, dword [0x66af5788]
mov ecx, dword [0x66af5784]
inc ecx
mov edx, dword [0x66af5780]
cmp eax, ecx
jae 0x66993f86
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x66a470a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [0x66af5788], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66993f7a
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [0x66af5780]
mov dword [edi + 4], eax
mov dword [0x66af5780], ecx
mov eax, ecx
mov ecx, edx
mov edx, eax
mov dword [0x66af5784], ecx
movsd xmm0, qword [0x66a7f4a0]
movsd qword [edx + ecx*8 - 8], xmm0
call fcn.66988820
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp]
mov dword [0x66af5794], eax
mov dword [0x66af5798], ecx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66993fd0
call fcn.669e32b0
mov dword [edi], edx
mov eax, dword [0x66af5790]
mov dword [edi + 4], eax
mov dword [0x66af5790], edx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov dword [esp + 4], 0x34
mov dword [esp + 8], 0
call fcn.6698c800
mov eax, dword [esp + 0xc]
mov dword [esp + 0xf8], eax
lea ecx, [0x66a47fe0]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x66a5e017]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x18
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994048
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64764]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x6699405f
or ecx, 4
mov eax, 1
test eax, eax
jle 0x66994057
mov dword [esp + 0xc8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a61d68]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x27
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc8]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669940bd
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64790]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669940d4
or ecx, 4
mov eax, 1
test eax, eax
jle 0x669940cc
mov dword [esp + 0xc4], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a6249e]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x2a
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc4]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994132
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647bc]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994149
or ecx, 4
mov eax, 1
test eax, eax
jle 0x66994141
mov dword [esp + 0xc0], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a617d3]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x25
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc0]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669941a7
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647e8]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669941be
or ecx, 4
mov eax, 1
test eax, eax
jle 0x669941b6
mov dword [esp + 0xbc], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a60b26]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x21
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xbc]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x6699421c
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64814]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994233
or ecx, 4
mov eax, 1
test eax, eax
jle 0x6699422b
mov dword [esp + 0xb8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a60b47]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x21
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb8]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994291
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64824]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669942a8
or ecx, 4
mov eax, 1
test eax, eax
jle 0x669942a0
mov dword [esp + 0xb4], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5fa13]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1d
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb4]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994306
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64828]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x6699431d
or ecx, 4
mov eax, 1
test eax, eax
jle 0x66994315
mov dword [esp + 0xb0], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a62004]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x28
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb0]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x6699437b
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a6482c]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994392
or ecx, 4
mov eax, 1
test eax, eax
jle 0x6699438a
mov dword [esp + 0xac], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a6299d]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x2c
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xac]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669943f0
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64830]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994407
or ecx, 4
mov eax, 1
test eax, eax
jle 0x669943ff
mov dword [esp + 0xa8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a61d8f]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x27
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xa8]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994465
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64768]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x6699447c
or ecx, 4
mov eax, 1
test eax, eax
jle 0x66994474
mov dword [esp + 0xa4], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5ff55]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1e
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xa4]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669944da
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a6476c]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669944f1
or ecx, 4
mov eax, 1
test eax, eax
jle 0x669944e9
mov dword [esp + 0xa0], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5fa30]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1d
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xa0]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x6699454f
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64770]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994566
or ecx, 2
mov eax, 1
test eax, eax
jle 0x6699455e
mov dword [esp + 0x9c], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5ff73]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1e
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x9c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669945c4
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64774]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669945db
or ecx, 2
mov eax, 1
test eax, eax
jle 0x669945d3
mov dword [esp + 0x98], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5f0aa]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1b
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x98]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994639
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64778]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994650
or ecx, 2
mov eax, 1
test eax, eax
jle 0x66994648
mov dword [esp + 0x94], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5eb3a]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1a
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x94]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669946ae
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a6477c]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669946c5
or ecx, 8
mov eax, 1
test eax, eax
jle 0x669946bd
mov dword [esp + 0x90], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5d47f]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x16
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x90]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994723
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64780]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x6699473a
or ecx, 8
mov eax, 1
test eax, eax
jle 0x66994732
mov dword [esp + 0x8c], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c142]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x13
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994798
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64784]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669947af
or ecx, 8
mov eax, 1
test eax, eax
jle 0x669947a7
mov dword [esp + 0x88], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c8b9]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x14
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x6699480d
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64788]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994824
or ecx, 8
mov eax, 1
test eax, eax
jle 0x6699481c
mov dword [esp + 0x84], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c8cd]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x14
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994882
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a6478c]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994899
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994891
mov dword [esp + 0x80], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5fa4d]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1d
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669948f7
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64794]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x6699490e
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994906
mov dword [esp + 0x7c], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5cd7d]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x15
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994966
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a64798]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x6699497d
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994975
mov dword [esp + 0x78], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5d9eb]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x17
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x669949d5
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a6479c]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x669949ec
or ecx, 1
mov eax, 1
test eax, eax
jle 0x669949e4
mov dword [esp + 0x74], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5f53a]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1c
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994a44
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647a0]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994a5b
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994a53
mov dword [esp + 0x70], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c8e1]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x14
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994ab3
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647a4]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994aca
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994ac2
mov dword [esp + 0x6c], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5d495]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x16
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994b22
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647a8]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994b39
or ecx, 2
mov eax, 1
test eax, eax
jle 0x66994b31
mov dword [esp + 0x68], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c155]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x13
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994b91
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647ac]
mov dword [eax + 8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c8f5]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x14
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994bea
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647b0]
mov dword [eax + 8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5b20f]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x10
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994c43
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647b4]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994c5a
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994c52
mov dword [esp + 0x64], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5c168]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x13
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994cb2
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647b8]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994cc9
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994cc1
mov dword [esp + 0x60], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5e02f]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x18
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994d21
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647c0]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994d38
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994d30
mov dword [esp + 0x5c], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5f556]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1c
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994d90
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647c4]
mov dword [eax + 8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a60b68]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x21
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994de9
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647c8]
mov dword [eax + 8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5bc49]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x12
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994e42
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647cc]
mov dword [eax + 8], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a5fa6a]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1d
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994e9b
mov ecx, dword [eax + 8]
call fcn.669e32a0
mov dword [edi], ecx
lea ecx, [0x66a647d0]
mov dword [eax + 8], ecx
xor eax, eax
xor ecx, ecx
jmp 0x66994eb2
or ecx, 1
mov eax, 1
test eax, eax
jle 0x66994eaa
mov dword [esp + 0x58], ecx
lea eax, [0x66a47fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x66a603f0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x1f
call fcn.6698fc50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x58]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66994f0a
call fcn.669e3300
nop
call fcn.669e1e80
jmp fcn.66993e40