Function at 0x66c9c0
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x274
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ebx, dword [eax]
xor esi, esi
mov edi, dword [eax + 0x58]
push eax
mov dword [esp + 0x64], edi
mov cl, byte [ebx + 0x46]
mov byte [esp + 0x68], cl
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x7b], 0
mov dword [esp + 0x98], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ecx
call fcn.0066c8e0
mov ecx, dword [ebp + 8]
add esp, 4
cmp dword [ecx + 0x28], 7
je 0x66e73e
mov dword [ecx + 0x38], esi
mov dword [ecx + 0x3c], esi
mov dword [ecx + 0x68], esi
mov dword [ebx + 0x18c], esi
cmp dword [ebx + 0x100], esi
jne 0x672437
cmp dword [ebx + 0x138], esi
je 0x66ca5c
mov eax, dword [ebx + 0x140]
xor edx, edx
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0xb0]
div dword [esp + 0x78]
sub dword [esp + 0x78], edx
jmp 0x66ca64
mov dword [esp + 0x78], 0xffffffff
mov eax, dword [ecx + 0x24]
xor edx, edx
mov dword [esp + 0x80], 0x3e00
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
mov al, byte [edi]
inc edx
mov dword [esp + 0x20], edx
movzx edx, al
mov dword [esp + 0x34], edi
mov byte [esp + 0x33], al
mov dword [esp + 0x4c], edx
cmp edx, 0xa4
ja case.0x66ca9c.83
jmp dword [edx*4 + 0x67259c]
mov eax, dword [edi + 4]
mov ecx, edi
mov ebx, dword [esp + 0x24]
sub ecx, dword [esp + 0x60]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
add edi, 0xffffffec
mov ebx, dword [esp + 0x6c]
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
add edi, 0x14
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x60]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*4]
mov eax, pe_nt_image_headers32
jmp 0x66d982
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
cmp dword [edi + 8], 0
mov ecx, dword [ebp + 8]
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov edx, dword [esp + 0x20]
mov eax, pe_nt_image_headers32
add edi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ebx, dword [esp + 0x34]
mov ecx, 4
mov edi, dword [esp + 0x60]
mov eax, dword [ebx + 4]
sub ebx, edi
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul ebx
mov ebx, dword [esp + 0x24]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [ebx + esi*8 + 4], edx
lea edi, [edi + eax*4]
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je case.0x66ca9c.83
mov esi, dword [ebp + 8]
mov ecx, edi
sub ecx, dword [esp + 0x60]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [esp + 0x34]
cmp dword [edx + 4], 0
jne 0x671f11
mov ecx, dword [esi + 0xc4]
test ecx, ecx
je 0x671f11
mov eax, dword [ecx + 4]
dec dword [esi + 0xcc]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x2c]
add dword [ebx + 0x60], eax
push ecx
mov dword [ebx + 0x5c], eax
call fcn.00672ef0
mov esi, dword [esp + 0x38]
add esp, 4
cmp dword [esi + 8], 4
jne 0x66cc71
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ecx + 0x58]
mov edx, dword [ecx + 0x5c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
lea edi, [ebx + eax*4]
mov ebx, dword [esp + 0x6c]
add edi, 0x14
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov ebx, dword [esp + 0x74]
mov ecx, eax
mov eax, dword [edi + 4]
add esp, 8
cdq
add edi, 0x14
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov ecx, dword [edi + 0x10]
mov edx, eax
mov ebx, dword [esp + 0x74]
add esp, 8
add edi, 0x14
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov edx, dword [esp + 0x28]
mov ecx, eax
mov ebx, dword [esp + 0x74]
mov eax, 8
add esp, 8
mov word [ecx + 8], ax
mov eax, dword [edi + 0x10]
add edi, 0x14
fld qword [eax]
fstp qword [ecx]
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
push dword [edi + 0x10]
mov dword [esp + 0x58], eax
mov byte [edi], 0x45
call fcn.00667910
add esp, 0xc
mov dword [edi + 4], eax
cmp byte [esp + 0x64], 1
je 0x66cdaa
push 0
push 1
push 0xffffffffffffffff
push dword [edi + 0x10]
push dword [esp + 0x5c]
call fcn.00674740
movzx ecx, byte [esp + 0x78]
mov esi, eax
push ecx
push dword [esp + 0x64]
mov dword [esp + 0x38], esi
call fcn.0066bfa0
add esp, 0x1c
test eax, eax
jne 0x66e73b
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x18], eax
mov eax, 0x800
or word [ecx + 8], ax
cmp byte [edi + 1], 0xf9
jne 0x66cd9a
push dword [edi + 0x10]
push ebx
call fcn.00647820
mov ecx, dword [esp + 0x54]
add esp, 8
mov byte [edi + 1], 0xf9
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
cmp eax, dword [ebx + 0x64]
jg 0x671221
mov ecx, dword [ebp + 8]
push edi
push ecx
call fcn.00634120
mov ebx, eax
add esp, 8
mov eax, 0xa02
mov word [ebx + 8], ax
mov ecx, dword [edi + 0x10]
mov al, byte [esp + 0x64]
mov dword [ebx + 0x10], ecx
mov ecx, dword [edi + 4]
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0xa], al
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x66d987
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
movzx eax, word [edi + 2]
cdq
cmp dword [esi + ecx*8], eax
mov esi, dword [esp + 0x1c]
jne 0x66d987
mov eax, dword [esp + 0x24]
cmp dword [eax + ecx*8 + 4], edx
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
jne 0x66d98e
mov eax, 0xa10
add edi, 0x14
mov word [ebx + 8], ax
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov ecx, dword [esp + 0x3c]
add esp, 8
lea esi, [eax + 0xc]
mov edi, dword [ecx + 0xc]
sub edi, dword [ecx + 8]
mov ecx, dword [ecx + 4]
neg ecx
mov dword [esi], 0
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx ebx, cx
mov word [eax + 8], bx
test edi, edi
jle 0x66ce83
lea esi, [esi + 0x28]
lea eax, [esi - 0xc]
push eax
call fcn.00674600
dec edi
mov word [esi - 4], bx
add esp, 4
mov dword [esi], 0
test edi, edi
jg 0x66ce65
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, 0xff61
mov ebx, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
mov edx, dword [esp + 0x20]
or ax, 1
add edi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
push 0
push 0
push dword [edi + 4]
mov esi, eax
push dword [edi + 0x10]
push esi
call fcn.00674740
mov al, byte [esp + 0x80]
add esp, 0x1c
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x1c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x74]
lea eax, [eax + ecx*8]
add eax, 0xffffffd8
push eax
mov dword [esp + 0x2c], eax
call fcn.00674ae0
add esp, 4
test eax, eax
jne 0x671221
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x24]
push 0x800
push dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.006749b0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
push ecx
push esi
call fcn.006743c0
mov eax, 0x1000
add esp, 8
test word [esi + 8], ax
je 0x66cfae
push esi
call fcn.00674370
add esp, 4
test eax, eax
jne 0x66e73b
mov ecx, dword [esp + 0x2c]
add esi, 0x28
add ecx, 0x28
dec dword [esp + 0x38]
mov dword [esp + 0x2c], ecx
jne 0x66cf88
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
push 0x1000
push ecx
push esi
mov dword [esp + 0x44], ecx
call fcn.006749b0
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x66d025
push esi
call fcn.00674370
add esp, 4
test eax, eax
jne 0x66e73b
mov ecx, dword [esp + 0x2c]
mov eax, ecx
dec ecx
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x66cbd6
mov ecx, dword [esp + 0x38]
add esi, 0x28
add ecx, 0x28
jmp 0x66cff6
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
push 0x1000
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.006749b0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.006745c0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4c], ecx
movzx eax, word [eax + 8]
mov dword [esp + 0x2c], eax
mov al, byte [edx + 8]
or al, byte [esp + 0x2c]
test al, 1
je 0x66d110
push ecx
call fcn.00674600
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
test dword [esp + 0x2c], 0x4000
je 0x66d132
push dword [esp + 0x5c]
call fcn.00673f80
add esp, 4
test eax, eax
jne 0x66e73b
mov edx, dword [esp + 0x3c]
mov eax, 0x4000
test word [edx + 8], ax
je 0x66d14e
push edx
call fcn.00673f80
add esp, 4
test eax, eax
jne 0x66e73b
mov eax, dword [esp + 0x5c]
test byte [eax + 8], 0x12
jne 0x66d16f
push 0
push dword [esp + 0x68]
push eax
call fcn.00674a10
add esp, 0xc
test eax, eax
jne 0x66e73b
mov eax, dword [esp + 0x3c]
test byte [eax + 8], 0x12
jne 0x66d194
push 0
push dword [esp + 0x68]
push eax
call fcn.00674a10
add esp, 0xc
test eax, eax
jne 0x66e73b
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [esp + 0x38], eax
mov ecx, edx
mov eax, dword [ebx + 0x64]
cdq
cmp ecx, edx
jg 0x671221
jl 0x66d1bd
cmp dword [esp + 0x38], eax
ja 0x671221
mov ecx, dword [esp + 0x4c]
xor eax, eax
cmp ecx, dword [esp + 0x3c]
sete al
push eax
mov eax, dword [esp + 0x3c]
add eax, 2
push eax
push ecx
call fcn.00674100
add esp, 0xc
test eax, eax
jne 0x66e73b
mov ebx, dword [esp + 0x4c]
mov ecx, 0x3e00
mov ax, word [ebx + 8]
and ax, cx
or ax, 2
mov word [ebx + 8], ax
mov eax, dword [esp + 0x3c]
cmp ebx, eax
je 0x66d215
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [ebx + 0x10]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
add eax, dword [edx + 0xc]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebx + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov byte [ecx + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [ebx + 8], ax
add edi, 0x14
mov al, byte [esp + 0x64]
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebp + 8]
mov byte [ebx + 0xa], al
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [esp + 0x40], eax
call fcn.006339a0
movzx eax, ax
mov dword [esp + 0x50], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [esp + 0x48], eax
call fcn.006339a0
mov ecx, dword [esp + 0x44]
add esp, 8
movzx eax, ax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x68], ebx
mov ax, word [eax + 8]
or ax, word [ecx + 8]
movzx edx, ax
mov al, byte [esp + 0x2c]
and al, byte [esp + 0x4c]
test al, 4
je 0x66d44a
mov eax, ecx
mov byte [esp + 0x33], 1
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
movzx eax, byte [edi]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x66d310
jmp dword [eax*4 + 0x672830]
push edx
push ecx
lea eax, [esp + 0xa0]
push eax
call fcn.0063ee50
add esp, 0xc
test eax, eax
je 0x66d410
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.006751a0
push dword [esp + 0x44]
fstp qword [esp + 0x58]
call fcn.006751a0
movzx eax, byte [edi]
add esp, 8
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x66d35a
jmp dword [eax*4 + 0x672840]
push edx
push ecx
lea eax, [esp + 0xa0]
push eax
call fcn.00667930
add esp, 0xc
test eax, eax
jne 0x66d331
jmp 0x66d410
push edx
push ecx
lea eax, [esp + 0xa0]
push eax
call fcn.0065b540
add esp, 0xc
test eax, eax
jne 0x66d331
jmp 0x66d410
mov eax, ecx
or eax, edx
je 0x66d55f
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x66d3c4
test eax, eax
jne 0x66d3c4
mov esi, dword [esp + 0x40]
cmp dword [esi + 4], 0x80000000
mov esi, dword [esp + 0x1c]
je 0x66d331
push edx
push ecx
mov ecx, dword [esp + 0x48]
push dword [ecx + 4]
push eax
call fcn.005195e0
jmp 0x66d402
mov eax, ecx
or eax, edx
je 0x66d55f
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x66d3ef
mov ecx, 1
xor edx, edx
mov eax, dword [esp + 0x40]
push edx
push ecx
push dword [eax + 4]
mov eax, dword [esp + 0x44]
push eax
call fcn.00519890
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
mov ecx, 0x3e00
mov edx, dword [esp + 0x20]
mov dword [ebx], eax
mov eax, dword [esp + 0x9c]
mov dword [ebx + 4], eax
mov ax, word [ebx + 8]
and ax, cx
mov ecx, dword [ebp + 8]
or ax, 4
add edi, 0x14
mov word [ebx + 8], ax
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
test dl, 1
jne 0x66d55f
mov byte [esp + 0x33], 0
jmp 0x66d335
fadd qword [esp + 0x50]
jmp 0x66d4f4
fsub qword [esp + 0x50]
jmp 0x66d4f4
fmul qword [esp + 0x50]
jmp 0x66d4f4
fld qword [esp + 0x50]
fldz
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x66d55b
fdivp st(1)
jmp 0x66d4f4
fld qword [esp + 0x50]
call fcn.00519566
mov ebx, eax
mov dword [esp + 0x28], edx
call fcn.00519566
mov dword [esp + 0x98], eax
mov ecx, ebx
mov eax, dword [esp + 0x28]
or ecx, eax
mov dword [esp + 0x9c], edx
je 0x66d55f
mov ecx, ebx
and ecx, eax
cmp ecx, 0xffffffff
jne 0x66d4cc
mov ebx, 1
xor eax, eax
push eax
push ebx
push edx
push dword [esp + 0xa4]
call fcn.00519890
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
fild qword [esp + 0x160]
sub esp, 8
fst qword [esp + 0x58]
fstp qword [esp]
call fcn.006599e0
add esp, 8
test eax, eax
jne 0x66d55f
mov ax, word [ebx + 8]
mov ecx, 0x3e00
fld qword [esp + 0x50]
and ax, cx
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [esp + 0x2c]
or al, byte [esp + 0x4c]
fstp qword [ebx]
test al, 8
jne 0x66d987
cmp byte [esp + 0x33], 0
jne 0x66d987
push ebx
call fcn.00673630
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
fstp st(0)
fstp st(0)
push dword [esp + 0x68]
call fcn.00674600
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
test eax, eax
je case.0x66ca9c.83
push 0
push 0
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.006745c0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [ebx + 8]
mov dword [esp + 0x2c], edx
test al, 1
je 0x66d5fc
push edx
call fcn.00674600
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push ecx
call fcn.006735f0
push ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
call fcn.006735f0
mov cl, byte [edi]
add esp, 8
mov byte [esp + 0x33], cl
mov ebx, eax
cmp cl, 0x54
jne 0x66d62f
mov eax, dword [esp + 0x40]
and dword [esp + 0x44], ebx
and eax, edx
jmp 0x66d715
cmp cl, 0x55
jne 0x66d643
mov eax, dword [esp + 0x40]
or dword [esp + 0x44], ebx
or eax, edx
jmp 0x66d715
mov eax, ebx
or eax, edx
je 0x66d711
test edx, edx
jg 0x66d67f
jl 0x66d657
test ebx, ebx
jae 0x66d674
mov al, 0xad
sub al, cl
mov cl, al
mov byte [esp + 0x33], cl
cmp edx, 0xffffffff
jl 0x66d67f
jg 0x66d66d
cmp ebx, 0xffffffc0
jbe 0x66d67f
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x66d6ae
jg 0x66d67f
cmp ebx, 0x40
jb 0x66d6ae
cmp dword [esp + 0x40], 0
jg 0x66d6a3
jl 0x66d690
mov ecx, dword [esp + 0x44]
test ecx, ecx
jae 0x66d6a3
cmp byte [esp + 0x33], 0x56
je 0x66d6a3
or eax, 0xffffffff
cdq
mov dword [esp + 0x44], eax
mov eax, edx
jmp 0x66d715
xor eax, eax
cdq
mov dword [esp + 0x44], eax
mov eax, edx
jmp 0x66d715
mov eax, dword [esp + 0x44]
cmp cl, 0x56
mov edx, dword [esp + 0x40]
mov ecx, ebx
jne 0x66d6cc
call fcn.00519a30
mov ecx, eax
mov eax, edx
mov dword [esp + 0x44], ecx
jmp 0x66d715
call fcn.00519bc0
cmp dword [esp + 0x40], 0
mov ecx, eax
mov eax, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
jg 0x66d70b
jl 0x66d6ed
cmp dword [esp + 0x44], 0
jae 0x66d70b
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.00519a30
mov ecx, dword [esp + 0x28]
or ecx, eax
mov eax, dword [esp + 0x48]
or eax, edx
mov dword [esp + 0x44], ecx
jmp 0x66d715
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x6c]
mov dword [edx + 4], eax
mov ax, word [edx + 8]
mov dword [edx], ecx
mov ecx, 0x3e00
and ax, cx
mov ecx, dword [ebp + 8]
or ax, 4
add edi, 0x14
mov word [edx + 8], ax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00674310
mov eax, dword [edi + 8]
add esp, 4
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x6c]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add edi, 0x14
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx + 8]
mov dword [esp + 0x2c], ecx
test al, 4
jne 0x66d834
test al, 8
jne 0x66d7b1
test al, 2
je 0x66d7be
push 1
push ecx
call fcn.0060b790
add esp, 8
jmp 0x66d7ba
push ecx
call fcn.00673630
add esp, 4
mov ecx, dword [esp + 0x2c]
movzx eax, word [ecx + 8]
test al, 4
jne 0x66d834
cmp dword [edi + 8], 0
jne 0x66cada
mov ecx, 0x14
mov dword [esp + 0x1c], ecx
mov edi, dword [ebp + 8]
cmp byte [ebx + 0x49], 0
je 0x66d7eb
mov ecx, 7
mov dword [esp + 0x1c], ecx
cmp dword [edi + 0x6c], 0
jne 0x6724af
cmp ecx, 0xc0a
je 0x6724af
mov eax, str.unknown_error
cmp ecx, 0x204
je 0x672497
movzx ecx, cl
cmp ecx, 0x1a
ja 0x67249c
mov ecx, dword [ecx*4 + 0x6c2c50]
test ecx, ecx
je 0x67249c
mov eax, ecx
jmp 0x67249c
mov edx, dword [esp + 0x20]
and eax, 0x3e00
mov ebx, dword [esp + 0x6c]
or eax, 4
mov word [ecx + 8], ax
add edi, 0x14
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 4
lea eax, [edx + eax*8]
je case.0x66ca9c.83
push eax
call fcn.006744f0
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x4000
mov dword [esp + 0x28], eax
test word [eax + 8], cx
je 0x66d8b0
push eax
call fcn.00673f80
add esp, 4
mov esi, eax
jmp 0x66d8b2
xor esi, esi
push dword [esp + 0x64]
movzx eax, byte [edi + 8]
push eax
push dword [esp + 0x30]
mov dword [esp + 0x28], esi
call fcn.00673e10
mov ecx, esi
add esp, 0xc
test ecx, ecx
jne 0x66d7d9
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x5c], edx
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
movzx eax, word [edx + 8]
movzx ecx, word [ebx + 8]
mov dword [esp + 0x40], ecx
or ecx, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], eax
test cl, 1
je 0x66d9b5
movzx eax, word [edi + 2]
test al, al
jns 0x66d958
mov al, byte [esp + 0x40]
and al, byte [esp + 0x44]
test al, 1
je 0x66da29
test dword [esp + 0x40], 0x100
jne 0x66da29
movzx eax, byte [edi]
xor edx, edx
movzx ebx, byte [eax + 0x6c10b8]
jmp 0x66da38
test al, 0x20
je 0x66d99a
mov eax, dword [edi + 8]
mov dword [esp + 0x94], 1
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x24]
mov ebx, 0x3e00
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
add edi, 0x14
jmp 0x66ca7a
mov ecx, dword [ebp + 8]
test al, 0x10
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov al, byte [edi + 2]
and al, 0x47
cmp al, 0x43
jl 0x66daec
test cl, 2
je 0x66d9f9
mov al, byte [esp + 0x44]
and al, 0xe
cmp al, 2
jne 0x66d9e4
push 0
push edx
call fcn.0060b790
movzx eax, word [ebx + 8]
add esp, 8
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x40]
and al, 0xe
cmp al, 2
jne 0x66d9f9
push 0
push ebx
call fcn.0060b790
add esp, 8
mov ecx, dword [esp + 0x5c]
mov al, byte [ecx + 8]
and al, byte [ebx + 8]
test al, 4
je 0x66db56
mov edx, dword [ebx]
mov eax, ecx
mov ebx, dword [ebx + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp ebx, eax
jl 0x66dada
jg 0x66da29
cmp edx, ecx
jbe 0x66dac8
mov edx, 1
movzx eax, byte [edi]
movzx ebx, byte [eax + 0x6c10c0]
mov ecx, dword [esp + 0x5c]
movzx eax, word [esp + 0x44]
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x28]
movzx eax, word [esp + 0x40]
mov word [ecx + 8], ax
movzx ecx, word [edi + 2]
test cl, 0x20
je 0x66db90
mov eax, dword [edi + 8]
mov dword [esp + 0x94], edx
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], eax
test cl, 8
je 0x66da89
xor eax, eax
cmp byte [edi], 0x35
sete al
cmp eax, ebx
je 0x66d987
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov cx, word [edx + eax*8 + 8]
and cx, word [esp + 0x80]
or cx, 4
add edi, 0x14
mov word [edx + eax*8 + 8], cx
mov eax, ebx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
cdq
mov dword [ebx + ecx*8 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ebx + ecx*8], eax
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp ebx, eax
jg 0x66d947
jl 0x66dada
cmp edx, ecx
jae 0x66d947
movzx ecx, byte [edi]
or edx, 0xffffffff
movzx ebx, byte [ecx + 0x6c10b0]
jmp 0x66da38
cmp al, 0x42
jne 0x66db56
mov al, byte [esp + 0x44]
test al, 2
jne 0x66db25
test al, 0xc
je 0x66db25
push 1
push dword [esp + 0x68]
push edx
call fcn.00674a10
mov ecx, dword [esp + 0x68]
add esp, 0xc
mov ax, word [ecx + 8]
mov ecx, 0x3e00
xor ax, word [esp + 0x44]
and ax, cx
xor word [esp + 0x44], ax
mov al, byte [esp + 0x40]
test al, 2
jne 0x66db56
test al, 0xc
je 0x66db56
push 1
push dword [esp + 0x68]
push ebx
call fcn.00674a10
mov ax, word [ebx + 8]
mov ecx, 0x3e00
xor ax, word [esp + 0x4c]
add esp, 0xc
and ax, cx
xor word [esp + 0x40], ax
push dword [edi + 0x10]
push dword [esp + 0x60]
push ebx
call fcn.0065b390
mov edx, eax
add esp, 0xc
test edx, edx
jns 0x66db7b
movzx ecx, byte [edi]
movzx ebx, byte [ecx + 0x6c10b0]
jmp 0x66da38
jne 0x66da2e
movzx eax, byte [edi]
movzx ebx, byte [eax + 0x6c10b8]
jmp 0x66da38
mov ecx, dword [ebp + 8]
test ebx, ebx
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp dword [esp + 0x94], 0
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
test byte [edi + 2], 1
jne 0x66dbd3
xor eax, eax
jmp 0x66dbd9
mov eax, dword [edi - 4]
add eax, 4
mov ebx, dword [edi + 4]
xor esi, esi
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x48], ebx
mov ebx, dword [edi + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], ebx
test ecx, ecx
jle 0x66cbd6
lea ebx, [edx + 0x14]
test eax, eax
je 0x66dc0f
mov ecx, dword [eax + esi*4]
jmp 0x66dc11
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x24]
push dword [ebx]
movzx eax, byte [eax + esi]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x2c]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [esp + 0x50]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.0065b390
mov edx, eax
add esp, 0xc
mov dword [esp + 0x94], edx
test edx, edx
jne 0x66dc7a
mov eax, dword [esp + 0x2c]
inc esi
mov edx, dword [esp + 0x4c]
add ebx, 4
cmp esi, dword [esp + 0x38]
jl 0x66dc06
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp dword [esp + 0x68], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
je case.0x66ca9c.83
mov ebx, dword [esp + 0x6c]
neg edx
mov dword [esp + 0x94], edx
add edi, 0x14
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
mov edx, dword [esp + 0x94]
test edx, edx
jns 0x66dcd0
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
add edi, 0xffffffec
mov ebx, dword [esp + 0x6c]
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
add edi, 0x14
jmp 0x66ca7a
mov edx, dword [esp + 0x20]
jne 0x66dcf2
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
add edi, 0xffffffec
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
add edi, 0x14
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
add edi, 0xffffffec
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
add edi, 0x14
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea eax, [ebx + eax*8]
je 0x66dd29
mov ebx, 2
jmp 0x66dd3f
push eax
call fcn.006735f0
add esp, 4
or eax, edx
je 0x66dd3d
mov ebx, 1
jmp 0x66dd3f
xor ebx, ebx
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x66dd5a
mov eax, 2
jmp 0x66dd70
push eax
call fcn.006735f0
add esp, 4
or eax, edx
je 0x66dd6e
mov eax, 1
jmp 0x66dd70
xor eax, eax
cmp byte [edi], 0x2c
lea eax, [eax + ebx*2]
jne 0x66dd82
movzx edx, byte [ebx + eax + 0x6c1ab0]
jmp 0x66dd8a
movzx edx, byte [ebx + eax + 0x6c1abc]
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
je 0x66d96d
mov ebx, dword [esp + 0x24]
mov eax, edx
cdq
mov dword [ebx + ecx*8], eax
mov ax, word [ebx + ecx*8 + 8]
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0x3e00
and ax, dx
mov edx, dword [esp + 0x20]
or ax, 4
add edi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00674600
mov eax, dword [esp + 0x2c]
add esp, 4
test byte [eax + 8], 1
jne 0x66d987
mov ecx, 4
push eax
mov word [ebx + 8], cx
call fcn.006735f0
add esp, 4
or eax, edx
jne 0x66de35
mov ecx, dword [ebp + 8]
mov eax, 1
cdq
add edi, 0x14
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ebx], eax
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [ebp + 8]
xor eax, eax
cdq
add edi, 0x14
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ebx], eax
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00674600
mov eax, dword [esp + 0x2c]
add esp, 4
test byte [eax + 8], 1
jne 0x66d987
mov ecx, 4
push eax
mov word [ebx + 8], cx
call fcn.006735f0
mov ecx, dword [ebp + 8]
not edx
not eax
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x24]
add esp, 4
mov dword [ebx], eax
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ebx, dword [ecx + 0xc4]
test ebx, ebx
je 0x66df20
mov eax, dword [ebp + 8]
mov ecx, edi
mov ebx, dword [ebx + 0x18]
sub ecx, dword [eax + 0x58]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, ecx
and ecx, 7
shr edx, 3
mov dword [esp + 0x28], edx
mov al, byte [edx + ebx]
mov byte [esp + 0x33], al
mov eax, 1
shl eax, cl
test byte [esp + 0x33], al
jne 0x66cada
mov al, 1
shl al, cl
or al, byte [esp + 0x33]
mov ecx, dword [ebp + 8]
mov byte [edx + ebx], al
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x58]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
add edi, 0x14
jmp 0x66ca7a
mov eax, dword [ecx + 0x58]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x66cadd
mov eax, dword [ecx + 0x58]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
add edi, 0x14
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x66df61
mov ecx, dword [edi + 0xc]
jmp 0x66df8c
push eax
call fcn.006751a0
fldz
add esp, 4
fucompp
fnstsw ax
test ah, 0x44
jnp 0x66df7c
mov ecx, 1
jmp 0x66df7e
xor ecx, ecx
cmp byte [edi], 0x16
jne 0x66df8c
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
mov ecx, dword [ebp + 8]
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x66d987
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00674600
add esp, 4
jmp 0x66cada
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x70], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0066c5f0
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
mov ebx, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + 0x1c]
mov esi, dword [edx + 0x48]
cmp eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], esi
je 0x66e189
cmp byte [edx + 2], 0
je 0x66e0dc
cmp byte [edx], 3
jne 0x66e0bc
mov eax, dword [edx + 0x20]
lea esi, [edx + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [esi], eax
mov dword [edx + 0x50], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*8 + 0x10]
mov dword [edx + 0x4c], eax
jmp 0x66e112
push ecx
call fcn.00674600
mov esi, dword [esp + 0x20]
add esp, 4
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov esi, dword [edx + 0x28]
push esi
call fcn.0062d130
mov ecx, dword [esp + 0x74]
mov eax, dword [esi + 0x24]
mov dword [ecx + 0x50], eax
add ecx, 0x54
push ecx
push esi
call fcn.00644260
mov edx, dword [esp + 0x7c]
add esp, 0xc
mov dword [edx + 0x4c], eax
mov eax, dword [edx + 0x50]
cmp eax, dword [ebx + 0x64]
ja 0x671221
lea esi, [edx + 0x54]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [edx + 0x1c], eax
mov ecx, dword [edx + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x66e134
mov ecx, dword [esp + 0x44]
movzx eax, al
mov dword [ecx], eax
mov eax, 1
jmp 0x66e14c
push dword [esp + 0x44]
push ecx
call fcn.006576d0
mov edx, dword [esp + 0x78]
add esp, 8
mov ecx, dword [esp + 0x44]
movzx eax, al
movzx eax, al
mov dword [edx + 0x30], eax
xor eax, eax
mov word [edx + 0x3a], ax
mov eax, dword [esi]
cmp eax, dword [ecx]
jae 0x66e292
mov dword [edx + 0x4c], 0
mov dword [esi], 0
mov esi, dword [esp + 0x44]
mov eax, dword [esi]
cmp eax, 0x18003
ja 0x66e39b
cmp eax, dword [edx + 0x50]
ja 0x66e39b
movzx eax, word [edx + 0x3a]
mov ecx, dword [esp + 0x84]
cmp eax, ecx
jg 0x66e438
mov eax, dword [edx + 0x30]
cmp eax, dword [esi]
jae 0x66e3ca
mov eax, dword [edx + 0x4c]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x66e22c
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x168]
push eax
push dword [esi]
push 0
push dword [edx + 0x28]
call fcn.00674090
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
movzx ecx, word [edx + 0x3a]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x5c], 0
mov eax, dword [esi + ecx*4]
mov esi, dword [edx + 0x30]
add esi, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x38], eax
lea eax, [ecx + 0x16]
lea eax, [edx + eax*4]
mov dword [esp + 0x2c], eax
movzx ecx, byte [esi]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xac], ecx
cmp ecx, 0x80
jae 0x66e29b
movzx eax, cl
inc esi
movzx eax, byte [eax + 0x6c0e48]
cdq
add dword [esp + 0x68], eax
adc dword [esp + 0x5c], edx
mov edx, dword [esp + 0x68]
jmp 0x66e2d1
mov eax, dword [edx + 0x4c]
mov esi, dword [esp + 0x44]
jmp 0x66e228
lea eax, [esp + 0xac]
push eax
push esi
call fcn.006576d0
mov ecx, dword [esp + 0xb4]
movzx eax, al
push ecx
add esi, eax
mov dword [esp + 0x48], ecx
call fcn.00675d10
mov edx, dword [esp + 0x74]
add esp, 0xc
add edx, eax
mov dword [esp + 0x68], edx
adc dword [esp + 0x5c], 0
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
add dword [esp + 0x2c], 4
mov dword [eax], ecx
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
mov dword [ebx + eax*4], edx
mov ebx, dword [esp + 0x6c]
cmp eax, dword [esp + 0x84]
jg 0x66e305
cmp esi, dword [esp + 0x38]
jb 0x66e262
jmp 0x66e30b
cmp esi, dword [esp + 0x38]
jb 0x66e325
cmp esi, dword [esp + 0x38]
ja 0x66e343
mov ebx, dword [esp + 0x70]
cmp edx, dword [ebx + 0x50]
mov ebx, dword [esp + 0x6c]
jne 0x66e343
cmp dword [esp + 0x5c], 0
jne 0x66e343
cmp dword [esp + 0x5c], 0
mov ebx, dword [esp + 0x70]
mov ebx, dword [ebx + 0x50]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x6c]
jb 0x66e352
ja 0x66e343
cmp edx, dword [esp + 0x28]
jbe 0x66e352
mov eax, dword [esp + 0x44]
cmp dword [eax], 0
jne 0x66e381
mov esi, dword [esp + 0x38]
xor eax, eax
mov edx, dword [esp + 0x70]
sub esi, dword [esp + 0x4c]
mov word [edx + 0x3a], ax
mov dword [edx + 0x30], esi
cmp dword [edx + 0x4c], 0
jne 0x66e3d7
lea eax, [esp + 0x168]
push eax
call fcn.00674540
mov ecx, dword [esp + 0x40]
add esp, 4
mov edx, dword [esp + 0x70]
jmp 0x66e3d7
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x4c], 0
jne 0x66e39b
lea eax, [esp + 0x168]
push eax
call fcn.00674540
add esp, 4
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x671fc0
mov esi, dword [esp + 0x1c]
lea edi, [edx - 0x14]
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x20]
lea edi, [edi + eax*4]
mov ebx, dword [esp + 0x6c]
add edi, 0x14
jmp 0x66ca7a
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xac], ecx
movzx eax, word [edx + 0x3a]
cmp eax, dword [esp + 0x84]
jg 0x66e447
cmp byte [edi + 1], 0xf5
jne 0x66e415
push 0x800
push dword [edi + 0x10]
push dword [esp + 0x48]
call fcn.006749b0
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push dword [esp + 0x40]
call fcn.00674600
mov esi, dword [esp + 0x20]
add esp, 4
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [edx + ecx*4 + 0x58]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xac], ecx
mov eax, dword [esp + 0x40]
mov esi, 0x2460
test word [eax + 8], si
mov esi, dword [esp + 0x44]
je 0x66e46b
push eax
call fcn.00674600
mov ecx, dword [esp + 0x40]
add esp, 4
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x84]
mov eax, dword [edx + 0x54]
cmp eax, dword [esi + ebx*4 + 4]
mov ebx, dword [esp + 0x6c]
jb 0x66e54b
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x84]
add eax, dword [esi + edx*4]
mov dword [esp + 0x28], eax
cmp ecx, 0xc
jae 0x66e4ba
push dword [esp + 0x40]
push ecx
push eax
call fcn.006759c0
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
mov al, byte [esp + 0x64]
lea esi, [ecx - 0xc]
mov ecx, dword [esp + 0x40]
shr esi, 1
mov byte [ecx + 0xa], al
lea eax, [esi + 2]
mov dword [ecx + 0xc], esi
cmp dword [ecx + 0x18], eax
jge 0x66e4f8
push 0
push eax
mov edx, 1
push ecx
mov word [ecx + 8], dx
call fcn.00674100
add esp, 0xc
test eax, eax
jne 0x66e73b
mov ecx, dword [esp + 0x40]
jmp 0x66e4fe
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push dword [esp + 0x2c]
push dword [ecx + 0x10]
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
and eax, 1
add edi, 0x14
mov ax, word [eax*2 + 0x6c1de8]
mov word [ecx + 8], ax
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov eax, dword [esp + 0x40]
mov bl, byte [esp + 0x64]
mov byte [eax + 0xa], bl
movzx eax, word [edi + 2]
mov ebx, dword [esp + 0x6c]
test al, 0xc0
je 0x66e570
cmp ecx, 0xc
jb 0x66e56c
test cl, 1
je 0x66e57d
test al, al
js 0x66e57d
push ecx
call fcn.00675d10
add esp, 4
test eax, eax
jne 0x66e5a6
push dword [esp + 0x40]
push ecx
push 0xb2e450
call fcn.006759c0
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x8c]
push dword [esi + eax*4]
push dword [edx + 0x28]
call fcn.00674090
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ebx
push eax
push dword [ebx + 0x10]
call fcn.006759c0
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [ebp + 8]
mov eax, 0xefff
and word [ebx + 8], ax
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
mov ebx, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [ebx]
mov dword [esp + 0x48], eax
lea esp, [esp]
push dword [esp + 0x64]
push eax
push esi
call fcn.0060b720
mov eax, dword [esp + 0x54]
lea ebx, [ebx + 1]
mov al, byte [ebx]
add esp, 0xc
add esi, 0x28
mov dword [esp + 0x48], eax
test al, al
jne 0x66e620
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
mov esi, dword [edi + 0x10]
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x68], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
movzx edx, byte [eax + 0x8f]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x2c], edx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
test esi, esi
je 0x66e6fa
mov al, byte [esi]
mov ebx, ecx
mov dword [esp + 0x48], eax
lea ebx, [ebx]
push dword [esp + 0x64]
push eax
push ebx
call fcn.0060b720
mov eax, dword [esp + 0x54]
lea esi, [esi + 1]
mov al, byte [esi]
add esp, 0xc
add ebx, 0x28
mov dword [esp + 0x48], eax
test al, al
jne 0x66e6d0
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov edi, edi
lea eax, [esp + 0xbc]
push eax
push edx
push esi
call fcn.00675bc0
mov ecx, 0x4000
mov dword [esp + 0x54], eax
add esp, 0xc
mov dword [esi + 0x1c], eax
test word [esi + 8], cx
je 0x66e797
mov ecx, dword [esp + 0x38]
or ecx, dword [esp + 0x4c]
je 0x66e77f
push esi
call fcn.00673f80
add esp, 4
test eax, eax
je 0x66e793
mov ecx, dword [ebp + 8]
cmp byte [ebx + 0x49], 0
jne 0x66e767
cmp byte [ebx + 0x4a], 0
jne 0x66e767
cmp dword [ebx + 0xac], 0
mov byte [ebx + 0x49], 1
jle 0x66e761
mov dword [ebx + 0x100], 1
inc dword [ebx + 0x108]
push 0x6a54f8
push ecx
call fcn.0066c950
add esp, 8
mov ecx, 7
jmp 0x66d7d5
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [esp + 0x5c], eax
adc dword [esp + 0x3c], edx
sub dword [esp + 0xbc], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0xbc]
mov dword [esp + 0x38], ecx
adc dword [esp + 0x4c], 0
cmp eax, 0x7f
ja 0x66e7b7
mov eax, 1
jmp 0x66e7c2
push 0
push eax
call fcn.0066baa0
add esp, 8
mov ecx, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], ecx
cmp esi, dword [esp + 0x68]
je 0x66e7de
mov edx, dword [esp + 0x2c]
sub esi, 0x28
jmp 0x66e700
cmp ecx, 0x7e
jle 0x66e80c
mov eax, ecx
cdq
push edx
push eax
call fcn.0066baa0
mov esi, eax
mov eax, dword [esp + 0x4c]
add eax, esi
mov dword [esp + 0x4c], eax
cdq
push edx
push eax
call fcn.0066baa0
mov ecx, dword [esp + 0x54]
add esp, 0x10
cmp esi, eax
jge 0x66e811
inc ecx
mov dword [esp + 0x44], ecx
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mov edx, ecx
mov dword [esp + 0x50], ecx
add edx, dword [esp + 0x38]
mov ecx, eax
mov esi, edx
mov dword [esp + 0x2c], eax
adc ecx, dword [esp + 0x4c]
add esi, dword [esp + 0x5c]
mov eax, dword [ebx + 0x64]
adc ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], edx
cdq
cmp ecx, edx
jg 0x671221
jl 0x66e850
cmp esi, eax
ja 0x671221
push dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
push esi
call fcn.00673ed0
add esp, 8
test eax, eax
jne 0x66e73b
mov ecx, dword [esp + 0x44]
mov edi, dword [esi + 0x10]
cmp ecx, 0x80
jae 0x66e881
mov byte [edi], cl
mov eax, 1
jmp 0x66e892
push dword [esp + 0x2c]
push dword [esp + 0x54]
push edi
call fcn.006619a0
add esp, 0xc
mov ebx, dword [esp + 0x68]
movzx esi, al
lea esp, [esp]
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x66e8b5
mov byte [esi + edi], bl
mov eax, 1
jmp 0x66e8c4
push 0
lea eax, [esi + edi]
push ebx
push eax
call fcn.006619a0
add esp, 0xc
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x44]
push ebx
mov ebx, dword [esp + 0x6c]
add eax, edi
push ebx
push eax
call fcn.00675b60
add dword [esp + 0x50], eax
add ebx, 0x28
add esp, 0xc
mov dword [esp + 0x68], ebx
cmp ebx, dword [esp + 0x40]
jbe 0x66e8a0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x3c]
je 0x66d987
mov ebx, dword [esp + 0x6c]
mov eax, 0x4010
mov dword [edx], ecx
add edi, 0x14
mov ecx, dword [ebp + 8]
mov word [edx + 8], ax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
mov esi, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x100]
push ecx
push dword [eax + 0x28]
call fcn.006421f0
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x672490
push edi
push esi
call fcn.00634120
mov ecx, dword [esp + 0x108]
add esp, 8
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x104]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], eax
test ecx, ecx
jne 0x66ea94
cmp dword [ebx + 0xa8], ecx
jg 0x671fd4
push eax
call fcn.00667910
mov ecx, dword [ebx + 0x1bc]
mov esi, eax
add ecx, dword [ebx + 0x1b8]
push ecx
push 0
push ebx
mov dword [esp + 0x60], esi
call fcn.00677870
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
push ecx
lea eax, [esi + 0x21]
push eax
push ebx
call fcn.006478f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x66cbd6
mov ecx, dword [esp + 0x50]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [esp + 0x30]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
cmp byte [ebx + 0x47], 0
je 0x66ea44
mov byte [ebx + 0x47], 0
mov byte [ebx + 0x4f], 1
jmp 0x66ea4a
inc dword [ebx + 0x1b8]
mov eax, dword [ebx + 0x1b0]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x1c0]
mov dword [ebx + 0x1b0], esi
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x1c4]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x1c8]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x1cc]
mov ebx, dword [esp + 0x6c]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x1c]
jmp 0x66ca7a
mov esi, dword [ebx + 0x1b0]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], esi
push eax
test esi, esi
je 0x672045
push dword [esi]
call fcn.006678a0
add esp, 8
test eax, eax
je 0x66eac8
inc dword [esp + 0x3c]
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x2c]
jmp 0x66eaa0
cmp dword [ebx + 0xa8], 0
mov edx, dword [esp + 0x5c]
jle 0x66eade
cmp edx, 1
je 0x671ff3
cmp dword [esi + 0x18], 0
jne 0x66eb3a
cmp byte [ebx + 0x4f], 0
je 0x66eb3a
mov dword [esp + 0x2c], 1
cmp edx, 1
jne 0x66eb42
mov esi, dword [ebp + 8]
push edx
push esi
call fcn.0066c1d0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x672572
push esi
mov byte [ebx + 0x47], 1
call fcn.006730c0
add esp, 4
cmp eax, 5
je 0x672012
mov byte [ebx + 0x4f], 0
mov esi, dword [esi + 0x28]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x28]
jmp 0x66ec40
mov dword [esp + 0x2c], 0
mov eax, dword [ebx + 0x1b8]
sub eax, dword [esp + 0x3c]
dec eax
mov dword [esp + 0x3c], eax
cmp edx, 2
jne 0x66ebca
mov ecx, dword [ebx + 0x18]
and ecx, 1
mov dword [esp + 0x28], 0
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x38], ecx
jle 0x66ebd2
xor eax, eax
test ecx, ecx
sete al
xor ecx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
nop
push eax
mov eax, dword [ebx + 0x10]
push 0x204
push dword [ecx + eax + 4]
call fcn.00644a60
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
inc eax
add ecx, 0x10
mov dword [esp + 0x28], eax
cmp eax, dword [ebx + 0x14]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], ecx
jl 0x66eb80
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
jmp 0x66ebd2
mov dword [esp + 0x38], 0
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x28], 0
jle 0x66ec26
xor ecx, ecx
mov dword [esp + 0x48], ecx
push eax
mov eax, dword [ebx + 0x10]
push edx
push dword [ecx + eax + 4]
call fcn.006444e0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
inc eax
mov edx, dword [esp + 0x5c]
add ecx, 0x10
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], ecx
jl 0x66ebe6
cmp dword [esp + 0x38], 0
je 0x66ec40
push ebx
call fcn.00649800
push ebx
call fcn.006622c0
add esp, 8
or dword [ebx + 0x18], 1
cmp dword [ebx + 0x1b0], esi
je 0x66ecab
jmp 0x66ec50
cmp dword [ebx + 0x1d0], 0
mov ecx, dword [ebx + 0x1b0]
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x1b0], eax
je 0x66ec74
push ecx
push ebx
call fcn.006311f0
add esp, 8
jmp 0x66ec9d
cmp ecx, dword [ebx + 0x128]
jb 0x66ec94
cmp ecx, dword [ebx + 0x12c]
jae 0x66ec94
mov eax, dword [ebx + 0x124]
mov dword [ecx], eax
mov dword [ebx + 0x124], ecx
jmp 0x66ec9d
push ecx
call fcn.006014a0
add esp, 4
dec dword [ebx + 0x1b8]
cmp dword [ebx + 0x1b0], esi
jne 0x66ec50
mov ecx, dword [esp + 0x5c]
cmp ecx, 1
jne 0x66ece8
mov eax, dword [esi + 0x18]
push esi
push ebx
mov dword [ebx + 0x1b0], eax
call fcn.00647820
add esp, 8
cmp dword [esp + 0x2c], 0
jne 0x66ed18
dec dword [ebx + 0x1b8]
mov ecx, dword [esp + 0x3c]
push ecx
push dword [esp + 0x60]
push ebx
call fcn.00677870
jmp 0x67148d
cmp dword [esp + 0x2c], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1c0], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x1c4], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x1c8], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x1cc], eax
je 0x66ecd4
cmp ecx, 2
je 0x66ecd4
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x66d7d9
mov edx, dword [esp + 0x20]
mov esi, ecx
mov ecx, dword [ebp + 8]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov edx, dword [edi + 8]
test edx, edx
je 0x66ed4d
test dword [ebx + 0x1c], 0x100000
jne 0x672064
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov dword [esp + 0x50], esi
test esi, esi
je 0x66ee42
push edx
push esi
call fcn.00641960
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x67206e
cmp dword [edi + 8], eax
je 0x66ee17
mov ecx, dword [ebp + 8]
test byte [ecx + 0x94], 0x40
je 0x66ee17
cmp byte [ebx + 0x47], al
je 0x66eda4
cmp dword [ebx + 0xa4], 1
jle 0x66ee17
cmp dword [ecx + 0x30], 0
jne 0x66edbf
mov eax, dword [ebx + 0x1b8]
inc dword [ebx + 0x1bc]
add eax, dword [ebx + 0x1bc]
mov dword [ecx + 0x30], eax
mov eax, dword [ecx + 0x30]
dec eax
push eax
push 0
push ebx
call fcn.00677870
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x66edf0
mov eax, dword [ebp + 8]
push dword [eax + 0x30]
push esi
call fcn.00641900
mov esi, eax
add esp, 8
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x50]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 0x1c0]
mov dword [ecx + 0x48], eax
mov eax, dword [ebx + 0x1c4]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0x1c8]
mov dword [ecx + 0x50], eax
mov eax, dword [ebx + 0x1cc]
mov dword [ecx + 0x54], eax
lea eax, [esp + 0xec]
push eax
push 1
push esi
call fcn.006429c0
mov ecx, dword [edi + 4]
add esp, 0xc
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov esi, dword [esp + 0xec]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x66ee4d
xor esi, esi
xor eax, eax
mov dword [esp + 0xec], esi
cmp word [edi + 2], 0
je 0x66ee66
cmp esi, dword [edi + 0xc]
jne 0x6720a2
cmp eax, dword [edi + 0x10]
jne 0x6720a2
mov ecx, dword [esp + 0x1c]
jmp 0x671496
mov ecx, dword [edi + 4]
lea eax, [esp + 0x12c]
push eax
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [edi + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.006429c0
push edi
push dword [ebp + 8]
call fcn.00634120
mov ebx, dword [esp + 0x80]
mov ecx, eax
mov eax, dword [esp + 0x140]
add esp, 0x14
cdq
add edi, 0x14
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov esi, dword [edi + 4]
push dword [edi + 0xc]
shl esi, 4
add esi, dword [ebx + 0x10]
push dword [edi + 8]
push dword [esi + 4]
call fcn.00644b90
mov ecx, eax
add esp, 0xc
mov eax, dword [edi + 8]
mov dword [esp + 0x1c], ecx
cmp eax, 1
jne 0x66eef2
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
or dword [ebx + 0x18], 1
jmp 0x66ef00
cmp eax, 2
jne 0x66ef04
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
mov ecx, dword [esp + 0x1c]
cmp dword [edi + 4], 1
jne 0x671496
push ebx
call fcn.00649800
mov eax, dword [ebp + 8]
add esp, 4
and dword [eax + 0x94], 0xfffffffe
jmp 0x671496
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x66ef42
mov eax, dword [edx + 0x34]
cmp eax, dword [edi + 8]
je 0x66f04b
mov ecx, dword [ebp + 8]
mov al, byte [esp + 0x33]
test byte [ecx + 0x94], 1
jne 0x6720f6
mov ecx, dword [edi + 0xc]
mov esi, dword [edi + 8]
mov dword [esp + 0x48], ecx
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [esp + 0x50], 0
mov dword [esp + 0x2c], 0
mov edx, dword [ecx + 4]
mov dword [esp + 0x38], edx
cmp al, 0x69
jne 0x66efa8
mov eax, dword [ecx + 0xc]
movzx edx, word [edi + 2]
mov ecx, dword [ebp + 8]
and edx, 8
or edx, 4
mov al, byte [eax + 0x4c]
mov dword [esp + 0x28], edx
cmp al, byte [ecx + 0x8f]
jae 0x66efb0
mov byte [ecx + 0x8f], al
jmp 0x66efb0
mov dword [esp + 0x28], 0
test byte [edi + 2], 0x10
je 0x66efcb
mov ecx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00674310
mov esi, dword [esi]
add esp, 4
mov al, byte [edi + 1]
cmp al, 0xf7
jne 0x66efdf
mov eax, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
movzx eax, word [eax + 8]
jmp 0x66efec
cmp al, 0xfd
jne 0x66efe8
mov eax, dword [edi + 0x10]
jmp 0x66efec
mov eax, dword [esp + 0x50]
push 0
push dword [esp + 0x4c]
push eax
push dword [edi + 4]
push dword [ebp + 8]
call fcn.0060a4e0
add esp, 0x14
mov dword [esp + 0x50], eax
test eax, eax
je 0x66e73b
push dword [eax + 0x28]
or dword [eax + 8], 4
push dword [esp + 0x30]
mov byte [eax + 2], 1
push dword [esp + 0x30]
mov dword [eax + 0x34], esi
push esi
push dword [esp + 0x48]
call fcn.006423b0
mov edx, dword [esp + 0x64]
mov esi, eax
mov eax, dword [esp + 0x40]
add esp, 0x14
mov dword [esp + 0x1c], esi
mov dword [edx + 0x2c], eax
cmp byte [edi + 1], 0xf7
setne al
mov byte [edx + 4], al
mov cl, byte [edi + 2]
mov eax, dword [edx + 0x28]
and cl, 3
mov byte [eax + 3], cl
mov ecx, dword [esp + 0x1c]
jmp 0x671496
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 8]
push 0
push 0xffffffffffffffff
mov eax, dword [edx + 0x70]
mov esi, dword [eax + ecx*4]
movsx eax, word [esi + 0x38]
push eax
push dword [edi + 4]
push edx
call fcn.0060a4e0
mov edx, eax
add esp, 0x14
test edx, edx
je 0x66e73b
push dword [edx + 0x28]
or dword [edx + 8], 1
mov byte [edx + 2], 1
mov ecx, dword [esi + 0x2c]
push ecx
mov dword [edx + 0x2c], ecx
mov al, byte [esi + 4]
push 4
mov byte [edx + 4], al
push 1
push dword [esi + 0xc]
call fcn.006423b0
mov ecx, dword [ebp + 8]
mov esi, eax
mov edx, dword [esp + 0x34]
add esp, 0x14
mov ebx, dword [esp + 0x6c]
add edi, 0x14
mov dword [esp + 0x1c], esi
jmp 0x66ca7a
push 0
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
push ecx
call fcn.0060a4e0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x66e73b
or dword [esi + 8], 1
lea ecx, [esi + 0xc]
mov byte [esi + 2], 1
movzx eax, word [edi + 2]
push 0x41e
or eax, 5
push eax
push ecx
push ebx
push 0
push dword [ebx]
call fcn.00643ae0
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
push 1
push dword [esi + 0xc]
call fcn.00641960
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [edi + 0x10]
mov dword [esp + 0x50], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x66f191
movzx eax, word [edi + 2]
or eax, 2
push eax
lea eax, [esp + 0x120]
push eax
push dword [esi + 0xc]
call fcn.00642360
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66f18b
push dword [esi + 0x28]
push dword [esp + 0x54]
push 4
push dword [esp + 0x128]
push dword [esi + 0xc]
call fcn.006423b0
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x1c], ecx
mov byte [esi + 4], 0
jmp 0x66f1af
push dword [esi + 0x28]
push 0
push 4
push 1
push dword [esi + 0xc]
call fcn.006423b0
mov ecx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov ecx, dword [ebp + 8]
xor eax, eax
cmp word [edi + 2], 8
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
setne al
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
add edi, 0x14
mov esi, dword [esp + 0x1c]
jmp 0x66ca7a
push 1
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
push ecx
call fcn.0060a4e0
add esp, 0x14
test eax, eax
je 0x66e73b
mov ecx, dword [edi + 0x10]
push eax
mov dword [eax + 0x2c], ecx
push dword [edi + 0xc]
push ebx
call fcn.006760a0
jmp 0x67148d
mov ecx, dword [edi + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x70]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp + 8]
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
je 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push 3
push 0xffffffffffffffff
push dword [edi + 0xc]
push dword [edi + 4]
push ecx
call fcn.0060a4e0
add esp, 0x14
test eax, eax
je 0x66e73b
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov byte [eax + 2], 1
mov ecx, dword [edi + 8]
add edi, 0x14
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp + 8]
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0xb2684c
jmp 0x66ca7a
mov ebx, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x70]
push dword [eax + ecx*4]
push ebx
call fcn.00672f70
mov ecx, dword [edi + 4]
add esp, 8
mov eax, dword [ebx + 0x70]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0x2c], 0
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x48], eax
cmp byte [eax + 4], 0
mov byte [eax + 2], 0
je 0x66f423
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 8]
and al, 0xe
mov dword [esp + 0x28], ecx
cmp al, 2
jne 0x66f31f
push 0
push ecx
call fcn.0060b790
mov ecx, dword [esp + 0x30]
add esp, 8
push ecx
call fcn.006735f0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
movzx eax, word [ecx + 8]
test al, 4
jne 0x66f385
test al, 8
je 0x66cada
fild qword [esp + 0xf0]
fstp qword [esp + 0x50]
fld qword [esp + 0x50]
fcom qword [ecx]
fnstsw ax
test ah, 0x41
jne 0x66f36f
mov eax, dword [esp + 0x4c]
fstp st(0)
test al, 1
je 0x66f385
dec eax
jmp 0x66f381
fcomp qword [ecx]
fnstsw ax
test ah, 5
jp 0x66f385
mov eax, dword [esp + 0x4c]
test al, 1
jne 0x66f385
inc eax
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x7c]
push eax
push 0
push edx
push dword [esp + 0xfc]
push 0
push dword [esi + 0x28]
call fcn.006434a0
mov ecx, eax
add esp, 0x18
mov eax, dword [esp + 0xf0]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x1c], ecx
mov dword [esi + 0x44], eax
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x7c]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp eax, 0x1a
jl 0x66f509
test ecx, ecx
js 0x66f4c7
jne 0x66f3f6
cmp eax, 0x1b
je 0x66f4c7
mov dword [esp + 0x7c], 0
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
je 0x66d98e
mov ebx, dword [esp + 0x6c]
add edi, 0x14
add edi, 0x14
jmp 0x66ca7a
mov esi, dword [esp + 0x48]
mov eax, dword [esi + 0x28]
test byte [eax + 3], 2
je 0x66f438
mov dword [esp + 0x2c], 1
mov eax, dword [esi + 0x2c]
test dl, 1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x130], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x138], ax
sete al
mov byte [esp + 0x13e], 0
lea eax, [eax*2 - 1]
mov byte [esp + 0x13a], al
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x134], eax
lea eax, [esp + 0x7c]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x140]
push eax
push dword [esi + 0x28]
call fcn.006434a0
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp dword [esp + 0x2c], eax
je 0x66f3c7
cmp byte [esp + 0x13e], al
jne 0x66f3c7
mov ecx, dword [esp + 0x7c]
jmp 0x66f523
push 0
push dword [esi + 0x28]
mov dword [esp + 0x84], 0
call fcn.00643a90
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x66f3fe
cmp ecx, 0x65
jne 0x66d7d9
xor esi, esi
mov dword [esp + 0x7c], 1
mov dword [esp + 0x1c], esi
jmp 0x66cada
test ecx, ecx
jg 0x66f530
jne 0x66f514
cmp eax, 0x18
je 0x66f530
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], 1
setne cl
mov dword [esp + 0x7c], ecx
test ecx, ecx
jne 0x66cad6
jmp 0x66f3fe
push 0
push dword [esi + 0x28]
mov dword [esp + 0x84], 0
call fcn.006442b0
jmp 0x66f4dc
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], edi
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jle 0x66f59e
mov eax, dword [edi + 0x2c]
lea edi, [esp + 0x1f8]
mov dword [esp + 0x1f8], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x200], ax
xor eax, eax
mov dword [esp + 0x1fc], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x48], eax
jmp 0x66f5ed
mov eax, 0x4000
test word [esi + 8], ax
je 0x66f5ba
push esi
call fcn.00673f80
add esp, 4
test eax, eax
jne 0x66e73b
push dword [edi + 0x2c]
call fcn.0066bf10
mov edi, eax
add esp, 4
mov dword [esp + 0x48], edi
test edi, edi
je 0x66e73b
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
mov esi, dword [esp + 0x34]
push dword [esi + 0x2c]
call fcn.00675740
mov ecx, dword [esp + 0x44]
add esp, 0x10
mov byte [edi + 0xa], 0
cmp byte [ecx], 0x1c
mov dword [esp + 0x28], 0
jne 0x66f627
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
jle 0x66f627
mov eax, dword [edi + 4]
add eax, 8
mov edi, edi
test byte [eax], 1
jne 0x66f61f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x66f610
jmp 0x66f627
mov dword [esp + 0x28], 1
lea eax, [esp + 0x128]
push eax
push 0
push 0
push 0
push edi
push dword [esi + 0x28]
call fcn.006434a0
mov ecx, eax
add esp, 0x18
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x66f65d
push eax
push ebx
call fcn.00647870
mov ecx, dword [esp + 0x24]
add esp, 8
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x128]
test eax, eax
mov edi, dword [esp + 0x34]
mov dword [esi + 0x20], eax
sete cl
mov al, 1
mov byte [esi + 3], 0
sub al, cl
mov dword [esi + 0x1c], 0
mov byte [esi + 2], al
cmp byte [edi], 0x1e
mov esi, dword [esp + 0x1c]
jne 0x66f6ae
test ecx, ecx
mov ecx, dword [ebp + 8]
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp dword [esp + 0x28], 0
jne 0x66cada
test ecx, ecx
mov ecx, dword [ebp + 8]
je 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
movzx eax, word [ebx + 8]
test al, 4
jne case.0x66ca9c.32
test al, 8
jne 0x66f6fe
test al, 2
je 0x66f70a
push 1
push ebx
call fcn.0060b790
add esp, 8
jmp 0x66f707
push ebx
call fcn.00673630
add esp, 4
mov ecx, dword [ebp + 8]
test byte [ebx + 8], 4
je 0x66cadd
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0xdc], 0
mov eax, dword [eax + 0x70]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [esp + 0xdc]
push eax
push 0
push edi
push esi
push 0
push dword [ebx + 0x28]
call fcn.006434a0
mov ecx, eax
mov dword [ebx + 0x44], edi
mov eax, dword [esp + 0xf4]
add esp, 0x18
mov edi, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
mov dword [ebx + 0x40], esi
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], eax
test eax, eax
je 0x66f79d
cmp dword [edi + 8], 0
jne 0x66cad6
push 0x145a0
call fcn.00646520
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x66cbd6
mov ebx, dword [esp + 0x6c]
jmp 0x66d7d9
push edi
push ecx
call fcn.00634120
mov ebx, dword [ebp + 8]
add esp, 8
mov edx, dword [edi + 4]
mov ecx, dword [ebx + 0x70]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov edx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add edi, 0x14
jmp 0x66ca7a
xor eax, eax
xor esi, esi
push edi
push ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], esi
mov dword [esp + 0xb8], eax
call fcn.00634120
mov edx, dword [edi + 4]
add esp, 8
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x40], ecx
test byte [ecx + 8], 2
jne 0x66f8d8
lea eax, [esp + 0xb0]
push eax
push dword [ecx + 0x28]
call fcn.00643310
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp dword [esp + 0xb0], esi
je 0x66f87e
mov ecx, dword [esp + 0x40]
mov eax, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
jmp 0x66f8da
mov eax, dword [esp + 0x40]
push dword [eax + 0x28]
call fcn.00642ec0
mov esi, edx
mov dword [esp + 0x40], eax
add esp, 4
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
cmp esi, 0x7fffffff
jl 0x66f8ba
jg 0x66f8b0
cmp eax, 0xffffffff
jb 0x66f8ba
mov ecx, dword [esp + 0x40]
or dword [ecx + 8], 2
jmp 0x66f8da
mov ecx, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x3c], eax
adc esi, 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
jmp 0x66f8da
xor eax, eax
mov edx, dword [edi + 0xc]
test edx, edx
je 0x66f99c
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc4]
test edx, edx
je 0x66f917
mov eax, dword [edx + 4]
test eax, eax
je 0x66f909
lea esp, [esp]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x66f900
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*8]
jmp 0x66f924
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x2c], eax
call fcn.00674310
mov edx, dword [esp + 0x2c]
add esp, 4
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x38], ecx
cmp eax, 0xffffffff
jne 0x66f94f
cmp ecx, 0x7fffffff
je 0x66fa2d
mov ecx, dword [esp + 0x40]
test byte [ecx + 8], 2
jne 0x66fa2d
add eax, 1
mov dword [esp + 0x28], eax
adc dword [esp + 0x38], 0
cmp esi, dword [esp + 0x38]
jg 0x66f993
jl 0x66f97f
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jae 0x66f997
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
jmp 0x66f997
mov eax, dword [esp + 0x3c]
mov dword [edx], eax
mov dword [edx + 4], esi
test byte [ecx + 8], 2
je 0x66fa3f
mov dword [esp + 0x28], 0
mov edi, edi
lea eax, [esp + 0x88]
push eax
push 8
call fcn.00601be0
mov esi, dword [esp + 0x94]
lea ecx, [esp + 0xb8]
mov eax, dword [esp + 0x90]
and esi, 0x3fffffff
add eax, 1
push ecx
push 0
adc esi, 0
mov dword [esp + 0x4c], eax
push esi
push eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x58]
push 0
mov dword [esp + 0xa8], esi
push dword [eax + 0x28]
call fcn.006434a0
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp dword [esp + 0xb0], eax
jne 0x66fa37
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, 0x64
jl 0x66f9b0
mov ecx, 0xd
jmp 0x66d7d5
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
mov byte [ecx + 3], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [esp + 0x50]
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov eax, dword [edi + 8]
xor esi, esi
cmp byte [esp + 0x33], 0x74
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
jne 0x66fab3
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ebx, dword [esp + 0x24]
mov edx, dword [edx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x210], edx
jmp 0x66fac5
cdq
mov dword [esp + 0x38], eax
mov dword [esp + 0x210], eax
mov eax, edx
mov edx, dword [esp + 0x38]
cmp byte [ecx + 1], 0xfa
mov dword [esp + 0x214], eax
mov dword [esp + 0x2c], eax
jne 0x66fb0d
cmp dword [ebx + 0xe0], esi
je 0x66fb0d
movsx ecx, byte [edi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x48], eax
mov al, byte [ecx + 2]
and al, 4
movzx esi, al
neg esi
sbb esi, esi
and esi, 5
add esi, 0x12
jmp 0x66fb15
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
test byte [ecx + 2], 1
je 0x66fb21
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
test byte [ecx + 2], 0x20
je 0x66fb31
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x24], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
movzx ecx, word [ecx + 2]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8 + 0xc]
mov dword [esp + 0x224], eax
test cl, 0x10
je 0x66fb65
mov eax, dword [edi + 0x20]
mov dword [esp + 0x28], eax
jmp 0x66fb6d
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
mov ebx, 0x4000
test word [eax + edx*8 + 8], bx
mov ebx, dword [esp + 0x6c]
je 0x66fb8d
mov eax, dword [eax + edx*8]
mov dword [esp + 0x228], eax
jmp 0x66fb98
mov dword [esp + 0x228], 0
push dword [esp + 0x28]
and ecx, 0xa
mov dword [esp + 0x20c], 0
push ecx
lea eax, [esp + 0x210]
push eax
push dword [edi + 0x28]
call fcn.00642b90
mov ecx, eax
mov byte [edi + 3], 0
add esp, 0x10
mov dword [esp + 0x1c], ecx
mov dword [edi + 0x1c], 0
test ecx, ecx
jne 0x66d7d9
mov eax, dword [ebx + 0xe0]
test eax, eax
je 0x66ce83
test esi, esi
je 0x66ce83
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x3c]
push dword [ecx]
push dword [esp + 0x58]
push esi
push dword [ebx + 0xdc]
call eax
mov edi, dword [esp + 0x4c]
add esp, 0x18
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp byte [edi + 1], 0xfa
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
jne 0x66fc7e
cmp dword [ebx + 0xe0], 0
je 0x66fc7e
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
test byte [edi + 2], 2
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
je 0x66fc8c
cmp byte [esi + 4], 0
je 0x66fc8c
push dword [esi + 0x28]
call fcn.00642ec0
add esp, 4
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x66fc8c
xor eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], eax
movzx eax, byte [edi + 2]
push eax
push dword [esi + 0x28]
call fcn.006424f0
mov ecx, eax
mov dword [esi + 0x1c], 0
add esp, 8
mov dword [esp + 0x1c], ecx
mov dword [esi + 0x20], 0
test ecx, ecx
jne 0x66d7d9
test byte [esp + 0x50], 1
je 0x66cbd6
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
mov ecx, dword [ebx + 0xe0]
test ecx, ecx
je 0x671eec
mov eax, dword [esp + 0x28]
test byte [eax + 0x24], 0x20
jne 0x66cbd6
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
push dword [esp + 0x54]
push 9
push dword [ebx + 0xdc]
call ecx
mov esi, dword [esp + 0x34]
add esp, 0x18
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ecx + 0x2c]
add dword [ebx + 0x60], eax
add edi, 0x14
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x5c], eax
mov ebx, dword [esp + 0x6c]
mov dword [ecx + 0x2c], 0
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xd4], 0
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [esp + 0xd4]
push edx
push dword [edi + 0x10]
push eax
push ecx
call fcn.00675fd0
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov esi, eax
mov ecx, dword [ebp + 8]
cmp dword [esp + 0xd4], eax
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x24]
mov esi, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x70]
push edx
push dword [eax + ecx*4]
call fcn.00676530
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x672490
mov ecx, dword [edi + 0xc]
add edi, 0x14
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x1c], 0
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov edx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x28]
push eax
mov dword [esp + 0x5c], eax
call fcn.0062d130
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov ecx, dword [eax + 0x24]
cmp ecx, dword [ebx + 0x64]
ja 0x671221
push esi
push ecx
push 0
push eax
call fcn.00674090
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp dword [edi + 0xc], eax
jne 0x66cbd6
mov eax, 0x1000
test word [esi + 8], ax
je 0x66cbd6
push esi
call fcn.00674370
mov ecx, dword [ebp + 8]
add esp, 4
test eax, eax
jne 0x66e73e
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov edx, dword [edi + 4]
add esp, 8
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x50], eax
cmp byte [eax + 2], 0
je 0x66fec9
mov edx, dword [esp + 0x2c]
mov eax, 1
mov ecx, dword [ebp + 8]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
mov word [edx + 8], ax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
cmp byte [eax + 3], 0
je 0x66ff06
mov ecx, dword [eax + 0x40]
add edi, 0x14
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc8], ecx
mov eax, dword [eax + 0x44]
mov dword [esp + 0xcc], eax
mov dword [edx], ecx
mov eax, dword [esp + 0xcc]
mov ecx, dword [ebp + 8]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
cmp byte [eax], 2
jne 0x66ff6a
mov ecx, dword [eax + 0x28]
lea edx, [esp + 0xc8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x2c], eax
call fcn.006775e0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test ecx, ecx
jne 0x66d7d9
mov edx, dword [esp + 0x2c]
add edi, 0x14
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [edx], ecx
mov eax, dword [esp + 0xcc]
mov ecx, dword [ebp + 8]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
push eax
call fcn.0066c650
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x50]
cmp byte [eax + 2], cl
je 0x66ffac
mov edx, dword [esp + 0x2c]
mov eax, 1
mov ebx, dword [esp + 0x6c]
mov esi, ecx
mov ecx, dword [ebp + 8]
add edi, 0x14
mov word [edx + 8], ax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
push dword [eax + 0x28]
call fcn.00642ec0
mov esi, dword [esp + 0x20]
mov ecx, eax
mov ebx, dword [esp + 0x70]
add esp, 4
mov dword [esp + 0xcc], edx
add edi, 0x14
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc8], ecx
mov dword [edx], ecx
mov eax, dword [esp + 0xcc]
mov ecx, dword [ebp + 8]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne 0x66d987
push dword [eax + 0x28]
call fcn.00641c50
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp byte [esp + 0x33], 0x7d
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0xe4], 0
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x50], eax
mov ecx, dword [eax + 0x28]
jne 0x670061
mov dword [eax + 0x20], 0xffffffff
cmp byte [ecx], 1
je 0x66d987
lea eax, [esp + 0xe4]
push eax
push ecx
call fcn.00643310
mov edx, dword [esp + 0xec]
mov ecx, eax
mov eax, dword [esp + 0x58]
add esp, 8
mov dword [esp + 0x1c], ecx
mov byte [eax + 2], dl
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
test ecx, ecx
jne 0x66d7d9
mov esi, ecx
mov ecx, dword [ebp + 8]
cmp dword [edi + 8], esi
jle case.0x66ca9c.83
test edx, edx
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
lea eax, [esp + 0xd8]
push eax
push esi
call fcn.00642900
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp dword [esp + 0xd8], eax
jne 0x66cad6
push esi
call fcn.00644480
add esp, 4
test edx, edx
jl 0x66cbd6
jg 0x670115
test eax, eax
jb 0x66cbd6
push edx
push eax
call fcn.0065ad30
mov esi, dword [esp + 0x24]
add esp, 8
mov ecx, dword [ebp + 8]
cwde
cmp eax, dword [edi + 0xc]
jge case.0x66ca9c.83
mov dword [esp + 0xd8], 1
jmp 0x66cadd
inc dword [ecx + 0xa8]
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0xb4], 1
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xb4]
push eax
cmp byte [esi], 1
jne 0x670172
push esi
call fcn.006764c0
jmp 0x670185
push dword [esi + 0x28]
call fcn.00642900
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0xb4]
mov byte [esi + 2], al
mov esi, ecx
mov ecx, dword [ebp + 8]
test eax, eax
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
push esi
push ebx
mov dword [esp + 0x30], esi
call fcn.00676250
jmp 0x67020c
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
cmp dword [eax + ecx*4], 0
je 0x66d987
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], esi
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [esi + 0x28]
call eax
mov edi, dword [esp + 0x3c]
mov ecx, eax
mov dword [esi + 0x1c], 0
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x670236
mov ecx, dword [ebp + 8]
mov byte [esi + 2], al
movzx eax, word [edi + 2]
inc dword [ecx + eax*4 + 0xa0]
jmp 0x6719ba
cmp ecx, 0x65
jne 0x66d7d9
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x1c], esi
mov byte [eax + 2], 1
jmp 0x6719d8
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + 0x70]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x670278
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x67029e
push esi
call fcn.00673f80
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov ecx, dword [esp + 0x34]
cmp byte [ecx], 0x7e
jne 0x6702af
push esi
push edi
call fcn.006765e0
add esp, 8
jmp 0x670319
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x238], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x230], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x23c], edx
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x244], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x248], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x6702f8
mov ecx, dword [edi + 0x20]
jmp 0x6702fa
xor ecx, ecx
push ecx
and eax, 0xa
push eax
lea eax, [esp + 0x238]
push eax
push dword [edi + 0x28]
call fcn.00642b90
add esp, 0x10
mov dword [edi + 0x1c], 0
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov edi, dword [esp + 0x34]
mov esi, eax
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x1d8], eax
mov ax, word [edi + 0xc]
mov word [esp + 0x1e0], ax
mov eax, dword [edi + 8]
mov dword [esp + 0x50], ecx
mov byte [esp + 0x1e2], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1dc], eax
lea eax, [esp + 0x120]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x1e8]
push eax
push ecx
call fcn.006434a0
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp dword [esp + 0x120], eax
jne 0x6703d7
push 4
push dword [esp + 0x54]
call fcn.006424f0
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [esp + 0x1c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
push esi
call fcn.0066c650
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
cmp byte [esi + 2], al
jne 0x6704e5
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc0]
push eax
push dword [esi + 0x28]
push ebx
call fcn.00673480
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x34]
cmp byte [eax], 0x81
jne 0x6704ab
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc0]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0xc4]
mov word [ecx + 2], 0x100
mov dword [ecx + 0x44], eax
mov eax, dword [edi + 0x10]
add edi, 0x14
mov dword [ecx + 0x24], esi
mov esi, dword [esp + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
push eax
push dword [ebp + 8]
call fcn.00634120
mov ecx, dword [esp + 0xc8]
add esp, 8
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00674600
mov esi, dword [esp + 0x20]
add esp, 4
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
cmp byte [esp + 0x33], 0x28
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x70]
mov dword [esp + 0xa4], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x1e8], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x1f0], ax
sbb al, al
mov byte [esp + 0x1f2], al
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1ec], eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x1ec]
push eax
push ecx
push ebx
call fcn.006733b0
mov ecx, eax
add esp, 0x10
test byte [edi], 1
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x1c], ecx
jne 0x670591
neg eax
jmp 0x670592
inc eax
mov dword [esp + 0xa4], eax
test ecx, ecx
jne 0x66d7d9
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
test eax, eax
jg 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov esi, eax
add esp, 8
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebx + 0xb0]
inc ecx
cmp dword [ebx + 0xa4], ecx
jg 0x672100
mov eax, dword [esp + 0x34]
lea edx, [esp + 0xb8]
push edx
mov dword [esp + 0xbc], 0
mov ecx, dword [eax + 0xc]
push dword [eax + 4]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], ecx
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00642830
mov edi, dword [esp + 0xc4]
mov ecx, eax
mov eax, 4
mov dword [esp + 0x28], ecx
mov word [esi + 8], ax
add esp, 0xc
mov eax, edi
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
test ecx, ecx
jne 0x66d7d9
test edi, edi
mov edi, dword [esp + 0x34]
je 0x66cbd6
push dword [edi + 4]
push dword [esp + 0xbc]
push dword [esp + 0x30]
push ebx
call fcn.00662ac0
mov al, byte [esp + 0x38]
add esp, 0x10
mov esi, dword [esp + 0x1c]
add al, 1
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov byte [esp + 0x77], al
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
lea ecx, [esp + 0xe0]
neg eax
mov dword [esp + 0xe0], 0
sbb eax, eax
and eax, ecx
push eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 8]
push dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00641c70
mov edi, dword [esp + 0x40]
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x1c], ecx
cmp dword [edi + 0xc], 0
je 0x671496
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0xe0]
add dword [edx + 0x2c], eax
mov edx, dword [edi + 0xc]
test edx, edx
jle 0x671496
mov esi, dword [esp + 0x24]
lea ecx, [edx + edx*4]
cdq
add dword [esi + ecx*8], eax
adc dword [esi + ecx*8 + 4], edx
mov ecx, dword [esp + 0x1c]
jmp 0x671496
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x67072f
push dword [eax + 0x28]
push ebx
call fcn.006762e0
mov ecx, dword [ebp + 8]
add esp, 8
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [eax + 0x28]
push 0
push dword [eax + 0x3c]
push dword [eax + 8]
call fcn.00641c70
jmp 0x67148d
push edi
push ecx
call fcn.00634120
mov esi, eax
mov dword [esp + 0xf0], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
lea eax, [esp + 0xf4]
add ecx, dword [ebx + 0x10]
push eax
push dword [ecx + 4]
call fcn.00642360
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x6c]
add edi, 0x14
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x20]
mov dword [esi], eax
mov esi, ecx
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
inc byte [ebx + 0x52]
push 0
push 0
push 0
push dword [edi + 0x10]
push ebx
call fcn.005fb4c0
add esp, 0x14
dec byte [ebx + 0x52]
jmp 0x671490
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
add eax, 0x6c
push dword [edi + 0x10]
mov dword [esp + 0x14c], ecx
add ecx, ecx
mov dword [esp + 0x148], eax
mov eax, dword [ebx + 0x10]
push str.sqlite_master
mov dword [esp + 0x148], ebx
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0065af10
add esp, 0x14
mov dword [esp + 0x50], eax
test eax, eax
je 0x672118
push 0
lea ecx, [esp + 0x144]
mov byte [ebx + 0x9d], 1
push ecx
push fcn.00658140
push eax
push ebx
mov dword [esp + 0x160], 0
call fcn.005fb4c0
mov esi, eax
add esp, 0x14
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x670854
mov esi, dword [esp + 0x14c]
mov dword [esp + 0x1c], esi
push dword [esp + 0x50]
push ebx
call fcn.00647870
add esp, 8
mov byte [ebx + 0x9d], 0
test esi, esi
jne 0x672120
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push dword [edi + 4]
push ebx
call fcn.0063fa90
add esp, 8
jmp 0x671490
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.00668680
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.006685e0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.006686f0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x24]
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [esp + 0x50], edx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x118]
push eax
mov eax, esi
mov eax, dword [eax + edx*8]
inc eax
push eax
push dword [edi + 8]
lea eax, [ecx + 4]
movzx ecx, word [edi + 2]
push eax
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00642ee0
push dword [esp + 0x40]
mov dword [esp + 0x40], eax
call fcn.00674600
mov eax, dword [esp + 0x130]
add esp, 0x18
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x670994
cmp dword [esp + 0x28], 0
je 0x66e73b
mov ecx, dword [esp + 0x50]
dec eax
mov ebx, dword [esp + 0x24]
push fcn.006014a0
push 1
push 0xffffffffffffffff
push dword [esp + 0x34]
cdq
sub dword [ebx + ecx*8], eax
push dword [esp + 0x3c]
sbb dword [ebx + ecx*8 + 4], edx
call fcn.00674740
add esp, 0x14
movzx eax, byte [esp + 0x64]
push eax
push dword [esp + 0x30]
call fcn.0066bfa0
mov ecx, dword [ebp + 8]
add esp, 8
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x50], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x28], eax
jne 0x6709f6
push ecx
call fcn.00674670
mov ecx, dword [esp + 0x54]
add esp, 4
test byte [ecx + 8], 0x20
je 0x66e73b
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
push dword [ecx]
call fcn.00662c50
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea eax, [ecx + eax*8]
mov dword [esp + 0x50], eax
je 0x670a79
lea ecx, [esp + 0x150]
push ecx
push dword [eax]
call fcn.00662ce0
add esp, 8
test eax, eax
je 0x670a75
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x154]
push dword [esp + 0x154]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.006745c0
add esp, 0xc
jmp 0x6719d8
mov eax, dword [esp + 0x50]
push eax
call fcn.00674600
add esp, 4
jmp case.0x66ca9c.13
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x28], edx
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x48], eax
jne 0x670acf
push ecx
call fcn.00674670
mov ecx, dword [esp + 0x30]
add esp, 4
test byte [ecx + 8], 0x20
je 0x66e73b
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
test edx, edx
je 0x670af7
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
push edx
push dword [ecx]
call fcn.00662d40
add esp, 0x10
test eax, eax
jne 0x66cada
mov edx, dword [esp + 0x28]
test edx, edx
js 0x66d987
mov eax, dword [esp + 0x48]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
mov eax, dword [esp + 0x34]
push dword [eax]
call fcn.00662c50
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp word [edi + 2], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x2c], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x38], ecx
je 0x670b74
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xc4]
test eax, eax
je 0x670b70
jmp 0x670b60
cmp dword [eax + 0x1c], ecx
je 0x66d987
mov eax, dword [eax + 4]
test eax, eax
jne 0x670b60
mov ecx, dword [esp + 0x38]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xcc]
cmp eax, dword [ebx + 0x8c]
jge 0x67213b
test byte [ecx + 8], 0x40
jne 0x670d3d
mov ecx, dword [edx + 0xc]
mov edi, dword [edx + 8]
add edi, ecx
test ecx, ecx
jne 0x670ba0
inc edi
lea eax, [edi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push ebx
call fcn.006479b0
add esp, 0xc
mov dword [esp + 0x28], eax
test eax, eax
je 0x66e73b
push dword [esp + 0x38]
call fcn.00674540
mov eax, dword [esp + 0x3c]
mov ecx, 0x40
add esp, 4
mov word [eax + 8], cx
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x3c], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x40], eax
mov eax, 0x66666667
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x60]
imul ecx
mov ecx, dword [ebp + 8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x28]
mov dword [edx + 0x30], eax
mov eax, dword [ecx + 0x5c]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x38], eax
mov eax, dword [ecx + 0x70]
mov dword [edx + 0x14], eax
mov eax, dword [ecx + 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ecx + 0x58]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0x88]
mov dword [edx + 0x34], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x1c], eax
lea eax, [edi + 2]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
lea eax, [edx + 0x50]
cmp eax, ecx
je 0x670c7e
mov edi, pe_nt_image_headers32
lea ecx, [ecx]
mov word [eax + 8], di
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x670c70
mov edi, dword [ebp + 8]
inc dword [edi + 0xcc]
lea ecx, [edx + 0x50]
mov eax, dword [edi + 0xc4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [edx + 0x44], eax
mov eax, dword [edi]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x5c]
mov dword [edx + 0x48], eax
mov eax, dword [edi + 0xd8]
mov dword [edx + 0x28], eax
mov dword [edi + 0xc4], edx
mov dword [edi + 0x5c], ecx
mov dword [edi + 0xd8], 0
mov dword [edi + 0x2c], 0
mov eax, dword [edx + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [edx + 0x40]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [edi + 0x70], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.MSVCRT.dll_memset
mov edx, dword [ebx]
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp + 0x60], edx
lea edi, [edx - 0x14]
mov dword [ecx + 0x58], edx
add edi, 0x14
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov dword [ecx + 0x88], eax
jmp 0x66ca7a
mov edx, dword [ecx]
jmp 0x670c81
push edi
push ecx
call fcn.00634120
mov esi, eax
mov eax, dword [ebp + 8]
push 0x1000
mov eax, dword [eax + 0xc4]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
add ecx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.006749b0
mov esi, dword [esp + 0x30]
add esp, 0x14
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
test dword [ebx + 0x1c], 0x80000
mov eax, dword [edi + 8]
cdq
je 0x670dbe
add dword [ebx + 0x1c8], eax
adc dword [ebx + 0x1cc], edx
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
cmp dword [edi + 4], 0
je 0x670de0
add dword [ebx + 0x1c0], eax
adc dword [ebx + 0x1c4], edx
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
add dword [ecx + 0x40], eax
mov ebx, dword [esp + 0x6c]
adc dword [ecx + 0x44], edx
add edi, 0x14
mov edx, dword [esp + 0x20]
jmp 0x66ca7a
cmp dword [edi + 4], 0
je 0x670e30
mov eax, dword [ebx + 0x1c0]
or eax, dword [ebx + 0x1c4]
jne case.0x66ca9c.83
mov eax, dword [ebx + 0x1c8]
or eax, dword [ebx + 0x1cc]
je 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
jmp 0x670e08
mov edx, dword [ecx + 0xc4]
test edx, edx
je 0x670e67
mov eax, dword [edx + 4]
test eax, eax
je 0x670e59
lea esp, [esp]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x670e50
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea ebx, [eax + ecx*8]
jmp 0x670e74
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00674310
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00674310
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [ebx + 4], ecx
jg 0x66cbd6
jl 0x670ea8
cmp dword [ebx], eax
jae 0x66cbd6
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov dword [ebx + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [ebx], eax
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x24]
lea ebx, [eax + eax*4]
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
mov dword [esp + 0x50], eax
test eax, eax
jl 0x66d987
jg 0x670eeb
test ecx, ecx
je 0x66d987
mov eax, dword [edi + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x50]
sbb eax, edx
mov edx, dword [esp + 0x24]
mov dword [edx + ebx*8], ecx
mov dword [edx + ebx*8 + 4], eax
jmp 0x66cada
mov eax, dword [edi + 4]
push edi
push ecx
lea esi, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x58], eax
call fcn.00634120
mov edx, dword [esp + 0x2c]
add esp, 8
mov ebx, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
test ecx, ecx
jl 0x670f9f
jg 0x670f46
test eax, eax
je 0x670f9f
mov ecx, dword [esp + 0x50]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
test ecx, ecx
jl 0x670f5b
jg 0x670f5f
test eax, eax
jne 0x670f5f
xor eax, eax
xor ecx, ecx
push ecx
push eax
lea eax, [esp + 0x100]
push eax
call fcn.0063ee50
add esp, 0xc
test eax, eax
jne 0x670f9f
mov eax, dword [esp + 0xf8]
add edi, 0x14
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov dword [ebx], eax
mov eax, dword [esp + 0xfc]
mov dword [ebx + 4], eax
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0xffffffff
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 4]
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + ebx*8]
mov edx, dword [eax + ebx*8 + 4]
mov eax, ecx
or eax, edx
je 0x66d987
test edx, edx
jl 0x66cada
jg 0x670ff0
test ecx, ecx
je 0x66cada
mov eax, dword [esp + 0x24]
sub ecx, 1
sbb edx, 0
mov dword [eax + ebx*8], ecx
mov dword [eax + ebx*8 + 4], edx
jmp 0x66cada
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov edx, dword [ebx + ecx*8 + 4]
mov eax, dword [ebx + ecx*8]
cmp edx, 0x80000000
jl 0x671032
jg 0x671025
test eax, eax
je 0x671032
sub eax, 1
mov dword [ebx + ecx*8], eax
sbb edx, 0
mov dword [ebx + ecx*8 + 4], edx
mov eax, dword [ebx + ecx*8]
or eax, dword [ebx + ecx*8 + 4]
mov ecx, dword [ebp + 8]
je 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
movzx eax, word [edi + 2]
mov dword [esp + 0x50], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push ebx
call fcn.006478f0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x28], edi
test edi, edi
je 0x66e73b
mov eax, dword [esp + 0x34]
mov dword [edi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [edi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x60]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x50]
mov byte [edi + 0x1a], al
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov word [edi], 0xf095
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x38], edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x50], eax
cmp dword [edx + 8], eax
je 0x671114
movzx ecx, byte [edx + 0x1a]
dec ecx
mov dword [edx + 8], eax
js 0x671114
mov esi, dword [esp + 0x24]
lea edx, [edx + ecx*4]
add edx, 0x1c
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x6710f4
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x50]
inc dword [eax + 0xc]
mov eax, 1
mov word [esp + 0x260], ax
lea eax, [esp + 0x258]
mov dword [esp + 0x278], ebx
mov dword [esp + 0x270], 0
mov ecx, dword [edx + 4]
mov dword [edx], eax
lea eax, [edx + 0x1c]
push eax
movzx eax, byte [edx + 0x1a]
push eax
mov word [edx + 0x18], 0
mov eax, dword [ecx + 0xc]
push edx
call eax
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x6711b5
cmp dword [eax + 0x14], 0
je 0x671193
lea eax, [esp + 0x258]
push eax
call fcn.00608c80
push eax
push 0x6b8fc4
push dword [ebp + 8]
call fcn.0066c950
mov eax, dword [esp + 0x48]
add esp, 0x10
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x258]
push eax
call fcn.00674540
mov ecx, dword [esp + 0x20]
add esp, 4
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x38]
mov esi, ecx
cmp byte [eax + 0x18], 0
je 0x66d987
mov eax, dword [edi - 0x10]
test eax, eax
je 0x66d987
push 0
push 1
jmp 0x66d58d
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x24]
push dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x34], eax
call fcn.00673fd0
mov esi, eax
add esp, 8
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x67215b
movzx eax, byte [esp + 0x64]
push eax
push dword [esp + 0x30]
call fcn.0066bfa0
push dword [esp + 0x34]
call fcn.00674ae0
add esp, 0xc
test eax, eax
je 0x66d987
mov edi, dword [ebp + 8]
push str.string_or_blob_too_big
push edi
call fcn.0066c950
mov ecx, 0x12
add esp, 8
mov dword [esp + 0x1c], ecx
jmp 0x66d7dc
lea eax, [esp + 0x114]
mov dword [esp + 0x10c], 0
push eax
lea eax, [esp + 0x114]
mov dword [esp + 0x118], 0xffffffff
push eax
push dword [edi + 8]
mov dword [esp + 0x11c], 0xffffffff
push dword [edi + 4]
push ebx
call fcn.00644d30
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x6712a4
cmp ecx, 5
jne 0x66d7d9
xor esi, esi
mov dword [esp + 0x10c], 1
mov dword [esp + 0x1c], esi
mov eax, dword [edi + 0xc]
xor ebx, ebx
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [esp + ebx*4 + 0x10c]
cdq
push edx
push eax
push esi
call fcn.006745c0
inc ebx
add esp, 0xc
add esi, 0x28
cmp ebx, 3
jl 0x6712b3
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov ecx, dword [ebx + 0x10]
add esp, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
mov edi, dword [eax + 0xc]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
movzx edx, byte [ecx + 5]
mov dword [esp + 0x3c], edx
cmp edi, 0xffffffff
jne 0x671323
mov edi, edx
cmp byte [ecx + 0x10], 3
jae 0x67133f
mov eax, dword [ecx + 0x40]
cmp dword [eax], 0
je 0x671341
cmp dword [ecx + 0x4c], 0
jl 0x671341
jg 0x67133f
cmp dword [ecx + 0x48], 0
jbe 0x671341
mov edi, edx
cmp byte [ecx + 0xf], 0
mov eax, 0x6aad7b
jne 0x671352
mov eax, dword [ecx + 0xa8]
cmp edi, 5
jne 0x671387
push eax
call fcn.00667910
add esp, 4
test eax, eax
je 0x671374
push dword [esp + 0x38]
call fcn.0065dd90
add esp, 4
test eax, eax
jne 0x67137f
mov eax, dword [esp + 0x3c]
mov edi, eax
jmp 0x671406
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
cmp edi, edx
je 0x671402
cmp edx, 5
je 0x671395
cmp edi, 5
jne 0x671402
cmp byte [ebx + 0x47], 0
je 0x67217f
cmp dword [ebx + 0xa4], 1
jg 0x67217f
cmp edx, 5
jne 0x6713d2
push ebx
push ecx
call fcn.0065c610
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x67140c
push edi
push dword [esp + 0x3c]
call fcn.0065d760
add esp, 8
jmp 0x6713e6
cmp edx, 4
jne 0x6713e2
push 2
push ecx
call fcn.0065d760
add esp, 8
test esi, esi
jne 0x67140c
xor eax, eax
cmp edi, 5
sete al
inc eax
push eax
push dword [esp + 0x54]
call fcn.006449d0
mov esi, eax
add esp, 8
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x3c]
test esi, esi
je 0x671412
jmp 0x671410
mov eax, dword [esp + 0x3c]
mov edi, eax
push edi
push dword [esp + 0x3c]
call fcn.0065d760
mov esi, dword [esp + 0x30]
add esp, 8
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x671435
xor eax, eax
jmp 0x67143c
mov eax, dword [eax*4 + 0x6c304c]
push eax
mov dword [esi + 0x10], eax
call fcn.00667910
mov dword [esi + 0xc], eax
movzx eax, byte [esp + 0x68]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.0066bfa0
mov ecx, dword [esp + 0x28]
add esp, 0xc
test ecx, ecx
jne 0x66d7d9
mov edi, dword [esp + 0x34]
mov esi, ecx
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push dword [edi + 4]
lea eax, [ecx + 0x6c]
push ebx
push eax
call fcn.00663330
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00642a80
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x66cbd6
cmp ecx, 0x65
jne 0x66d7d9
xor esi, esi
mov dword [esp + 0x1c], esi
jmp 0x66cada
cmp dword [edi + 4], 0
jne 0x67150a
push ebx
call fcn.00649800
mov edx, dword [esp + 0x24]
add esp, 4
mov ebx, dword [esp + 0x6c]
add edi, 0x14
jmp 0x66ca7a
or dword [ecx + 0x94], 1
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov al, byte [edi + 0xc]
mov byte [esp + 0x124], al
test al, al
jne 0x67153c
test dword [ebx + 0x1c], 0x400
jne case.0x66ca9c.83
mov eax, dword [esp + 0x34]
push dword [esp + 0x124]
mov ecx, dword [eax + 4]
push dword [eax + 8]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.006433e0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x6721b1
mov edi, dword [esp + 0x34]
mov esi, eax
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov esi, dword [edi + 0x10]
push esi
push ebx
call fcn.00676c30
add esp, 8
mov ecx, eax
mov dword [esp + 0x1c], ecx
test esi, esi
je 0x6715ae
push dword [esi + 8]
push dword [ebp + 8]
call fcn.006775e0
mov ecx, dword [esp + 0x24]
add esp, 8
test ecx, ecx
jne 0x66d7d9
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b4], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x1b0], ebx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [esp + 0x194]
push eax
call fcn.00673f00
mov dword [esp + 0x24], eax
lea eax, [esp + 0x198]
push eax
call fcn.00608c80
add esp, 0xc
test eax, eax
je 0x671667
mov ecx, dword [ebp + 8]
add ecx, 0x6c
push ecx
push eax
push dword [edi + 4]
push ebx
call fcn.00676ec0
add esp, 0x10
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x190]
push eax
call fcn.00674540
mov ecx, dword [esp + 0x20]
add esp, 4
test ecx, ecx
jne 0x66d7d9
mov edx, dword [esp + 0x20]
mov esi, ecx
mov ecx, dword [ebp + 8]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
inc dword [ebx + 0xb0]
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.00676fa0
dec dword [ebx + 0xb0]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov ecx, dword [ebp + 8]
mov esi, eax
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0x10]
mov dword [esp + 0xa8], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x6721f3
mov eax, dword [esi]
mov dword [esp + 0x50], eax
test eax, eax
je 0x6721f3
mov eax, dword [eax + 0x18]
lea ecx, [esp + 0xa8]
push ecx
push esi
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x2c], eax
call fcn.006775e0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0xa8]
push 2
push 0xffffffffffffffff
push ecx
mov dword [eax], esi
push dword [edi + 4]
push dword [ebp + 8]
call fcn.0060a4e0
add esp, 0x14
test eax, eax
je 0x6721db
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
add edi, 0x14
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], esi
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + esi*8 + 0x28]
mov eax, dword [eax + esi*8]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x60]
xor eax, eax
test edx, edx
jle 0x6717db
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
add ebx, 0x50
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0x6c]
lea esp, [esp]
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x6717d0
mov eax, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x30]
push edx
push dword [edi + 0x10]
mov eax, dword [eax + 0x20]
push dword [esp + 0x54]
push esi
call eax
push dword [esp + 0x4c]
mov dword [esp + 0x34], eax
push dword [ebp + 8]
call fcn.006775e0
mov ecx, dword [esp + 0x38]
add esp, 0x1c
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x28]
push esi
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [esp + 0x50]
add esp, 4
mov esi, dword [esp + 0x1c]
mov byte [ecx + 2], 0
mov ecx, dword [ebp + 8]
test eax, eax
jne 0x66cadd
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x50], ecx
cmp byte [ecx + 2], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x28], edx
je 0x671888
push edx
call fcn.00674600
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ecx + 0x28]
mov esi, dword [eax]
xor eax, eax
mov ecx, dword [esi]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1b8], edx
mov ax, word [edx + 8]
and ax, word [esp + 0x80]
or ax, 1
mov word [edx + 8], ax
lea eax, [esp + 0x1b8]
push dword [edi + 8]
push eax
mov eax, dword [esp + 0x58]
push dword [eax + 0x28]
mov eax, dword [ecx + 0x2c]
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x30], eax
call fcn.006775e0
mov eax, dword [esp + 0x1e0]
add esp, 0x14
test eax, eax
je 0x67191a
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x64]
mov esi, dword [esp + 0x28]
push eax
push esi
call fcn.0066bfa0
push esi
call fcn.00674ae0
add esp, 0xc
test eax, eax
jne 0x671221
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x66d7d9
mov edx, dword [esp + 0x20]
mov esi, ecx
mov ecx, dword [ebp + 8]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x50], eax
cmp byte [eax + 2], 0
jne 0x66d987
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx + 0x24]
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x28], eax
call fcn.006775e0
mov ecx, dword [esp + 0x28]
add esp, 0xc
test ecx, ecx
jne 0x66d7d9
mov eax, dword [esp + 0x50]
push dword [eax + 0x28]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x6719d4
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x60]
add edi, 0xffffffec
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
mov dword [esp + 0x34], edi
jmp 0x6719d8
mov esi, dword [esp + 0x1c]
cmp dword [ebx + 0x100], 0
jne 0x672434
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x78]
jb 0x671f02
mov ecx, dword [ebx + 0x138]
test ecx, ecx
je 0x671f02
mov eax, dword [ebx + 0x140]
mov dword [esp + 0x78], eax
mov eax, edx
xor edx, edx
div dword [esp + 0x78]
mov eax, dword [esp + 0x78]
push dword [ebx + 0x13c]
sub eax, edx
add eax, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
call ecx
add esp, 4
test eax, eax
jne 0x672220
mov ecx, dword [ebp + 8]
add edi, 0x14
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x24]
push 1
mov esi, dword [eax + 8]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x58], eax
call fcn.0066bfa0
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
mov ecx, dword [esp + 0x50]
mov eax, dword [esi]
push dword [ecx + 0x10]
mov eax, dword [eax + 0x4c]
push esi
call eax
push esi
mov esi, dword [ebp + 8]
push esi
mov dword [esp + 0x2c], eax
call fcn.006775e0
and dword [esi + 0x94], 0xfffffffe
add esp, 0x10
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x672490
mov edx, dword [esp + 0x20]
mov esi, ecx
mov ecx, dword [ebp + 8]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
test eax, eax
je 0x6721f3
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
je 0x6721f3
cmp dword [eax + 0x34], 0
mov edx, dword [edi + 8]
je case.0x66ca9c.83
mov al, byte [ebx + 0x4e]
mov esi, dword [ecx + 0x60]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x33], al
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x671b1b
lea esp, [esp]
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x671b10
mov al, byte [edi + 2]
mov byte [ebx + 0x4e], al
lea eax, [esp + 0x158]
push eax
mov eax, dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x58]
push edx
mov eax, dword [eax + 0x34]
push esi
call eax
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x43]
push esi
mov esi, dword [ebp + 8]
push esi
mov byte [ebx + 0x4e], al
call fcn.006775e0
mov ecx, dword [esp + 0x34]
add esp, 0x18
mov eax, dword [esp + 0x34]
test ecx, ecx
jne 0x671b7a
cmp dword [eax + 4], ecx
je 0x671b7a
mov eax, dword [esp + 0x158]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x15c]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x34]
cmp cl, 0x13
jne 0x671bc0
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x671bc0
mov edi, dword [esp + 0x34]
movzx eax, word [edi + 2]
cmp eax, 4
jne 0x671bae
mov ecx, dword [ebp + 8]
xor esi, esi
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x1c], esi
jmp 0x66ca7a
cmp eax, 5
jne 0x671bb8
mov eax, 2
mov byte [esi + 0x8e], al
jmp 0x671bc7
inc dword [esi + 0x2c]
mov edi, dword [esp + 0x34]
test ecx, ecx
jne 0x672490
mov esi, dword [esp + 0x1c]
add edi, 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov edx, dword [edi + 4]
add esp, 8
mov ecx, dword [ebx + 0x10]
add edx, edx
mov ebx, dword [esp + 0x6c]
add edi, 0x14
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], 0
jmp 0x66ca7a
push edi
push ecx
call fcn.00634120
mov ecx, dword [ebx + 0x10]
add esp, 8
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
add edx, edx
mov edi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov edx, dword [eax + 0xc]
test edx, edx
je 0x671c51
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x2c]
cmp ecx, edx
jae 0x671c51
mov ecx, edx
push ecx
push edi
call fcn.00643450
mov ecx, dword [esp + 0x58]
add esp, 8
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x6c]
add edi, 0x14
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
jmp 0x66ca7a
movzx eax, word [edi + 2]
mov dword [esp + 0x50], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push ebx
call fcn.006478f0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x28], edi
test edi, edi
je 0x66e73b
mov eax, dword [esp + 0x34]
mov dword [edi], 0
mov ecx, dword [eax + 0x10]
mov dword [edi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x60]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x50]
mov byte [edi + 0x1a], al
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
add byte [edi], 2
mov byte [edi + 1], 0xf0
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x2c], edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x4c], eax
cmp dword [edx], eax
je 0x671d40
movzx ecx, byte [edx + 0x1a]
dec ecx
mov dword [edx], eax
js 0x671d40
mov esi, dword [esp + 0x24]
lea edx, [edx + ecx*4]
add edx, 0x1c
lea ecx, [ecx]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x671d20
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
mov ax, word [eax + 8]
mov ecx, 0x3e00
and ax, cx
mov ecx, dword [esp + 0x4c]
or ax, 1
mov word [ecx + 8], ax
lea eax, [edx + 0x1c]
mov ecx, dword [edx + 4]
push eax
movzx eax, byte [edx + 0x1a]
push eax
mov byte [edx + 0x19], 0
mov eax, dword [ecx + 0xc]
push edx
call eax
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x671dca
mov esi, eax
cmp dword [esi + 0x14], 0
je 0x671da4
push dword [esp + 0x4c]
call fcn.00608c80
push eax
push 0x6b8fc4
push dword [ebp + 8]
call fcn.0066c950
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [esp + 0x1c], eax
push dword [edi + 4]
mov eax, dword [ebp + 8]
push dword [esi + 0x10]
add eax, 0xd8
push eax
push ebx
call fcn.0066c710
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test ecx, ecx
jne 0x66d7d9
mov esi, ecx
mov ecx, dword [esp + 0x4c]
test byte [ecx + 8], 0x12
je 0x66d987
movzx eax, byte [esp + 0x64]
push eax
push ecx
call fcn.0066bfa0
push dword [esp + 0x54]
jmp 0x671211
mov cl, byte [ebx + 0x50]
test cl, 0x81
je 0x671e97
mov edx, dword [ebp + 8]
test byte [edx + 0x94], 2
jne 0x671e97
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x671e1a
mov eax, dword [edx + 0xbc]
test eax, eax
je 0x671e97
push eax
test cl, cl
jns 0x671e49
mov edi, dword [ebx + 0xbc]
push edx
call fcn.00672850
mov esi, eax
push esi
push dword [ebx + 0xc0]
call edi
push esi
call fcn.006014a0
mov edi, dword [esp + 0x48]
add esp, 0x14
mov esi, dword [esp + 0x1c]
jmp 0x671e97
cmp dword [ebx + 0xac], 1
jle 0x671e83
push str.____s
push ebx
call fcn.0065af10
mov ecx, dword [ebx + 0xbc]
mov esi, eax
push esi
push dword [ebp + 8]
push dword [ebx + 0xc0]
push 1
call ecx
push esi
push ebx
call fcn.00647820
mov esi, dword [esp + 0x40]
add esp, 0x24
jmp 0x671e97
mov eax, dword [ebx + 0xbc]
push edx
push dword [ebx + 0xc0]
push 1
call eax
add esp, 0x10
mov eax, dword [edi + 4]
cmp eax, dword [0xb2670c]
jl 0x671edb
mov ebx, dword [ebp + 8]
mov edx, 1
cmp dword [ebx + 0x88], edx
jle 0x671ed4
mov eax, 0x14
mov ecx, dword [ebx + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x671ec8
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [ebx + 0x88]
jl 0x671eb7
mov dword [edi + 4], 0
mov ecx, dword [ebp + 8]
inc dword [edi + 4]
inc dword [ecx + 0xb8]
jmp 0x66cadd
mov esi, dword [esp + 0x1c]
mov ecx, eax
mov edx, dword [esp + 0x20]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [ebp + 8]
add edi, 0x14
mov ebx, dword [esp + 0x6c]
jmp 0x66ca7a
mov ecx, dword [edx + 4]
mov dword [esi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x8e], al
mov dword [esi + 0x24], edi
test ecx, ecx
je 0x671f9f
movzx eax, word [edx + 2]
test ax, ax
je 0x671f6d
push dword [eax*4 + 0x6bf008]
push str._s_constraint_failed
push esi
call fcn.0066c950
mov esi, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x671f82
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x6c]
push str._z:__s
push ebx
call fcn.0065af10
mov ecx, dword [ebp + 8]
add esp, 0x10
mov dword [ecx + 0x6c], eax
jmp 0x671f82
push dword [edx + 0x10]
push 0x6b8fc4
push esi
call fcn.0066c950
mov esi, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [ebp + 8]
push dword [eax + 0x6c]
push dword [eax + 0xbc]
push edi
push str.abort_at__d_in___s_:__s
push dword [esi + 4]
call fcn.00605420
add esp, 0x14
mov edi, dword [ebp + 8]
push edi
call fcn.006730c0
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, 5
jne 0x6723ea
mov dword [edi + 0x28], eax
jmp 0x672574
push 0x13f9e
call fcn.00646520
add esp, 4
mov ecx, eax
jmp 0x66d7d5
mov edi, dword [ebp + 8]
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0066c950
mov ecx, 5
add esp, 8
mov dword [esp + 0x1c], ecx
jmp 0x66d7dc
mov edi, dword [ebp + 8]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0066c950
mov ecx, 5
add esp, 8
mov dword [esp + 0x1c], ecx
jmp 0x66d7dc
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x60]
mov edi, esi
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov eax, 5
mov byte [ebx + 0x47], 0
mov dword [esp + 0x1c], eax
mov dword [edi + 0x28], eax
jmp 0x672574
mov edi, dword [ebp + 8]
push str.no_such_savepoint:__s
push edi
call fcn.0066c950
mov ecx, 1
add esp, 0xc
mov dword [esp + 0x1c], ecx
jmp 0x66d7dc
mov ecx, 8
jmp 0x66d7d5
mov edi, dword [ebp + 8]
cmp cl, 5
jne 0x66d7dc
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x60]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x28], eax
jmp 0x672574
mov eax, dword [ebp + 8]
push dword [eax + 0x6c]
push ebx
call fcn.00647820
push str.database_schema_has_changed
push ebx
call fcn.00647b00
mov ecx, dword [ebp + 8]
add esp, 0x10
mov dword [ecx + 0x6c], eax
mov edx, dword [edi + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x6720de
push edx
push ebx
call fcn.00662330
add esp, 8
mov edi, dword [ebp + 8]
mov ecx, 0x11
mov dword [esp + 0x1c], ecx
or dword [edi + 0x94], 1
jmp 0x66d7dc
mov ecx, 0x204
jmp 0x66d7d5
mov edi, dword [ebp + 8]
mov ecx, 6
mov dword [esp + 0x1c], ecx
mov byte [edi + 0x8e], 2
jmp 0x66d7dc
mov dword [esp + 0x1c], 7
push ebx
call fcn.006622c0
mov ecx, dword [esp + 0x20]
add esp, 4
cmp ecx, 7
je 0x66e73b
jmp 0x66d7d9
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x24], 1
call fcn.0066c950
add esp, 8
mov ecx, 1
jmp 0x66d7dc
push dword [esp + 0x2c]
call fcn.00608c80
mov edi, dword [ebp + 8]
push eax
push 0x6b8fc4
push edi
call fcn.0066c950
mov ecx, dword [esp + 0x2c]
add esp, 0x10
jmp 0x66d7dc
mov dword [esp + 0x1c], 1
mov eax, str.into
cmp edi, 5
je 0x672196
mov eax, str.out_of
mov edi, dword [ebp + 8]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0066c950
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x66d7dc
mov edi, dword [ebp + 8]
cmp cl, 6
jne 0x66d7dc
mov esi, dword [esp + 0x34]
push dword [esi + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0066c950
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x66d7dc
mov eax, dword [esp + 0x50]
push dword [esp + 0xa8]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x66e73b
mov ecx, 6
jmp 0x66d7d5
mov eax, dword [ebx + 0x138]
test eax, eax
je 0x67222d
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x78]
jb 0x67222d
push dword [ebx + 0x13c]
call eax
add esp, 4
test eax, eax
je 0x67222a
mov ecx, 9
jmp 0x66d7d5
mov ecx, dword [ebp + 8]
push 0
push ecx
call fcn.0066c1d0
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x66d7d9
push 1
push dword [ebp + 8]
call fcn.0066c520
mov ecx, dword [ebp + 8]
add esp, 8
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], 0
mov eax, dword [ecx + 0x20]
add eax, 2
or eax, 1
mov dword [ecx + 0x20], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [ecx + 0x68], esi
cmp dword [edi + 8], 0
jle 0x6722c2
mov eax, 0x1000
test word [esi + 8], ax
je 0x67229f
push esi
call fcn.00674370
add esp, 4
test eax, eax
jne 0x66e73b
push esi
call fcn.00674400
mov eax, dword [esp + 0x84]
add esp, 4
inc eax
add esi, 0x28
mov dword [esp + 0x80], eax
cmp eax, dword [edi + 8]
jl 0x672283
mov ecx, dword [ebp + 8]
cmp byte [ebx + 0x49], 0
jne 0x66e767
test byte [ebx + 0x50], 4
je 0x6722e8
mov eax, dword [ebx + 0xbc]
push 0
push ecx
push dword [ebx + 0xc0]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x60]
mov edi, dword [ebp + 8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x24], eax
mov eax, 0x64
mov dword [esp + 0x1c], eax
jmp 0x672574
mov ecx, dword [edi + 4]
movzx eax, byte [ebx + 0x47]
mov edx, dword [edi + 8]
mov dword [esp + 0x80], ecx
cmp ecx, eax
je 0x672400
test edx, edx
je 0x67234a
push 0x204
push ebx
call fcn.00662980
mov edi, dword [ebp + 8]
add esp, 8
mov byte [ebx + 0x47], 1
jmp 0x67239a
test ecx, ecx
je 0x672376
cmp dword [ebx + 0xa8], 0
jle 0x672376
mov edi, dword [ebp + 8]
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.0066c950
mov ecx, 5
add esp, 8
mov dword [esp + 0x1c], ecx
jmp 0x66d7dc
mov edi, dword [ebp + 8]
push 1
push edi
call fcn.0066c1d0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x672574
mov eax, dword [esp + 0x80]
mov byte [ebx + 0x47], al
push edi
call fcn.006730c0
add esp, 4
cmp eax, 5
jne 0x6723e1
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x60]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov al, 1
sub al, byte [esp + 0x80]
mov byte [ebx + 0x47], al
mov eax, 5
mov dword [esp + 0x1c], eax
mov dword [edi + 0x28], eax
jmp 0x672574
push ebx
call fcn.006451f0
add esp, 4
mov eax, dword [edi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x1c], eax
jmp 0x672574
test ecx, ecx
jne 0x67240b
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x672419
mov eax, str.cannot_rollback___no_transaction_is_active
test edx, edx
jne 0x672419
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [ebp + 8]
push eax
push edi
call fcn.0066c950
mov ecx, 1
add esp, 8
mov dword [esp + 0x1c], ecx
jmp 0x66d7dc
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ebx + 0x49], al
sete al
lea eax, [eax*2 + 7]
mov dword [ecx + 0x28], eax
mov ecx, str.unknown_error
mov dword [esp + 0x1c], eax
cmp eax, 0x204
je 0x672470
movzx eax, al
cmp eax, 0x1a
ja 0x672475
mov eax, dword [eax*4 + 0x6c2c50]
test eax, eax
je 0x672475
mov ecx, eax
jmp 0x672475
mov ecx, str.abort_due_to_ROLLBACK
mov edi, dword [ebp + 8]
push ecx
push 0x6b8fc4
push edi
call fcn.0066c950
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x66d7dc
mov edi, esi
jmp 0x66d7dc
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x6b8fc4
push edi
call fcn.0066c950
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dword [edi + 0x28], ecx
cmp ecx, 0xc0a
je 0x6724e1
movzx eax, cl
cmp eax, 0xe
je 0x6724c7
cmp eax, 0xa
jne 0x6724e1
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x6724dc
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x6724de
xor eax, eax
mov dword [ebx + 0x40], eax
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x60]
push dword [edi + 0x6c]
mov esi, dword [esp + 0x20]
push dword [edi + 0xbc]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.00605420
push edi
call fcn.006730c0
add esp, 0x18
cmp esi, 0xc0a
jne 0x67254d
cmp byte [ebx + 0x49], 0
jne 0x67254d
cmp byte [ebx + 0x4a], 0
jne 0x67254d
cmp dword [ebx + 0xac], 0
mov byte [ebx + 0x49], 1
jle 0x672547
mov dword [ebx + 0x100], 1
inc dword [ebx + 0x108]
mov cl, byte [esp + 0x77]
mov eax, 1
mov dword [esp + 0x1c], eax
test cl, cl
je 0x672574
movzx eax, cl
dec eax
push eax
push ebx
call fcn.00662330
mov eax, dword [esp + 0x24]
add esp, 8
jmp 0x672574
mov edi, esi
mov ecx, dword [esp + 0x20]
add dword [edi + 0xb0], ecx
cmp dword [edi + 0x9c], 0
je 0x672594
push edi
call fcn.00680ab0
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret