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

Disassembly:
mov ecx, dword [0x66b1a5d0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x6c]
cmp eax, dword [ecx + 8]
jbe 0x66a1fe9e
sub esp, 0xec
mov eax, dword [esp + 0x104]
test eax, eax
jle 0x66a1e02a
mov ecx, dword [esp + 0xfc]
test ecx, ecx
je 0x66a1e031
test ecx, 0x60
jne 0x66a1e031
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov byte [esp + 0xc], 1
call fcn.669fb3f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xf0]
mov dword [edx + 0xc], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1dff4
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [edx + 0x10]
mov dword [edi + 4], eax
mov dword [edx + 0x10], ecx
mov dword [esp], edx
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
call fcn.66a1d0f0
movzx eax, byte [esp + 8]
test al, al
jne 0x66a1e023
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0xfc]
jmp 0x66a1e031
add esp, 0xec
ret
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf0]
mov dword [edx + 0xc], 0
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
je 0x66a1e053
mov ebx, dword [edx + 0x10]
call fcn.669e32a0
mov dword [edi], ebx
mov dword [edx + 0x10], 0
mov dword [edx + 0x1c], ecx
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
jne 0x66a1e077
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
jmp 0x66a1e09b
call fcn.669e32d0
mov ebx, dword [esp + 0xf4]
mov dword [edi], ebx
mov ebp, dword [edx + 0x14]
mov dword [edi + 4], ebp
mov ebp, dword [esp + 0xf8]
mov dword [edi + 8], ebp
mov esi, dword [edx + 0x18]
mov dword [edi + 0xc], esi
mov dword [edx + 0x14], ebx
mov dword [edx + 0x18], ebp
mov esi, ecx
and ecx, 0x1f
nop
cmp ecx, 0x10
jbe 0x66a1eece
cmp ecx, 0x15
ja 0x66a1e648
cmp ecx, 0x13
ja 0x66a1e0cc
cmp ecx, 0x11
je 0x66a1e65a
jmp 0x66a1ee6b
cmp ecx, 0x14
je 0x66a1e3d3
movzx ecx, byte [edx + 0x2c]
test cl, cl
je 0x66a1e318
test esi, 0x200
jne 0x66a1e0f1
lea ecx, [0x66a7fa80]
jmp 0x66a1e10d
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fc280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
mov ecx, eax
mov eax, dword [ecx + 0x80]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
lea ebp, [eax + ebx]
mov esi, dword [esp + 4]
mov edi, dword [ecx]
cmp edx, ebp
jae 0x66a1e17e
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x9c], esi
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x66a472a0]
mov dword [esp + 0x10], ecx
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ebp
mov dword [esp + 0xb4], edi
lea ecx, [edi + ebx]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.669e3b80
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x7c]
mov dword [ecx + 8], edx
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
jne 0x66a1e1dc
mov ebx, dword [esp + 0xfc]
test ebx, 0x200
mov ebx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xfc]
jmp 0x66a1e1fc
call fcn.669e32b0
mov ebx, dword [esp + 0xb4]
mov dword [edi], ebx
mov ebp, dword [ecx]
mov dword [edi + 4], ebp
mov ebp, dword [esp + 0xfc]
test ebp, 0x200
mov dword [ecx], ebx
je 0x66a1e209
mov esi, dword [esp + 0xf8]
jmp 0x66a1e229
test ebp, 0x80
je 0x66a1e21c
mov esi, dword [esp + 0xf8]
mov edi, dword [esi]
jmp 0x66a1e225
mov esi, dword [esp + 0xf8]
mov edi, esi
test edi, edi
je 0x66a1e2a4
inc eax
cmp edx, eax
jae 0x66a1e297
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1e27c
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov eax, edx
mov ebx, ecx
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov byte [eax + ebx - 1], 0x7b
jmp 0x66a1e3a1
lea ebp, [eax + 5]
nop
cmp edx, ebp
jae 0x66a1e2e7
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 5
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov ebx, edi
mov dword [ebx + eax], 0x6c696e28
mov byte [ebx + eax + 4], 0x29
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1e30f
call fcn.669e32b0
mov dword [edi], ebx
mov eax, dword [ecx]
mov dword [edi + 4], eax
mov dword [ecx], ebx
add esp, 0xec
ret
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
lea eax, [edi + 4]
nop
mov esi, dword [edx]
cmp ecx, eax
jae 0x66a1e373
mov dword [esp + 0x7c], edi
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov edi, dword [esp + 0x7c]
mov dword [esi + edi], 0x5b70616d
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1e396
call fcn.669e32b0
mov dword [edi], esi
mov eax, dword [edx]
mov dword [edi + 4], eax
mov dword [edx], esi
mov esi, ebp
mov ebp, dword [esp + 0xfc]
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.66a17670
mov eax, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x7c], edx
xor ebx, ebx
jmp 0x66a1fb8f
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fafa0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x66a1e609
mov eax, dword [esp + 0xf0]
movzx ecx, byte [eax + 0x2c]
test cl, cl
je 0x66a1e58c
mov ecx, dword [esp + 0xfc]
test ecx, 0x200
jne 0x66a1e420
lea ecx, [0x66a7fa80]
mov edx, dword [esp + 0xf4]
jmp 0x66a1e44a
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.669fc280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov eax, dword [ecx + 0x80]
mov dword [esp], edx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
lea ebp, [eax + ebx]
mov esi, dword [esp + 4]
mov edi, dword [ecx]
cmp edx, ebp
jae 0x66a1e4bb
mov dword [esp + 0x94], esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x48], eax
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x66a472a0]
mov dword [esp + 0x10], ecx
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ebp
mov dword [esp + 0xb4], edi
lea ecx, [edi + ebx]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.669e3b80
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x7c]
mov dword [ecx + 8], edx
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
jne 0x66a1e505
mov ebx, dword [esp + 0xb4]
jmp 0x66a1e518
call fcn.669e32b0
mov ebx, dword [esp + 0xb4]
mov dword [edi], ebx
mov ebp, dword [ecx]
mov dword [edi + 4], ebp
mov dword [ecx], ebx
lea ebp, [eax + 5]
nop
cmp edx, ebp
jae 0x66a1e55d
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 5
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov ebx, edi
mov dword [ebx + eax], 0x6c696e28
mov byte [ebx + eax + 4], 0x29
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1e585
call fcn.669e32b0
mov dword [edi], ebx
mov eax, dword [ecx]
mov dword [edi + 4], eax
mov dword [ecx], ebx
jmp 0x66a1f221
mov ecx, dword [eax + 4]
lea edx, [ecx + 5]
mov ebx, dword [eax + 8]
nop
mov ebp, dword [eax]
cmp ebx, edx
jae 0x66a1e5d9
mov dword [esp + 0x7c], ecx
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 5
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x7c]
mov dword [ebp + ecx], 0x6c696e3c
mov byte [ebp + ecx + 4], 0x3e
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov ecx, dword [0x66b1a6c0]
test ecx, ecx
je 0x66a1e602
call fcn.669e32b0
mov dword [edi], ebp
mov ecx, dword [eax]
mov dword [edi + 4], ecx
mov dword [eax], ebp
jmp 0x66a1f221
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xf0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x14], eax
call fcn.66a1df60
jmp 0x66a1f221
cmp ecx, 0x17
ja 0x66a1eca9
cmp ecx, 0x16
je 0x66a1eb2e
mov dword [esp + 0x74], ecx
mov edi, dword [esp + 0x100]
cmp edi, 0x71
jg 0x66a1e679
cmp edi, 0x58
je 0x66a1e687
cmp edi, 0x71
je 0x66a1e687
jmp 0x66a1e865
cmp edi, 0x73
je 0x66a1e687
cmp edi, 0x78
jne 0x66a1e865
test esi, 0x200
jne 0x66a1e6a2
mov dword [esp + 0x80], eax
lea eax, [0x66a7fa80]
mov dword [esp + 0x3c], eax
jmp 0x66a1e6c0
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fc280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov ebx, ecx
mov dword [esp + 0x88], ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x28]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 8
jne 0x66a1e83e
mov eax, dword [esp + 0x74]
cmp eax, 0x17
je 0x66a1e7ec
mov eax, dword [esp + 0xfc]
test eax, 0x100
jne 0x66a1e757
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.669fb5e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
lea ecx, [0x66a472a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.669caba0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb0], eax
xor ecx, ecx
jmp 0x66a1fa6c
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.669fb5e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
call fcn.669fbee0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp dword [0x66af5694], eax
jne 0x66a1e7c7
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x66a1fa51
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.669fa0e0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x66a1fa51
mov eax, dword [esp + 0xf4]
cmp dword [0x66af5694], eax
jne 0x66a1e80f
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x66a1f9e0
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 8], eax
call fcn.669fa0e0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x66a1f9e0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0x100]
movzx eax, byte [edx + 0x2c]
test al, al
je 0x66a1ea9e
test esi, 0x200
jne 0x66a1e881
lea eax, [0x66a7fa80]
jmp 0x66a1e89b
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fc280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
mov eax, dword [eax + 0x80]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
lea ebp, [eax + ebx]
mov esi, dword [esp + 4]
mov edi, dword [ecx]
cmp edx, ebp
jae 0x66a1e90c
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x44], eax
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x66a472a0]
mov dword [esp + 0x10], ecx
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ebp
mov dword [esp + 0xb4], edi
lea ecx, [edi + ebx]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.669e3b80
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x7c]
mov dword [ecx + 8], edx
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
jne 0x66a1e956
mov ebx, dword [esp + 0xb4]
jmp 0x66a1e969
call fcn.669e32b0
mov ebx, dword [esp + 0xb4]
mov dword [edi], ebx
mov ebp, dword [ecx]
mov dword [edi + 4], ebp
mov dword [ecx], ebx
mov ebp, dword [esp + 0x74]
cmp ebp, 0x17
jne 0x66a1e9f9
mov esi, dword [esp + 0xf8]
mov edi, dword [esi]
test edi, edi
jne 0x66a1ea00
lea ebp, [eax + 5]
nop
cmp edx, ebp
jae 0x66a1e9c8
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 5
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov ebx, edi
mov dword [ebx + eax], 0x6c696e28
mov byte [ebx + eax + 4], 0x29
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1e9f0
call fcn.669e32b0
mov dword [edi], ebx
mov eax, dword [ecx]
mov dword [edi + 4], eax
mov dword [ecx], ebx
add esp, 0xec
ret
mov esi, dword [esp + 0xf8]
inc eax
cmp edx, eax
jb 0x66a1ea0a
cmp ebp, 0x17
jmp 0x66a1ea7e
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
jne 0x66a1ea55
mov eax, dword [esp + 0x74]
cmp eax, 0x17
jmp 0x66a1ea68
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x74]
cmp eax, 0x17
mov dword [ebx], ecx
mov ebp, eax
mov esi, dword [esp + 0xf8]
mov eax, edx
mov ebx, ecx
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov byte [eax + ebx - 1], 0x7b
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0xf4]
mov ebx, 0
jmp 0x66a1f88e
mov eax, dword [edx + 8]
mov edi, dword [edx + 4]
inc edi
mov esi, dword [edx]
cmp eax, edi
jae 0x66a1eb18
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1eaf9
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov edi, edx
mov esi, ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xf0]
mov dword [edx + 4], edi
mov byte [edi + esi - 1], 0x5b
mov eax, dword [esp + 0xfc]
xor esi, esi
jmp 0x66a1f6a7
test eax, eax
je 0x66a1eb36
xor ecx, ecx
jmp 0x66a1eb74
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fbd00
mov eax, dword [esp + 0xc]
test eax, eax
setne al
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
mov ecx, eax
mov eax, dword [esp + 0x104]
test cl, cl
je 0x66a1ee6b
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fafa0
mov eax, dword [esp + 0x14]
mov ecx, eax
and eax, 0x1f
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
cmp eax, 0x15
ja 0x66a1ebb1
cmp eax, 0x11
je 0x66a1ebbf
cmp eax, 0x15
je 0x66a1ebbf
jmp 0x66a1ec88
cmp eax, 0x17
je 0x66a1ebbf
cmp eax, 0x19
jne 0x66a1ec88
mov eax, dword [esp + 0xf0]
mov ebp, dword [eax + 8]
mov esi, dword [eax + 4]
inc esi
nop
mov edi, dword [eax]
cmp ebp, esi
jae 0x66a1ec4e
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x74], ecx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1ec34
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, dword [esp + 0xb0]
mov esi, edx
mov edi, ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xac]
mov dword [eax + 4], esi
mov byte [esi + edi - 1], 0x26
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x14], eax
call fcn.66a1df60
add esp, 0xec
ret
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
jmp 0x66a1ee6b
cmp ecx, 0x18
je 0x66a1eea8
cmp ecx, 0x19
jne 0x66a1ee66
movzx ecx, byte [edx + 0x2c]
test cl, cl
je 0x66a1edda
test esi, 0x200
jne 0x66a1ecd7
lea ecx, [0x66a7fa80]
jmp 0x66a1ecf3
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fc280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
mov ecx, eax
mov eax, dword [ecx + 0x80]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
lea ebp, [ebx + eax]
mov esi, dword [esp + 4]
mov edi, dword [ecx]
cmp edx, ebp
jae 0x66a1ed64
mov dword [esp + 0x98], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x7c], ebx
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x66a472a0]
mov dword [esp + 0x10], ecx
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x7c], edx
mov dword [esp + 0xb4], edi
mov dword [esp + 0x78], ebp
lea ecx, [edi + ebx]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.669e3b80
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
jne 0x66a1edae
mov eax, dword [esp + 0xb4]
jmp 0x66a1edc1
call fcn.669e32b0
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov edx, ecx
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
inc edi
mov eax, dword [edx]
cmp ecx, edi
jae 0x66a1ee57
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1ee35
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
mov edi, edx
mov eax, ecx
mov edx, dword [esp + 0xf0]
mov dword [edx + 4], edi
mov byte [edi + eax - 1], 0x7b
xor eax, eax
jmp 0x66a1f2ab
cmp ecx, 0x1a
jne 0x66a1ee8f
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
call fcn.66a1c7a0
jmp 0x66a1f221
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call fcn.66a1b070
jmp 0x66a1f221
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x100]
mov dword [esp + 0xc], eax
call fcn.66a1bf80
jmp 0x66a1f221
cmp ecx, 0xc
ja 0x66a1f14f
cmp ecx, 1
ja 0x66a1f05c
test ecx, ecx
jne 0x66a1f03c
test eax, eax
jne 0x66a1efa3
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea ebx, [ecx + 0x17]
nop
mov ebp, dword [edx]
cmp eax, ebx
jae 0x66a1ef36
mov dword [esp + 0x7c], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x17
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0xb4], ebp
add ecx, ebp
mov dword [esp], ecx
lea ecx, [0x66a5dc58]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x17
call fcn.669e3b80
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
jne 0x66a1ef89
mov eax, dword [esp + 0xb4]
jmp 0x66a1ef9c
call fcn.669e32b0
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], eax
jmp 0x66a1f221
mov eax, dword [esp + 0x100]
cmp eax, 0x76
jne 0x66a1f02b
mov eax, dword [edx + 4]
lea ecx, [eax + 5]
mov ebx, dword [edx + 8]
mov ebp, dword [edx]
cmp ebx, ecx
jae 0x66a1effb
mov dword [esp + 0x7c], eax
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 5
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0xf0]
mov dword [ebp + eax], 0x6c696e3c
mov byte [ebp + eax + 4], 0x3e
mov dword [edx + 4], ecx
mov dword [edx + 8], ebx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f024
call fcn.669e32b0
mov dword [edi], ebp
mov eax, dword [edx]
mov dword [edi + 4], eax
mov dword [edx], ebp
jmp 0x66a1f221
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.66a1b2f0
jmp 0x66a1f221
movzx eax, byte [ebp]
mov dword [esp], edx
mov byte [esp + 4], al
mov eax, dword [esp + 0x100]
mov dword [esp + 8], eax
call fcn.66a1b860
jmp 0x66a1f221
cmp ecx, 6
ja 0x66a1f0e6
cmp ecx, 3
ja 0x66a1f08a
cmp ecx, 2
jne 0x66a1f079
mov eax, dword [ebp]
mov ecx, eax
sar eax, 0x1f
jmp 0x66a1f0c1
movsx eax, byte [ebp]
mov ecx, eax
sar ecx, 0x1f
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x66a1f0c1
cmp ecx, 4
jne 0x66a1f0a0
movsx eax, word [ebp]
mov ecx, eax
sar ecx, 0x1f
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x66a1f0c1
cmp ecx, 5
jne 0x66a1f0b5
mov eax, dword [ebp]
mov ecx, eax
sar ecx, 0x1f
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x66a1f0c1
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov ebx, eax
mov eax, ecx
mov ecx, ebx
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov byte [esp + 0xc], 1
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
call fcn.66a1b940
jmp 0x66a1f221
cmp ecx, 9
ja 0x66a1f10c
cmp ecx, 7
jne 0x66a1f0f7
mov eax, dword [ebp]
xor ecx, ecx
jmp 0x66a1f12a
cmp ecx, 8
jne 0x66a1f104
movzx eax, byte [ebp]
xor ecx, ecx
jmp 0x66a1f12a
movzx eax, word [ebp]
xor ecx, ecx
jmp 0x66a1f12a
cmp ecx, 0xa
jne 0x66a1f118
mov eax, dword [ebp]
xor ecx, ecx
jmp 0x66a1f12a
cmp ecx, 0xb
jne 0x66a1f125
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
jmp 0x66a1f12a
mov eax, dword [ebp]
xor ecx, ecx
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov byte [esp + 0xc], 0
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
call fcn.66a1b940
jmp 0x66a1f221
cmp ecx, 0xe
ja 0x66a1f1b0
cmp ecx, 0xd
jne 0x66a1f188
movss xmm0, dword [ebp]
cvtss2sd xmm0, xmm0
mov dword [esp], edx
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x20
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
call fcn.66a1bc60
jmp 0x66a1f221
movsd xmm0, qword [ebp]
mov dword [esp], edx
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x40
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
call fcn.66a1bc60
jmp 0x66a1f221
cmp ecx, 0xf
jne 0x66a1f1f0
movss xmm0, dword [ebp]
movss xmm1, dword [ebp + 4]
cvtss2sd xmm0, xmm0
cvtss2sd xmm1, xmm1
mov dword [esp], edx
movsd qword [esp + 4], xmm0
movsd qword [esp + 0xc], xmm1
mov dword [esp + 0x14], 0x40
mov eax, dword [esp + 0x100]
mov dword [esp + 0x18], eax
call fcn.66a1bdc0
jmp 0x66a1f221
movsd xmm0, qword [ebp]
movsd xmm1, qword [ebp + 8]
mov dword [esp], edx
movsd qword [esp + 4], xmm0
movsd qword [esp + 0xc], xmm1
mov dword [esp + 0x14], pe_nt_image_headers32
mov eax, dword [esp + 0x100]
mov dword [esp + 0x18], eax
call fcn.66a1bdc0
add esp, 0xec
ret
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.66a1afe0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x104]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
call fcn.66a1df60
mov eax, dword [esp + 0x64]
inc eax
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x64], eax
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.669fbc50
mov eax, dword [esp + 0x64]
cmp dword [esp + 0xc], eax
jle 0x66a1f5a1
test eax, eax
jle 0x66a1f3d0
mov ecx, dword [esp + 0xf0]
movzx edx, byte [ecx + 0x2c]
test dl, dl
je 0x66a1f35a
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
lea ebp, [ebx + 2]
mov esi, dword [ecx]
cmp edx, ebp
jae 0x66a1f334
mov dword [esp + 0x7c], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 2
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x7c]
mov word [esi + ebx], 0x202c
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
mov edx, dword [0x66b1a6c0]
test edx, edx
je 0x66a1f356
call fcn.669e32b0
mov dword [edi], esi
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], esi
jmp 0x66a1f3d7
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
inc ebx
mov ebp, dword [ecx]
cmp edx, ebx
jae 0x66a1f3c6
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f3b5
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, dword [esp + 0x64]
mov ebx, edx
mov ebp, ecx
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], ebx
mov byte [ebx + ebp - 1], 0x20
jmp 0x66a1f3d7
mov ecx, dword [esp + 0xf0]
movzx edx, byte [ecx + 0x2b]
test dl, dl
jne 0x66a1f3eb
movzx edx, byte [ecx + 0x2c]
test dl, dl
je 0x66a1f228
mov edx, dword [esp + 0xfc]
test edx, 0x200
jne 0x66a1f409
lea ebx, [0x66a7fa80]
mov ebp, dword [esp + 0xf4]
jmp 0x66a1f437
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.669fc280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov ebp, ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [ebx + 0x2c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call ecx
lea edi, [esp + 0xb8]
lea esi, [esp + 8]
call fcn.669e391e
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
test eax, eax
je 0x66a1f591
mov edx, dword [esp + 0xf0]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 4]
lea esi, [eax + ebp]
nop
mov edi, dword [edx]
cmp ebx, esi
jae 0x66a1f4c8
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0xa0], ecx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea ecx, [0x66a472a0]
mov dword [esp + 0x10], ecx
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0xb4], edi
mov dword [esp + 0x78], ebx
lea edx, [edi + ebp]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.669e3b80
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x78]
mov dword [ecx + 8], edx
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
jne 0x66a1f512
mov ebx, dword [esp + 0xb4]
jmp 0x66a1f525
call fcn.669e32b0
mov ebx, dword [esp + 0xb4]
mov dword [edi], ebx
mov ebp, dword [ecx]
mov dword [edi + 4], ebp
mov dword [ecx], ebx
inc eax
cmp edx, eax
jae 0x66a1f587
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f57a
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, edx
mov ebx, ecx
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 4], eax
mov byte [eax + ebx - 1], 0x3a
jmp 0x66a1f598
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0x64]
jmp 0x66a1f228
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
inc edx
mov ebx, dword [eax]
cmp ecx, edx
jae 0x66a1f609
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f603
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, ecx
mov dword [eax + 4], edx
mov byte [edx + ebx - 1], 0x7d
jmp 0x66a1f221
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
call fcn.669fb240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x104]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
call fcn.66a1df60
mov eax, dword [esp + 0x58]
lea esi, [eax + 1]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0xf8]
mov ebp, dword [esp + 0xf4]
mov eax, edx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xf0]
mov ebx, ebp
mov ebp, dword [esp + 0xf8]
mov dword [esp + 0x58], esi
cmp ecx, 0x17
jne 0x66a1f6b5
mov edi, dword [ebp + 4]
jmp 0x66a1f6ed
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.669fb5e0
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0x58]
cmp edi, esi
jle 0x66a1f78b
test esi, esi
jle 0x66a1f616
mov edi, dword [edx + 8]
mov ecx, dword [edx + 4]
inc ecx
mov esi, dword [edx]
cmp edi, ecx
jae 0x66a1f77a
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f758
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, dword [esp + 0xfc]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, ecx
mov ecx, edx
mov edx, dword [esp + 0xf0]
mov dword [edx + 4], ecx
mov byte [ecx + esi - 1], 0x20
mov esi, dword [esp + 0x58]
jmp 0x66a1f616
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
inc ecx
nop
mov ebx, dword [edx]
cmp eax, ecx
jae 0x66a1f7f1
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f7e7
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, edx
mov edx, ebx
mov ebx, ecx
mov ecx, eax
mov dword [edx + 4], ecx
mov byte [ecx + ebx - 1], 0x5d
jmp 0x66a1f221
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
call fcn.669fb240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x104]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
call fcn.66a1df60
mov eax, dword [esp + 0x5c]
lea ebx, [eax + 1]
mov ebp, dword [esp + 0x74]
cmp ebp, 0x17
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf4]
mov eax, ecx
mov ecx, dword [esp + 0xf0]
mov edx, esi
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x5c], ebx
jne 0x66a1f899
mov edi, dword [esi + 4]
jmp 0x66a1f8d1
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.669fb5e0
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xf8]
cmp edi, ebx
jle 0x66a1f96f
test ebx, ebx
jle 0x66a1f7fe
mov edi, dword [ecx + 8]
mov ebp, dword [ecx + 4]
lea ebx, [ebp + 2]
mov eax, dword [ecx]
cmp edi, ebx
jae 0x66a1f93b
mov dword [esp + 0x7c], ebp
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 2
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0xf8]
mov word [eax + ebp], 0x202c
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
mov ebx, dword [0x66b1a6c0]
test ebx, ebx
je 0x66a1f95d
call fcn.669e32b0
mov dword [edi], eax
mov ebx, dword [ecx]
mov dword [edi + 4], ebx
mov dword [ecx], eax
mov eax, dword [esp + 0xfc]
mov ebx, dword [esp + 0x5c]
jmp 0x66a1f7fe
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 4]
inc edx
nop
mov ebx, dword [ecx]
cmp eax, edx
jae 0x66a1f9d3
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1f9cb
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ecx
mov ecx, ebx
mov ebx, eax
mov dword [ecx + 4], edx
mov byte [edx + ebx - 1], 0x7d
jmp 0x66a1f221
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0xa4], ecx
mov ebx, dword [esp + 0x3c]
mov ebx, dword [ebx + 0x80]
mov ebp, dword [esp + 0x88]
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xf0]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x100]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call fcn.66a1c120
add esp, 0xec
ret
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x66a1f9e0
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xb0]
mov byte [ebx + edx], al
lea ecx, [edx + 1]
mov eax, ebx
mov edx, dword [esp + 0x40]
cmp ecx, edx
jge 0x66a1fafa
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.669fb240
mov eax, dword [esp + 0x18]
and eax, 0x1f
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x14]
cmp eax, 9
ja 0x66a1fad6
cmp eax, 7
jne 0x66a1fac2
mov eax, dword [ecx]
jmp 0x66a1fa59
cmp eax, 8
jne 0x66a1facc
movzx eax, byte [ecx]
jmp 0x66a1fa59
cmp eax, 9
jne 0x66a1fb01
movzx eax, word [ecx]
jmp 0x66a1fa59
cmp eax, 0xa
jne 0x66a1fae2
mov eax, dword [ecx]
jmp 0x66a1fa59
cmp eax, 0xb
jne 0x66a1faee
mov eax, dword [ecx]
jmp 0x66a1fa59
cmp eax, 0xc
jne 0x66a1fb01
mov eax, dword [ecx]
jmp 0x66a1fa59
mov ecx, edx
jmp 0x66a1fa51
lea eax, [0x66a4c700]
mov dword [esp], eax
call fcn.6698bd20
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x66a5be1d]
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], ecx
lea ecx, [0x66a49580]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.669b6910
mov ecx, dword [edx + 0xc]
lea ebp, [ebx + ebx*2]
mov esi, dword [ecx + ebp*4]
mov edi, dword [ecx + ebp*4 + 4]
mov ecx, dword [ecx + ebp*4 + 8]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x14], ebp
call fcn.66a1df60
mov eax, dword [esp + 0xb0]
lea ecx, [eax + 0xc]
mov eax, dword [esp + 0x68]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x7c]
cmp ebx, edx
jge 0x66a1fda9
mov dword [esp + 0x68], ebx
mov dword [esp + 0xb0], ecx
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
test ebx, ebx
jle 0x66a1fce5
mov dword [esp + 0x74], edi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], ebp
mov edx, dword [esp + 0xf0]
movzx ecx, byte [edx + 0x2c]
test cl, cl
je 0x66a1fc62
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 4]
lea eax, [ebx + 2]
mov edi, dword [edx]
cmp ecx, eax
jae 0x66a1fc31
mov dword [esp + 0x78], ebx
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov word [edi + ebx], 0x202c
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1fc57
mov eax, edi
call fcn.669e32b0
mov dword [edi], eax
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov edi, eax
mov dword [edx], edi
mov edi, dword [esp + 0x74]
jmp 0x66a1fce5
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 4]
inc ebx
nop
mov eax, dword [edx]
cmp ecx, ebx
jae 0x66a1fcdd
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1fcbe
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x74]
mov ebx, edx
mov eax, ecx
mov edx, dword [esp + 0xf0]
mov dword [edx + 4], ebx
mov byte [ebx + eax - 1], 0x20
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x104]
lea ebx, [edx + 1]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], ebx
call fcn.66a1df60
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
inc edx
nop
mov ebx, dword [eax]
cmp ecx, edx
jae 0x66a1fd86
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1fd80
call fcn.669e32b0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, ebx
mov ebx, ecx
mov dword [eax + 4], edx
mov byte [edx + ebx - 1], 0x3a
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx + 0x10]
mov ebx, dword [esp + 0x68]
cmp ebx, ecx
jb 0x66a1fb3b
jmp 0x66a1fe96
mov eax, dword [esp + 0xf0]
movzx ecx, byte [eax + 0x2c]
test cl, cl
je 0x66a1fe27
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
inc edx
nop
mov ebx, dword [eax]
cmp ecx, edx
jae 0x66a1fe1a
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1fe14
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, ecx
mov dword [eax + 4], edx
mov byte [edx + ebx - 1], 0x7d
jmp 0x66a1f221
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
inc edx
nop
mov ebx, dword [eax]
cmp ecx, edx
jae 0x66a1fe89
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66a472a0]
mov dword [esp + 0x10], eax
call fcn.669cac60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [0x66b1a6c0]
test eax, eax
je 0x66a1fe83
call fcn.669e32b0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, ecx
mov dword [eax + 4], edx
mov byte [edx + ebx - 1], 0x5d
jmp 0x66a1f221
mov eax, ebx
call fcn.669e3300
nop
call fcn.669e1e80
jmp fcn.66a1df60