Function at 0x683690
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, 0x1f4
mov eax, dword [0x8bb040]
xor eax, esp
mov dword [esp + 0x1f0], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x44], 0
xor bl, bl
mov dword [esp + 0x3c], edi
mov byte [esp + 0x87], bl
mov dword [esp + 0x7c], 0
cmp dword [edi + 0xa0], 0
mov ecx, dword [edi]
mov esi, dword [edi + 0x68]
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], esi
mov al, byte [ecx + 0x54]
mov byte [esp + 0x6c], al
mov eax, dword [edi + 0x58]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0xdc], 0
je 0x68371d
mov ecx, edi
call fcn.0067c090
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 0x174], 0
je 0x68373c
mov ebx, dword [ecx + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ebx
sub ebx, edx
xor eax, eax
jmp 0x683742
or ebx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0xcc], eax
mov dword [esp + 0x90], ebx
je 0x685542
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
cmp dword [ecx + 0x128], 0
mov dword [ecx + 0x1c8], 0
jne 0x689ea6
mov eax, dword [edi + 0x20]
fldz
fstp qword [esp + 0x1c0]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
xor eax, eax
mov dl, byte [esi]
add eax, 1
movzx ebx, dl
adc dword [esp + 0xe4], 0
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], eax
cmp ebx, 0xb5
ja case.0x6837be.89
jmp dword [ebx*4 + 0x68a210]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x74]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], 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
jmp 0x68955c
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x48]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x684ef5
mov eax, dword [ebx + eax*8]
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 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 + 0x10], ax
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 8], 0
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x74]
mov eax, dword [ecx + 4]
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 esi, [edx + eax*4]
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x74]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul edx
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 ecx, dword [esp + 0x74]
mov dword [ebx + esi*8 + 4], edx
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x684ef5
mov esi, dword [edi + 0xd0]
test esi, esi
je 0x689b2f
mov edi, dword [esp + 0x34]
cmp dword [edi + 4], 0
mov edi, dword [esp + 0x3c]
jne 0x689b2f
push dword [edi + 0x2c]
mov eax, dword [esi + 4]
push dword [edi + 0x28]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
call fcn.0067f8d0
add esp, 8
mov ecx, esi
call fcn.0067cc50
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 8], 4
jne 0x683977
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x74], edx
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x6839e6
call fcn.006832f0
mov esi, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov esi, dword [esp + 0x34]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x683a36
mov ecx, edx
call fcn.006832f0
mov edx, eax
jmp 0x683a3f
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x683a86
call fcn.006832f0
mov ecx, eax
mov esi, dword [esp + 0x34]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
fld qword [eax]
mov eax, dword [esp + 0x40]
fstp qword [ecx]
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x683ad4
mov ecx, esi
call fcn.006832f0
mov esi, eax
jmp 0x683add
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x683ae8
xor ecx, ecx
jmp 0x683aff
mov ecx, edx
lea edi, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x683af0
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [esp + 0x6c], 1
mov dword [ebx + 4], ecx
je 0x683b7a
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.00679fc0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x44], edi
test edi, edi
jne 0x689d64
movzx edx, byte [esp + 0x6c]
mov ecx, esi
call fcn.00678fb0
test eax, eax
jne 0x68553a
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x683b66
push dword [ecx + 0x10]
push dword [esp + 0x3c]
call fcn.00654a70
mov ecx, dword [esp + 0x3c]
add esp, 8
mov ebx, dword [esp + 0x34]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
cmp ecx, dword [eax + 0x78]
jg 0x689d68
mov byte [ebx], 0x49
jmp 0x683b94
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x683bb2
call fcn.006832f0
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x6c]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x689915
mov ebx, dword [esp + 0x48]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x689915
cmp dword [ebx + esi*8 + 4], edx
jne 0x689915
mov esi, dword [esp + 0x34]
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x683c43
mov ecx, edx
call fcn.006832f0
mov edx, eax
jmp 0x683c4c
mov eax, 4
mov word [edx + 0x10], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
mov dword [edx + 0xc], 0
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
test edi, edi
jle 0x689915
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x683c98
lea ecx, [esi - 0x10]
call fcn.006795d0
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x683c82
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, 0xffc1
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x683d1d
mov ecx, esi
call fcn.006832f0
mov esi, eax
jmp 0x683d26
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x683d67
mov edx, eax
mov ecx, esi
call fcn.00679c50
mov ecx, esi
call fcn.006793c0
test eax, eax
jne 0x68553e
mov al, byte [esp + 0x6c]
mov ecx, dword [esp + 0x38]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.00679fc0
mov al, byte [esp + 0x7c]
add esp, 0x10
mov ecx, dword [esp + 0x38]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.00679e90
test eax, eax
jne 0x689d64
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x683dd8
mov ecx, esi
call fcn.00679c30
mov eax, dword [edi - 0x28]
mov ecx, 0xafff
mov dword [esi], eax
mov eax, dword [edi - 0x24]
mov dword [esi + 4], eax
mov eax, dword [edi - 0x20]
mov dword [esi + 8], eax
mov eax, dword [edi - 0x1c]
mov dword [esi + 0xc], eax
mov eax, dword [edi - 0x18]
mov edi, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x38]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + 8]
mov dword [esp + 0x54], esi
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
jmp 0x683e50
mov eax, 0x9000
test word [ebx + 0x10], ax
jne 0x683e61
cmp dword [ebx + 0x18], 0
je 0x683e68
mov ecx, ebx
call fcn.00679610
mov ecx, 0xa
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
mov eax, 1
mov word [esi + 0x10], ax
mov eax, 0x4000
mov dword [esi + 0x18], 0
test word [ebx + 0x10], ax
je 0x683e9f
mov ecx, ebx
call fcn.00679360
test eax, eax
jne 0x68553a
add esi, 0x28
add ebx, 0x28
sub dword [esp + 0x4c], 1
mov dword [esp + 0x54], esi
jne 0x683e50
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.00679ee0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x683f10
mov ecx, esi
call fcn.00679360
test eax, eax
jne 0x68553a
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x683f2e
mov ecx, dword [esp + 0x34]
test byte [ecx + 2], 2
je 0x683f2e
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x689915
add esi, 0x28
add edi, 0x28
jmp 0x683ee5
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
push 0x4000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00679ee0
mov ecx, dword [esp + 0x3c]
add esp, 4
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x683fc3
push eax
push edx
call fcn.00679ca0
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov esi, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x40]
mov dword [ecx], edx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
xor edx, edx
mov ecx, edi
call fcn.0067d690
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x68a057
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + 8]
mov dword [esp + 0x54], ebx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [ebx + 0x10]
mov dword [esp + 0x70], ecx
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi + 0x10]
or al, cl
test al, 1
je 0x684063
mov ecx, edi
call fcn.00679c30
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
test cl, 0x12
jne 0x684095
mov dl, byte [esp + 0x6c]
mov ecx, ebx
push 0
call fcn.00679420
add esp, 4
test eax, eax
jne 0x68553a
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [esp + 0x70], ecx
jmp 0x6840bf
test ecx, 0x400
je 0x6840bf
mov ecx, ebx
call fcn.006793c0
test eax, eax
jne 0x68553a
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x70], eax
movzx eax, word [esi + 0x10]
mov dword [esp + 0x4c], eax
test al, 0x12
jne 0x6840dd
mov dl, byte [esp + 0x6c]
mov ecx, esi
push 0
call fcn.00679420
add esp, 4
jmp 0x6840eb
test eax, 0x400
je 0x684106
mov ecx, esi
call fcn.006793c0
test eax, eax
jne 0x68553a
mov ax, word [esi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 0xc]
add ecx, dword [ebx + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x94], edx
jg 0x689d64
jl 0x684137
cmp ebx, eax
ja 0x689d64
xor eax, eax
lea edx, [ecx + 2]
cmp edi, esi
mov ecx, edi
sete al
push eax
call fcn.00678fd0
add esp, 4
test eax, eax
jne 0x68553a
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [edi + 0x10], ax
cmp edi, esi
je 0x684185
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x58]
add esp, 0xc
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x54]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [edi + 8]
add eax, dword [esi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x60]
add esp, 0xc
mov ecx, dword [esp + 0x70]
mov word [eax + 0x10], cx
mov cl, byte [esp + 0x6c]
cmp cl, 1
jbe 0x6841c1
mov eax, dword [esp + 0x94]
and ebx, 0xfffffffe
mov dword [esp + 0x64], eax
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x34]
mov byte [ebx + eax], 0
mov eax, dword [edi + 8]
mov byte [eax + ebx + 1], 0
mov eax, 0x200
or word [edi + 0x10], ax
mov eax, dword [esp + 0x40]
mov byte [edi + 0x12], cl
mov ecx, dword [esp + 0x38]
mov dword [edi + 0xc], ebx
mov edi, dword [esp + 0x3c]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 0x10]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 8]
mov ebx, edx
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x48]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x58], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
mov al, cl
and al, bl
test al, 4
jne 0x684282
or cl, bl
test cl, 1
jne 0x6844c5
and edx, 0x2d
je 0x68425a
mov ebx, edx
jmp 0x684264
mov ecx, edi
call fcn.00683240
movzx ebx, ax
mov ax, word [esi + 0x10]
and ax, 0x2d
jne 0x684275
mov ecx, esi
call fcn.00683240
movzx eax, ax
and al, bl
test al, 4
je 0x684335
mov eax, dword [esp + 0x34]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [esi]
movzx eax, byte [eax]
mov esi, dword [esi + 4]
add eax, 0xffffff96
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], esi
cmp eax, 3
ja case.default.0x6842ad
jmp dword [eax*4 + 0x68a4e8]
push edx
push ecx
lea ecx, [esp + 0xd8]
call fcn.0065a210
add esp, 8
test eax, eax
jne 0x68432d
jmp 0x68447b
push edx
push ecx
lea ecx, [esp + 0xd8]
call fcn.0065a2b0
add esp, 8
test eax, eax
jne 0x68432d
jmp 0x68447b
push edx
push ecx
lea ecx, [esp + 0xd8]
call fcn.0065a300
add esp, 8
test eax, eax
jne 0x68432d
jmp 0x68447b
mov eax, ecx
or eax, edx
je 0x6844c5
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x684443
test edi, edi
jne 0x684443
cmp esi, 0x80000000
jne 0x684443
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ecx, edi
call fcn.00679770
fstp qword [esp + 0x60]
mov ecx, esi
call fcn.00679770
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x684356
jmp dword [eax*4 + 0x68a4f8]
fadd qword [esp + 0x60]
jmp 0x6843f0
fsub qword [esp + 0x60]
jmp 0x6843f0
fmul qword [esp + 0x60]
jmp 0x6843f0
fld qword [esp + 0x1c0]
fld qword [esp + 0x60]
fucomi st(1)
fstp st(1)
lahf
test ah, 0x44
jnp 0x6844c1
fdivp st(1)
jmp 0x6843f0
mov ecx, edi
fstp st(0)
call fcn.006796c0
mov ecx, dword [esp + 0x58]
mov esi, eax
mov edi, edx
call fcn.006796c0
mov ecx, esi
mov dword [esp + 0xd4], edx
or ecx, edi
mov ebx, eax
mov dword [esp + 0xd0], ebx
je 0x6844c5
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x6843d2
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ebx
call fcn.00733dd0
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
fild qword [esp + 0x170]
sub esp, 8
fst qword [esp + 0x68]
fstp qword [esp]
call fcn.00658270
add esp, 8
test eax, eax
jne 0x6844c5
mov edx, dword [esp + 0x4c]
mov ecx, 0xf248
fld qword [esp + 0x60]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov ax, word [edx + 0x10]
and ax, cx
mov ecx, dword [esp + 0x38]
or ax, 8
movzx eax, ax
fstp qword [edx]
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
push edx
push ecx
push esi
push edi
call fcn.00733c00
jmp 0x68446d
mov eax, ecx
or eax, edx
je 0x6844c5
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x684464
mov ecx, 1
xor edx, edx
push edx
push ecx
push esi
push edi
call fcn.00733dd0
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
mov ecx, dword [esp + 0x38]
or ax, 4
movzx eax, ax
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x4c]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x6844f3
mov ecx, eax
call fcn.006795d0
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edi, dword [esp + 0x3c]
mov ecx, 1
mov esi, dword [esp + 0x34]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esi + 4]
test eax, eax
je 0x684ef5
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00679cd0
mov ecx, dword [esp + 0x40]
add esp, 8
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [esi + 0x10]
mov dword [esp + 0x4c], edx
test al, 1
je 0x6845b9
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x68459c
mov ecx, edx
call fcn.006795d0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x38]
mov eax, 1
mov esi, dword [esp + 0x34]
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
call fcn.006796c0
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.006796c0
mov esi, eax
mov eax, dword [esp + 0x34]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x6845df
and ebx, esi
and edi, edx
jmp 0x684694
cmp cl, 0x67
jne 0x6845ed
or ebx, esi
or edi, edx
jmp 0x684694
mov eax, esi
or eax, edx
je 0x684694
test edx, edx
jg 0x684625
jl 0x684601
test esi, esi
jae 0x68461a
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x684625
jg 0x684613
cmp esi, 0xffffffc0
jbe 0x684625
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x684641
jg 0x684625
cmp esi, 0x40
jb 0x684641
test edi, edi
jg 0x68463b
jl 0x68462f
test ebx, ebx
jae 0x68463b
cmp cl, 0x68
je 0x68463b
or ebx, 0xffffffff
or edi, ebx
jmp 0x684694
xor ebx, ebx
xor edi, edi
jmp 0x684694
cmp cl, 0x68
mov eax, ebx
mov edx, edi
mov ecx, esi
jne 0x684657
call fcn.00733e90
mov ecx, eax
mov eax, edx
jmp 0x684690
call fcn.00733fa0
mov ecx, eax
mov eax, edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x54], eax
test edi, edi
jg 0x684690
jl 0x684672
test ebx, ebx
jae 0x684690
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.00733e90
mov ecx, dword [esp + 0x60]
or ecx, eax
mov eax, dword [esp + 0x54]
or eax, edx
mov ebx, ecx
mov edi, eax
mov ecx, dword [esp + 0x4c]
mov edx, 0xf244
mov esi, dword [esp + 0x34]
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx + 4], edi
mov edi, dword [esp + 0x3c]
or ax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x40]
mov dword [ecx], ebx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.006798a0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x40]
adc dword [esi + 4], edx
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x68474f
push dword [esp + 0x6c]
mov dl, 0x43
mov ecx, esi
call fcn.006831a0
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x68474f
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 8], 0
jne 0x686b66
mov edx, 0x14
jmp 0x689c09
mov eax, dword [esp + 0x40]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x24
lea ecx, [ecx + eax*8]
je 0x684eed
call fcn.006798d0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x6847d6
mov ecx, esi
call fcn.006793c0
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov eax, dword [esp + 0x34]
mov ecx, esi
push dword [esp + 0x6c]
mov dl, byte [eax + 8]
call fcn.00679ab0
add esp, 4
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [edi + 0x10]
mov dword [esp + 0x70], edi
mov dword [esp + 0x4c], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 0x10]
mov edx, eax
mov dword [esp + 0x60], eax
and edx, ecx
test dl, 4
je 0x6848ed
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [edi + 4]
mov eax, dword [edi]
cmp esi, edx
jl 0x684893
jg 0x68485c
cmp ecx, eax
jbe 0x684889
cmp byte [ebx + 0x7fca30], 0
mov edi, dword [esp + 0x3c]
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], 1
add esi, 0x14
jmp 0x68379a
cmp esi, edx
jg 0x6848c0
jl 0x684893
cmp ecx, eax
jae 0x6848c0
cmp byte [ebx + 0x7fca24], 0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
jne 0x686b6e
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], 0xffffffff
add esi, 0x14
jmp 0x68379a
cmp byte [ebx + 0x7fca2a], 0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
jne 0x686b6e
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], 0
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x60]
mov eax, ebx
or eax, ecx
test al, 1
je 0x684967
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 2]
test al, al
jns 0x68493f
test dl, 1
je 0x68492c
test ebx, 0x100
jne 0x68492c
mov eax, dword [esp + 0x34]
mov dword [esp + 0x7c], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x7fca2a]
jmp 0x684a7f
mov eax, ebx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x684a30
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
test al, 0x10
jne 0x686b6e
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], 1
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x6849a6
test al, 2
je 0x684a19
mov al, cl
and al, 0x2e
cmp al, 2
jne 0x684993
xor edx, edx
mov ecx, edi
call fcn.00683090
movzx ebx, word [esi + 0x10]
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x684a19
xor edx, edx
mov ecx, esi
call fcn.00683090
jmp 0x684a19
cmp dl, 0x42
jne 0x684a19
test al, 2
je 0x684a19
test cl, 2
jne 0x6849ee
test cl, 0x2c
je 0x6849ee
mov dl, byte [esp + 0x6c]
mov ecx, edi
push 1
call fcn.00679420
movzx eax, word [edi + 0x10]
add esp, 4
mov ecx, dword [esp + 0x4c]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [esp + 0x4c], ecx
cmp edi, esi
jne 0x6849ee
mov eax, ecx
or eax, 2
movzx ebx, ax
test bl, 2
jne 0x684a19
test bl, 0x2c
je 0x684a19
mov dl, byte [esp + 0x6c]
mov ecx, esi
push 1
call fcn.00679420
movzx eax, word [esi + 0x10]
add esp, 4
xor ebx, eax
and ebx, 0xdbf
xor ebx, eax
movzx ebx, bx
mov eax, dword [esp + 0x34]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0067e7b0
mov ecx, dword [esp + 0x50]
add esp, 4
mov edx, eax
mov dword [esp + 0x7c], eax
movzx eax, cx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
movzx edi, bx
movzx eax, byte [eax]
test edx, edx
jge 0x684a53
mov al, byte [eax + 0x7fca24]
jmp 0x684a7f
mov ecx, dword [esp + 0x54]
mov ebx, edi
movzx ecx, cx
mov dword [esp + 0x7c], edx
test edx, edx
jne 0x684a6c
mov al, byte [eax + 0x7fca2a]
jmp 0x684a7f
mov ecx, dword [esp + 0x54]
mov ebx, edi
mov al, byte [eax + 0x7fca30]
movzx ecx, cx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x3c]
mov word [esi + 0x10], bx
mov word [edx + 0x10], cx
test al, al
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
cmp dword [esp + 0x7c], 0
je 0x686b6e
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
test byte [ecx + 2], 1
jne 0x684acc
xor ebx, ebx
jmp 0x684ad2
mov ebx, dword [ecx - 4]
add ebx, 4
mov eax, dword [ecx + 0xc]
mov esi, dword [esp + 0x34]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x60], ecx
test eax, eax
jle 0x684eed
lea edi, [edx + 0x14]
nop
test ebx, ebx
je 0x684b09
mov ecx, dword [ebx + esi*4]
jmp 0x684b0b
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x48]
push dword [edi]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x64]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x50]
add eax, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x98], eax
call fcn.0067e7b0
mov edx, eax
add esp, 4
mov dword [esp + 0x7c], edx
test edx, edx
jne 0x684b83
mov edx, dword [esp + 0x54]
inc esi
add edi, 4
cmp esi, dword [esp + 0x70]
jl 0x684b00
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x684bb0
mov eax, dword [esp + 0x94]
test byte [eax + 0x10], 1
jne 0x684baa
mov eax, dword [esp + 0x8c]
test byte [eax + 0x10], 1
je 0x684bb0
neg edx
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x50], 0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
je 0x68991d
mov esi, dword [esp + 0x34]
neg edx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x7c], edx
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x34]
test ebx, ebx
jns 0x684c01
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
jne 0x684c1f
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov edi, 2
mov ecx, dword [esp + 0x48]
mov edx, edi
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.006797b0
mov ecx, dword [ebx + 8]
mov edx, edi
mov ebx, dword [esp + 0x48]
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.006797b0
lea edx, [eax + esi*2]
mov eax, dword [esp + 0x34]
cmp byte [eax], 0x2c
jne 0x684c83
mov dl, byte [esi + edx + 0x7ff668]
jmp 0x684c8a
mov dl, byte [esi + edx + 0x800600]
mov eax, dword [eax + 0xc]
lea edi, [eax + eax*4]
movzx ecx, word [ebx + edi*8 + 0x10]
lea esi, [ebx + edi*8]
cmp dl, 2
jne 0x684cc2
mov edi, dword [esp + 0x3c]
and ecx, 0xf241
mov eax, dword [esp + 0x40]
or ecx, 1
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
movzx eax, dl
and ecx, 0xf244
cdq
or ecx, 4
mov dword [ebx + edi*8], eax
mov eax, dword [esp + 0x40]
mov dword [ebx + edi*8 + 4], edx
mov edi, dword [esp + 0x3c]
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.006797b0
mov ecx, dword [esp + 0x34]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00679cd0
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x684d88
xor edx, edx
call fcn.006797b0
neg eax
mov ecx, esi
push 0
sbb eax, eax
inc eax
push eax
call fcn.00679cd0
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, esi
call fcn.00679c30
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00679c30
test byte [edi + 0x10], 1
jne 0x689915
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.006796c0
mov edi, dword [esp + 0x3c]
not eax
mov ecx, dword [esp + 0x38]
not edx
mov dword [esi], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x684e6a
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov edi, dword [edi + 0x14]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x686b62
bts edx, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + edi], dl
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edi, dword [esp + 0x3c]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [esi + 4]
je 0x686b6e
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.006797b0
test eax, eax
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x48]
sete dl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.006797b0
test eax, eax
je 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x686b6e
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x684f7b
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x684f66
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x684f5d
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
movzx eax, ax
jmp 0x684f9f
movzx eax, byte [eax + 0x7fc438]
jmp 0x684f9f
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x10]
mov eax, 1
dec ecx
shl ax, cl
movzx eax, ax
jmp 0x684f9f
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00680230
mov edx, 1
add esp, 4
lea ecx, [eax - 1]
shl dx, cl
movzx eax, dx
mov ecx, dword [esp + 0x34]
mov esi, ecx
test word [ecx + 2], ax
mov ecx, dword [esp + 0x38]
jne 0x686b6e
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x684fea
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x684fea
push 0
push 0
jmp 0x684d15
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00679c30
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x686b6e
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x684eed
cmp byte [eax + 2], 0
je 0x684eed
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00679c30
jmp 0x686b66
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx + 8]
mov dword [esp + 0x5c], ebx
nop
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x50], edx
cmp eax, dword [edi + 0x1c]
je 0x6850dd
cmp byte [esi + 2], 0
jne 0x685134
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x6850bd
mov eax, dword [esi + 0x10]
test eax, eax
je 0x6850ff
mov eax, dword [eax + ebx*4 + 4]
test eax, eax
je 0x6850ff
mov esi, dword [esi + 0x28]
lea ebx, [eax - 1]
mov edi, dword [esp + 0x3c]
jmp 0x68507b
cmp byte [edi], 0
je 0x685114
mov ecx, esi
call fcn.0067df20
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
jmp 0x685080
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x6852b0
mov ecx, esi
call fcn.0067df20
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
je 0x685080
jmp 0x689c0d
mov ecx, esi
call fcn.0067deb0
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, edi
call fcn.0066f520
lea edx, [esi + 0x54]
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.0066fb70
mov edx, dword [esp + 0x50]
mov ecx, eax
mov edi, dword [esp + 0x3c]
jmp 0x68515d
cmp byte [esi], 3
jne 0x685286
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x685286
mov ebx, dword [esp + 0x48]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [ebx + ecx*8 + 8]
mov dword [esi + 0x4c], ecx
lea ebx, [esi + 0x34]
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [edx], eax
mov dword [esp + 0x4c], ebx
cmp eax, 0x80
jae 0x685180
mov eax, 1
jmp 0x68518f
mov ecx, dword [esi + 0x4c]
call fcn.0065a0c0
mov edx, dword [esp + 0x50]
movzx eax, al
mov dword [ebx], eax
lea edi, [esi + 0x3e]
xor eax, eax
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edx]
jae 0x68527a
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x6853f7
cmp eax, dword [esi + 0x50]
ja 0x6853f7
mov ebx, dword [esp + 0x5c]
movzx eax, word [edi]
cmp eax, ebx
ja 0x685483
mov eax, dword [esi + 0x34]
lea ebx, [esi + 0x34]
mov dword [esp + 0x4c], ebx
cmp eax, dword [edx]
jae 0x68542b
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x8c], ecx
test ecx, ecx
jne 0x6852b8
xor eax, 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 + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x198]
mov edx, dword [edx]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.0067a3c0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x8c], ecx
jmp 0x6852bc
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x8c], ecx
jmp 0x6852bc
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00679c30
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
lea edi, [esi + 0x3e]
jmp 0x6851cc
mov dword [esp + 0x4c], ebx
movzx eax, word [edi]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
mov ebx, dword [edx + eax*4]
mov edi, dword [edi]
add edi, ecx
mov ecx, dword [edx]
add ecx, dword [esp + 0x8c]
mov dword [esp + 0x70], ecx
lea ecx, [eax + 0x17]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
lea ecx, [ecx]
movzx eax, byte [edi]
mov dword [esp + 0x80], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x80]
cmp ecx, 0x80
jae 0x68531f
inc edi
call fcn.0067dfa0
movzx eax, al
cdq
add ebx, eax
mov eax, dword [esp + 0x58]
adc eax, edx
jmp 0x685354
lea edx, [esp + 0x80]
mov ecx, edi
call fcn.0065a0c0
mov ecx, dword [esp + 0x4c]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x80]
mov dword [ecx], eax
mov ecx, dword [esp + 0x80]
call fcn.0067df80
add ebx, eax
mov eax, dword [esp + 0x58]
adc eax, 0
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
inc edx
mov dword [esp + 0x58], eax
add ecx, 4
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ecx
mov dword [eax + edx*4], ebx
mov eax, dword [esp + 0x58]
cmp edx, dword [esp + 0x5c]
ja 0x68538d
cmp edi, dword [esp + 0x70]
jb 0x6852f0
mov ecx, dword [esp + 0x70]
jmp 0x685395
mov ecx, dword [esp + 0x70]
cmp edi, ecx
jb 0x6853cb
cmp edi, ecx
ja 0x6853d6
cmp ebx, dword [esi + 0x50]
jne 0x6853d6
test eax, eax
jne 0x6853d6
sub edi, dword [esp + 0x8c]
cmp dword [esi + 0x4c], 0
mov word [esi + 0x3e], dx
mov dword [esi + 0x34], edi
jne 0x6853c2
lea ecx, [esp + 0x198]
call fcn.00679650
mov ecx, dword [esp + 0x80]
jmp 0x685434
test eax, eax
jb 0x6853a2
ja 0x6853d6
cmp ebx, dword [esi + 0x50]
jbe 0x6853a2
mov eax, dword [esp + 0x50]
cmp dword [eax], 0
jne 0x6853e5
xor edx, edx
mov edi, ecx
jmp 0x6853a2
cmp dword [esi + 0x4c], 0
jne 0x6853f7
lea ecx, [esp + 0x198]
call fcn.00679650
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x689bfd
mov edi, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
xor ecx, ecx
mov dword [esp + 0x80], ecx
movzx eax, word [esi + 0x3e]
mov ebx, dword [esp + 0x5c]
cmp eax, ebx
ja 0x68548e
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
cmp byte [edx + 1], 0xf6
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
jne 0x684046
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.00679ee0
mov edi, dword [esp + 0x40]
add esp, 4
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esi + ebx*4 + 0x5c]
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x6854b8
mov ecx, edi
call fcn.00679c30
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x50]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + ebx*4 + 4]
jb 0x6855af
mov eax, dword [esp + 0x5c]
mov ebx, dword [esi + 0x4c]
add ebx, dword [edx + eax*4]
cmp ecx, 0xc
jae 0x6854fd
mov edx, ecx
mov ecx, ebx
push edi
call fcn.0067dfb0
mov edi, dword [esp + 0x40]
add esp, 4
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov al, byte [esp + 0x6c]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x68555f
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 0x78]
jg 0x689d64
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.00678fd0
add esp, 4
test eax, eax
je 0x685565
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
call fcn.00655080
push str.out_of_memory
push edi
call fcn.0067abb0
add esp, 8
mov edx, 7
jmp 0x689c09
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebx
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 8]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x34]
and eax, 1
mov ax, word [eax*2 + 0x7fac1c]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov al, byte [esp + 0x6c]
mov byte [edi + 0x12], al
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x80]
mov al, byte [eax + 2]
and al, 0xc0
je 0x6855da
cmp al, 0x80
je 0x6855ec
cmp edx, 0xc
jb 0x6855da
test dl, 1
je 0x6855ec
cmp al, 0xc0
je 0x6855ec
mov ecx, edx
call fcn.0067df80
test eax, eax
jne 0x6855f6
mov edx, dword [esp + 0x80]
mov ecx, 0x7fbcb8
jmp 0x6854dc
mov eax, dword [esp + 0x50]
mov edx, ebx
push edi
push dword [esp + 0xe0]
mov edi, dword [esp + 0x44]
mov ecx, esi
push dword [edi + 0x1c]
push 0
push dword [eax + ebx*4]
push dword [esp + 0x94]
call fcn.006833b0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x44], edx
test edx, edx
je 0x684eed
cmp edx, 7
je 0x68553e
cmp edx, 0x12
je 0x689d68
jmp 0x689c0d
mov eax, dword [esp + 0x34]
xor edi, edi
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x54], edi
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x60], ecx
lea eax, [eax + eax*4]
mov edx, dword [ecx + 4]
lea esi, [ebx + eax*8]
xor eax, eax
mov dword [esp + 0x4c], edx
cmp ax, word [ecx + 0x22]
jge 0x683ca7
lea ebx, [edx + 8]
mov edi, edi
movzx eax, word [ebx + 6]
test al, 0x60
je 0x68569e
test al, 0x20
jne 0x68574e
mov eax, dword [esp + 0x34]
cmp dword [eax + 0xc], 0
jne 0x68574b
push dword [esp + 0x6c]
mov dl, byte [ebx]
mov ecx, esi
call fcn.006831a0
movzx ecx, word [esi + 0x10]
add esp, 4
test cl, 1
jne case.default.0x6856d0
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x6856d0
jmp dword [edx*4 + 0x68a508]
test cl, 0x10
jmp 0x685741
test cl, 4
jmp 0x685741
test cl, 2
jmp 0x685741
test cl, 4
je 0x68573e
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x178], edx
add edx, 0
mov dword [esp + 0x17c], eax
adc eax, 0x8000
cmp eax, 0xffff
ja 0x685719
jb 0x685714
cmp edx, 0xffffffff
ja 0x685719
or ecx, 0x20
jmp 0x685725
fild qword [esp + 0x178]
or ecx, 8
fstp qword [esi]
mov edi, 0x10
movzx eax, cx
mov edx, esi
and eax, 0xfffb
mov word [edx + edi], ax
mov edi, dword [esp + 0x54]
jmp case.default.0x6856d0
test cl, 0x28
je 0x689c29
mov ecx, dword [esp + 0x60]
add esi, 0x28
movsx eax, word [ecx + 0x22]
inc edi
add ebx, 0x10
mov dword [esp + 0x54], edi
cmp edi, eax
jl 0x685680
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
push dword [esp + 0x6c]
mov dl, al
mov ecx, esi
call fcn.006831a0
add esp, 4
cmp byte [edi], 0x45
jne 0x6857f8
movzx ecx, word [esi + 0x10]
test cl, 4
je 0x6857f8
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x180], edx
add edx, 0
mov dword [esp + 0x184], eax
adc eax, 0x8000
cmp eax, 0xffff
ja 0x6857e2
jb 0x6857d7
cmp edx, 0xffffffff
ja 0x6857e2
and ecx, 0xfffb
or ecx, 0x20
jmp 0x6857f4
fild qword [esp + 0x180]
and ecx, 0xfff9
or ecx, 8
fstp qword [esi]
mov word [esi + 0x10], cx
mov al, byte [edi + 1]
inc edi
test al, al
je 0x689915
add esi, 0x28
jmp 0x685790
mov ecx, dword [esp + 0x34]
xor edx, edx
mov esi, dword [esp + 0x34]
xor ebx, ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edx
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
lea eax, [eax + eax*4]
mov dword [esp + 0x70], edx
lea ecx, [ecx + eax*8]
mov eax, dword [esi + 8]
mov dword [esp + 0x4c], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x94], eax
test edi, edi
je 0x685898
lea esi, [ecx + 0x10]
push dword [esp + 0x6c]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.006831a0
add esp, 4
cmp byte [edi], 0x45
jne 0x68588a
movzx eax, word [esi]
test al, 4
je 0x68588a
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], bl
jne 0x685862
mov ecx, dword [esp + 0x4c]
mov edx, ebx
mov eax, dword [esp + 0x60]
lea esi, [eax*8 - 0xc]
add esi, ecx
movzx ecx, word [esi - 0xc]
test cl, 1
je 0x6858c9
mov edx, dword [esp + 0x50]
and ecx, 0x400
mov edi, dword [esp + 0x5c]
inc edx
neg ecx
sbb ecx, ecx
and ecx, 0xa
jmp 0x685b25
test cl, 0x24
je 0x685a78
mov ebx, dword [esi - 0x18]
mov edi, dword [esi - 0x1c]
mov dword [esp + 0x188], edi
mov dword [esp + 0x18c], ebx
test ebx, ebx
jg 0x6858fa
jl 0x6858f0
test edi, edi
jae 0x6858fa
mov edx, edi
mov eax, ebx
not edx
not eax
jmp 0x6858fe
mov edx, edi
mov eax, ebx
inc dword [esp + 0x50]
test eax, eax
ja 0x6859f8
jb 0x685911
cmp edx, 0x7f
ja 0x685962
mov eax, edi
xor ecx, ecx
and eax, 1
cmp eax, edi
jne 0x685941
cmp ecx, ebx
jne 0x685941
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x95], 4
jb 0x685941
mov edi, dword [esp + 0x5c]
lea ecx, [edx + 8]
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
jmp 0x685b29
add dword [esp + 0x58], 1
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
adc edi, ecx
mov edx, dword [esp + 0x50]
mov ecx, 1
mov dword [esp + 0x5c], edi
jmp 0x685b29
test eax, eax
ja 0x6859f8
jb 0x685974
cmp edx, 0x7fff
ja 0x685996
mov ebx, dword [esp + 0x58]
mov ecx, 2
mov edx, dword [esp + 0x50]
add ebx, 2
mov dword [esp + 0x58], ebx
adc dword [esp + 0x5c], 0
mov edi, dword [esp + 0x5c]
jmp 0x685b29
test eax, eax
ja 0x6859f8
jb 0x6859a4
cmp edx, 0x7fffff
ja 0x6859c6
mov ebx, dword [esp + 0x58]
mov ecx, 3
mov edx, dword [esp + 0x50]
add ebx, 3
mov dword [esp + 0x58], ebx
adc dword [esp + 0x5c], 0
mov edi, dword [esp + 0x5c]
jmp 0x685b29
test eax, eax
ja 0x6859f8
jb 0x6859d4
cmp edx, 0x7fffffff
ja 0x6859f8
mov ebx, dword [esp + 0x58]
mov ecx, 4
mov edi, dword [esp + 0x5c]
add ebx, 4
mov edx, dword [esp + 0x50]
adc edi, 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
jmp 0x685b29
cmp eax, 0x7fff
ja 0x685a2a
jb 0x685a06
cmp edx, 0xffffffff
ja 0x685a2a
mov ebx, dword [esp + 0x58]
mov ecx, 5
mov edi, dword [esp + 0x5c]
add ebx, 6
mov edx, dword [esp + 0x50]
adc edi, 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
jmp 0x685b29
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
add ebx, 8
mov dword [esp + 0x58], ebx
adc edi, 0
mov dword [esp + 0x5c], edi
test cl, 0x20
je 0x685a6a
fild qword [esp + 0x188]
mov edx, dword [esp + 0x50]
and ecx, 0xffdf
or ecx, 8
mov word [esi - 0xc], cx
mov ecx, 7
fstp qword [esi - 0x1c]
jmp 0x685b29
mov edx, dword [esp + 0x50]
mov ecx, 6
jmp 0x685b29
test cl, 8
je 0x685a9f
inc dword [esp + 0x50]
mov ecx, 7
add ebx, 8
mov dword [esp + 0x58], ebx
adc edx, 0
mov dword [esp + 0x5c], edx
mov edi, edx
mov edx, dword [esp + 0x50]
jmp 0x685b29
mov ebx, dword [esi - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
lea eax, [eax + ebx*2]
add eax, 0xc
mov dword [esp + 0x8c], eax
test ecx, 0x400
je 0x685afa
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
or eax, edx
je 0x685ae8
lea ecx, [esi - 0x1c]
call fcn.006793c0
test eax, eax
jne 0x68553a
add ebx, dword [esi - 0x1c]
jmp 0x685af3
mov eax, ecx
cdq
add dword [esp + 0x54], eax
adc dword [esp + 0x70], edx
mov eax, dword [esp + 0x8c]
add dword [esp + 0x58], ebx
mov edi, dword [esp + 0x5c]
adc edi, 0
push 0
push eax
mov dword [esp + 0x64], edi
call fcn.0065a140
mov edx, dword [esp + 0x58]
add esp, 8
mov ecx, dword [esp + 0x8c]
add edx, eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x50], edx
mov eax, esi
mov dword [eax], ecx
lea eax, [esi - 0x1c]
cmp eax, dword [esp + 0x4c]
je 0x685b42
mov edx, dword [esp + 0x5c]
sub esi, 0x28
jmp 0x6858a5
cmp edx, 0x7e
jle 0x685b70
mov eax, edx
cdq
push edx
push eax
call fcn.0065a140
mov esi, eax
mov eax, dword [esp + 0x58]
add eax, esi
mov dword [esp + 0x58], eax
cdq
push edx
push eax
call fcn.0065a140
mov edx, dword [esp + 0x60]
add esp, 0x10
cmp esi, eax
jge 0x685b75
inc edx
mov dword [esp + 0x50], edx
mov eax, edx
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x94]
add esi, ebx
mov ebx, dword [esp + 0x54]
adc ecx, edi
mov edi, esi
add edi, ebx
mov eax, dword [eax + 0x18]
adc ecx, dword [esp + 0x70]
cdq
cmp ecx, edx
jg 0x685bb0
jl 0x685ba1
cmp edi, eax
ja 0x685bb0
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x685be7
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x689d64
jl 0x685bca
cmp edi, eax
ja 0x689d64
mov ecx, dword [esp + 0x94]
mov edx, esi
call fcn.00679250
test eax, eax
jne 0x68553a
mov ecx, dword [esp + 0x94]
mov eax, 0x10
mov dword [ecx + 0xc], esi
mov word [ecx + 0x10], ax
mov eax, ebx
or eax, dword [esp + 0x70]
je 0x685c06
mov eax, 0x410
mov dword [ecx], ebx
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x50]
mov ebx, dword [ecx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x685c1c
mov byte [ebx], al
inc ebx
jmp 0x685c2b
cdq
mov ecx, ebx
push edx
push eax
call fcn.00659ec0
add esp, 8
add ebx, eax
mov edi, dword [esp + 0x4c]
add edi, 0xc
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x685c75
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x685cb1
movzx edx, byte [edx + 0x7fc8b0]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [esp + 0x54], edx
sub edx, 1
mov byte [edx + esi], cl
je 0x685c6f
mov edi, edi
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + esi], cl
jne 0x685c60
add esi, dword [esp + 0x54]
jmp 0x685cb1
cmp edx, 0x80
jae 0x685c8d
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x685cb1
mov eax, dword [edi]
test eax, eax
jle 0x685cb1
jmp 0x685ca2
push 0
push edx
mov ecx, ebx
call fcn.00659ec0
add ebx, eax
add esp, 8
mov eax, dword [edi]
test eax, eax
je 0x685cb1
push eax
push dword [edi - 4]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, dword [edi]
mov eax, dword [esp + 0x60]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x4c]
cmp edi, eax
je 0x689915
add edi, 0x28
jmp 0x685c32
mov ebx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
cmp dword [ebx + 0xc], 0
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
je 0x685cfd
mov ecx, edx
call fcn.006707c0
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jmp 0x685d35
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0xf8]
push eax
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
call fcn.00676990
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00683310
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 0x128], 0
jne 0x689ea6
mov esi, dword [esp + 0xcc]
cmp dword [esp + 0xe4], esi
jb 0x689919
mov ebx, dword [esp + 0x90]
ja 0x685d90
mov eax, dword [esp + 0x40]
cmp eax, ebx
jb 0x68991d
lea ecx, [ecx]
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x689919
add ebx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
adc esi, 0
mov dword [esp + 0x94], ebx
mov dword [esp + 0xd0], esi
call eax
add esp, 4
test eax, eax
jne 0x689e92
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0xe4], esi
ja 0x685d90
mov eax, dword [esp + 0x40]
jb 0x685ddf
cmp eax, ebx
jae 0x685d90
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x685ec5
cmp dword [ecx + 0xc4], eax
jg 0x689c64
mov ecx, edi
call fcn.006582a0
mov ebx, eax
xor edx, edx
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.006dfb40
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
lea eax, [ebx + 0x21]
push edx
push eax
call fcn.00654db0
mov esi, eax
add esp, 8
test esi, esi
je 0x686163
lea ecx, [ebx + 1]
push ecx
lea edx, [esi + 0x20]
push edi
push edx
mov dword [esi], edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x44]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x685e87
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x685e8d
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x686163
mov esi, dword [ecx + 0x1ec]
xor ebx, ebx
test esi, esi
je 0x685ee6
mov ecx, dword [esi]
mov edx, edi
call fcn.00658620
test eax, eax
je 0x685f07
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x685ed1
mov esi, dword [esp + 0x3c]
push edi
push str.no_such_savepoint:__s
push esi
call fcn.0067abb0
mov edx, 1
add esp, 0xc
mov dword [esp + 0x44], edx
jmp 0x689c11
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
cmp dword [ecx + 0xc4], 0
jle 0x685f21
cmp edx, 1
je 0x689c81
cmp dword [esi + 0x18], 0
jne 0x685f98
cmp byte [ecx + 0x5d], 0
je 0x685f98
mov edi, 1
mov dword [esp + 0x4c], edi
cmp edx, edi
jne 0x685fa0
mov ecx, dword [esp + 0x3c]
mov edx, edi
call fcn.0067d690
mov ecx, eax
mov dword [esp + 0x44], ecx
test ecx, ecx
jne 0x68a155
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov byte [eax + 0x55], 1
call fcn.0067d700
cmp eax, 5
je 0x689cb0
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689ca1
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], edi
mov byte [eax + 0x5d], dl
jmp 0x6860ae
mov dword [esp + 0x4c], 0
mov eax, dword [ecx + 0x1f8]
sub eax, ebx
dec eax
mov dword [esp + 0x54], eax
cmp edx, 2
jne 0x68601e
mov edi, dword [esp + 0x38]
xor ebx, ebx
mov ecx, dword [ecx + 0x18]
and ecx, 1
mov dword [esp + 0x60], ecx
cmp dword [edi + 0x14], ebx
jle 0x686028
mov eax, ecx
mov ecx, dword [esp + 0x38]
xor eax, 1
xor edi, edi
mov dword [esp + 0x70], eax
lea ebx, [ebx]
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.0066ee90
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
inc ebx
mov eax, dword [esp + 0x70]
add edi, 0x10
cmp ebx, dword [ecx + 0x14]
jl 0x685fe0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
jmp 0x68602a
mov dword [esp + 0x60], 0
jmp 0x68602a
mov ecx, edi
xor ebx, ebx
cmp dword [ecx + 0x14], ebx
jle 0x686066
xor edi, edi
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.0066f110
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
inc ebx
mov eax, dword [esp + 0x54]
add edi, 0x10
mov edx, dword [esp + 0x50]
cmp ebx, dword [ecx + 0x14]
jl 0x686033
cmp dword [esp + 0x60], 0
je 0x68609e
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x68608d
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x686074
mov ecx, dword [esp + 0x38]
call fcn.006a5260
mov eax, dword [esp + 0x38]
or dword [eax + 0x18], 1
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c0d
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
je 0x6860e2
lea esp, [esp]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.00654910
dec dword [edi + 0x1f8]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x6860c0
mov edi, dword [esp + 0x50]
cmp edi, 1
jne 0x686112
mov ecx, dword [esp + 0x38]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.00654910
cmp dword [esp + 0x4c], 0
jne 0x686163
mov edx, dword [esp + 0x38]
dec dword [edx + 0x1f8]
jmp 0x686146
cmp dword [esp + 0x4c], 0
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x208], eax
mov dword [edx + 0x20c], ecx
je 0x686146
cmp edi, 2
jne 0x686163
mov ecx, dword [esp + 0x38]
mov edx, edi
push ebx
call fcn.006dfb40
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
cmp byte [edi + 0x97], 3
jne 0x684ef1
mov esi, dword [esp + 0x3c]
mov edi, 0x65
jmp 0x68a161
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x54], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x6861b5
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x689ce5
mov ecx, dword [esp + 0x38]
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x686284
lea eax, [esp + 0x54]
mov edx, edi
push eax
mov ecx, ebx
call fcn.0066df10
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689d14
mov edi, dword [esp + 0x3c]
test byte [edi + 0x98], 0x20
je 0x686294
mov eax, dword [esp + 0x34]
cmp dword [eax + 8], edx
je 0x686294
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x55], dl
je 0x68621c
cmp dword [ecx + 0xc0], 1
jle 0x686294
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x686238
mov eax, dword [ecx + 0x1f8]
inc dword [ecx + 0x1fc]
add eax, dword [ecx + 0x1fc]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
call fcn.006dfb40
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
jne 0x68625a
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.0066f0b0
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x686288
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x34]
cmp word [ecx + 2], 0
je 0x684eed
mov eax, dword [esp + 0x54]
cmp eax, dword [ecx + 0xc]
jne 0x6862bb
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
je 0x684eed
push dword [edi + 0x7c]
mov ebx, dword [esp + 0x3c]
push ebx
call fcn.00654a70
add esp, 8
mov edx, str.database_schema_has_changed
mov ecx, ebx
call fcn.00654f40
mov dword [edi + 0x7c], eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
mov eax, ebx
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x54]
je 0x6862fd
mov ecx, ebx
call fcn.006a51f0
mov eax, dword [edi + 0x98]
mov edx, 0x11
mov esi, dword [esp + 0x3c]
and eax, 0xffffffed
or eax, 1
mov dword [esp + 0x44], edx
mov dword [edi + 0x98], eax
mov edi, ebx
jmp 0x689c15
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x140]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00676880
mov eax, dword [esp + 0x38]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x686389
call fcn.006832f0
mov esi, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [esp + 0x140]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov esi, dword [esp + 0x34]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x140]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esi + 4]
call fcn.006768e0
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x44], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x686407
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x38]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.006b5ea0
mov edx, dword [esp + 0x34]
jmp 0x686415
cmp eax, 2
jne 0x686415
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x68642d
mov ecx, dword [esp + 0x38]
xor edx, edx
call fcn.0067f8f0
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x686473
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x686473
mov ecx, dword [esi + 0x2c]
call fcn.0066aac0
jmp 0x686580
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x689d49
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], 0
mov dword [esp + 0x54], 0
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x4c], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x34]
cmp dl, 0x71
jne 0x6864df
mov eax, dword [eax + 0xc]
movzx edi, word [ecx + 2]
mov edx, dword [esp + 0x3c]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x95]
jae 0x6864e1
mov byte [edx + 0x95], al
jmp 0x6864e1
xor edi, edi
test byte [ecx + 2], 0x10
je 0x6864fe
mov ecx, dword [esp + 0x48]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.006798a0
mov ebx, dword [esi]
mov ecx, dword [esp + 0x34]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x686512
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x54], eax
movzx eax, word [eax + 8]
jmp 0x68651f
cmp al, 0xfd
jne 0x68651b
mov eax, dword [ecx + 0x10]
jmp 0x68651f
mov eax, dword [esp + 0x60]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x3c]
push 0
push eax
call fcn.00682f70
mov esi, eax
add esp, 8
test esi, esi
je 0x68553a
push dword [esi + 0x2c]
mov eax, dword [esp + 0x50]
mov edx, ebx
push dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
or dword [esi + 8], 4
push edi
mov byte [esi + 1], al
mov byte [esi + 2], 1
mov dword [esi + 0x38], ebx
call fcn.0066f290
mov edi, dword [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x2c]
movzx edx, word [eax + 2]
and edx, 3
call fcn.0066ad00
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
movsx eax, word [edi + 0x3c]
push eax
call fcn.00682f70
mov esi, eax
add esp, 8
test esi, esi
je 0x68553a
mov edx, dword [esi + 8]
mov byte [esi + 2], 1
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
call fcn.0066f290
mov edi, dword [esp + 0x48]
mov ebx, eax
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebx
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x686678
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 8], 0x775914
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x6866e3
test byte [esi + 8], 8
jne 0x6866e3
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x6866e3
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
push 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
call fcn.00676460
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
mov dword [esp + 0x60], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.00682f70
mov esi, eax
add esp, 8
test esi, esi
je 0x68553e
mov eax, dword [esp + 0x34]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
mov eax, dword [esp + 0x40]
push edi
push eax
mov ecx, dword [eax]
call fcn.0066c800
mov edx, eax
add esp, 0x10
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.0066df10
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x6867ca
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x60], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x6867a3
movzx eax, word [ecx + 2]
lea edx, [esi + 0x38]
mov ecx, dword [edi]
or eax, 2
push eax
call fcn.006761f0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x68679d
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esp + 0x64]
mov ecx, dword [edi]
push 4
call fcn.0066f290
mov edx, eax
add esp, 0xc
mov dword [esp + 0x44], edx
mov byte [esi + 4], 0
jmp 0x6867ca
push dword [esi + 0x2c]
mov ecx, dword [edi]
mov edx, 1
push 0
push 4
mov dword [esi + 0x38], 1
call fcn.0066f290
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x689d53
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00682f70
add esp, 8
test eax, eax
je 0x68553e
mov edx, dword [esp + 0x34]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [esp + 0x3c]
call fcn.0068ba60
jmp 0x6847e8
mov eax, dword [edi + 0x60]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov edi, dword [esp + 0x3c]
mov dword [edx + 0x1c], eax
jmp 0x684ee7
mov ecx, dword [esp + 0x34]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00682f70
add esp, 8
test eax, eax
je 0x68553e
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x8eb0cd
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x6868d7
mov ecx, edi
call fcn.0067cb10
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x50], 0
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x48]
cmp byte [edi + 4], 0
mov word [edi + 2], 0
mov dword [edi + 0x20], 0
je 0x686a7a
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x60], eax
and al, 0x2e
cmp al, 2
jne 0x68694c
xor edx, edx
mov ecx, esi
call fcn.00683090
mov ecx, esi
call fcn.006796c0
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x4c], edx
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x686a07
test cl, 8
jne 0x6869db
test cl, 1
jne 0x686b62
cmp ebx, 0x17
jae 0x686b62
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x88]
call fcn.0066ff00
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x88], 0
jne 0x686b62
mov eax, dword [esp + 0x40]
test ecx, ecx
mov ecx, dword [esp + 0x38]
je 0x68991d
add dword [esp + 0x34], 0x14
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
add esi, 0x14
jmp 0x68379a
fld qword [esi]
sub esp, 8
fstp qword [esp]
push dword [esp + 0x54]
push dword [esp + 0x60]
call fcn.0067e740
add esp, 0x10
test eax, eax
jle 0x6869ff
test bl, 1
jne 0x686a07
dec ebx
jmp 0x686a07
jns 0x686a07
test bl, 1
je 0x686a07
inc ebx
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x50]
lea esi, [edi + 0x2c]
xor edx, edx
push dword [esp + 0x5c]
call fcn.0066ff20
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x54]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x44], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x88]
cmp ebx, 0x17
jl 0x686b8a
test eax, eax
js 0x686b24
jne 0x686a6a
cmp ebx, 0x18
je 0x686b24
mov dword [esp + 0x88], 0
jmp 0x6869b6
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x7b], al
mov eax, 0
setne al
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0xa0], eax
mov ax, word [edx + 0x10]
mov word [esp + 0xb4], ax
lea eax, [ebx - 1]
test al, 1
mov byte [esp + 0xba], 0
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0xb6], al
mov eax, dword [edx + 0xc]
lea edx, [esp + 0xa0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x88]
mov ecx, dword [esi]
push eax
call fcn.00670230
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp byte [esp + 0x7b], al
je 0x686a43
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], ecx
cmp byte [esp + 0xba], al
je 0x6869a8
jmp 0x686a47
mov dword [esp + 0x88], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.00670970
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
je 0x6869a4
cmp edx, 0x65
jne 0x689c0d
mov dword [esp + 0x44], 0
mov dword [esp + 0x88], 1
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
test eax, eax
jg 0x686ba8
jne 0x686b95
cmp ebx, 0x15
je 0x686ba8
mov ecx, dword [esi]
call fcn.006707b0
mov dword [esp + 0x88], eax
jmp 0x6869a4
mov dword [esp + 0x88], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.00670ac0
jmp 0x686b38
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x683ca7
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x30]
mov dword [esp + 0xa0], eax
mov byte [esp + 0xb6], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [esp + 0xb4], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x118], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0xa4], eax
mov edi, edi
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0xa4]
mov edx, edi
push eax
call fcn.0067f7d0
mov edx, eax
add esp, 8
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov eax, dword [esp + 0x118]
test eax, eax
jle 0x686c63
mov ecx, dword [esp + 0x34]
cmp word [ecx + 2], dx
je 0x686ca2
test eax, eax
jns 0x686b62
test esi, esi
jle 0x689915
mov ecx, dword [edi + 0x2c]
xor edx, edx
dec esi
mov dword [edi + 0x20], 0
call fcn.00670970
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
je 0x686c20
cmp edx, 0x65
jne 0x689c0d
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x44], 0
add ecx, 0x14
mov dword [esp + 0x34], ecx
jmp 0x686b62
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov esi, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x686ce2
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x68389f
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x68955c
cmp byte [eax + 2], 0
mov ecx, dword [esp + 0x38]
je 0x684ef1
jmp case.0x6837be.9
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x684eed
jmp 0x686d51
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xa4], ecx
movzx eax, word [eax + 0x10]
mov word [esp + 0xb4], ax
test ax, ax
je 0x686dba
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [esp + 0xa0], eax
lea edx, [esp + 0xa0]
mov byte [esp + 0xb6], 0
mov ecx, dword [esi + 0x2c]
push ebx
call fcn.00670230
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
jmp 0x686e26
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x686dd2
call fcn.006793c0
test eax, eax
jne 0x68553e
mov ecx, dword [esi + 0x30]
call fcn.0067e270
mov edi, eax
test edi, edi
je 0x68553a
mov edx, dword [esp + 0xa4]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.0067e2d0
mov byte [edi + 0x16], 0
lea ebx, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov edx, edi
push ebx
call fcn.00670230
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edx, edi
mov dword [esp + 0x44], eax
call fcn.00654910
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
test edx, edx
jne 0x689c0d
mov ecx, dword [ebx]
test ecx, ecx
mov byte [esi + 3], dl
setne al
mov dword [esi + 0x20], edx
mov byte [esi + 2], al
mov eax, dword [esp + 0x34]
mov al, byte [eax]
cmp al, 0x1d
jne 0x686e4f
test ecx, ecx
jmp 0x684ee7
test ecx, ecx
jne 0x686b66
cmp al, 0x1b
jne 0x686e9a
movzx edx, word [esp + 0xb4]
test edx, edx
je 0x689915
mov eax, dword [esp + 0xa4]
add eax, 0x10
test byte [eax], 1
jne 0x686b66
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x686e75
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
cmp byte [ecx], 0x1a
jne 0x689915
mov ax, word [ecx + 0x10]
mov ecx, dword [esp + 0x38]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
lea esi, [ebx + eax*8]
jne 0x686f24
push dword [esp + 0x6c]
mov ecx, 0xa
lea edi, [esp + 0xa4]
rep movsd dword es:[edi], dword [esi]
mov dl, 0x43
lea ecx, [esp + 0xa4]
call fcn.006831a0
add esp, 4
test byte [esp + 0xb0], 4
je 0x686b62
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
jmp 0x686f31
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [esp + 0x34]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xf4]
push eax
push ebx
push edi
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x100], 0
call fcn.0066ff20
mov edx, eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
add esp, 0xc
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0xf4]
mov dword [esi + 0x24], eax
cmp dword [esp + 0xf4], 0
mov dword [esp + 0x44], edx
je 0x686faf
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 8], 0
jne 0x686b62
mov ecx, 0x17bb3
call fcn.00701040
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x686ff5
mov ecx, edx
call fcn.006832f0
mov edx, eax
jmp 0x686ffe
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [esp + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x34]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x4c], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x60], edx
test word [edx + 0x10], ax
je 0x687085
mov ecx, edx
call fcn.006832f0
mov dword [esp + 0x60], eax
jmp 0x68708e
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ebx, dword [eax + ecx*4]
test byte [ebx + 8], 2
jne 0x687114
mov ecx, dword [ebx + 0x2c]
lea edx, [esp + 0x4c]
call fcn.0066ff00
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp dword [esp + 0x4c], eax
je 0x6870d5
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], eax
jmp 0x687114
mov ecx, dword [ebx + 0x2c]
call fcn.0066f4f0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
cmp edx, 0x7fffffff
jl 0x687100
jg 0x6870fa
cmp eax, 0xffffffff
jb 0x687100
or dword [ebx + 8], 2
jmp 0x687114
add eax, 1
mov dword [esp + 0x98], eax
adc edx, 0
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x6871d4
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x68714b
mov eax, dword [edx + 4]
test eax, eax
je 0x68713d
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x687134
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea esi, [eax + ecx*8]
jmp 0x687155
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.006796c0
mov cx, word [esi + 0x10]
mov edi, eax
mov eax, 0xf244
mov dword [esi], edi
and cx, ax
mov dword [esi + 4], edx
or cx, 4
mov word [esi + 0x10], cx
cmp edi, 0xffffffff
jne 0x687188
cmp edx, 0x7fffffff
je 0x687244
test byte [ebx + 8], 2
jne 0x687244
mov ecx, dword [esp + 0x9c]
add edi, 1
adc edx, 0
cmp ecx, edx
jg 0x6871c4
jl 0x6871b0
mov eax, dword [esp + 0x98]
cmp eax, edi
jae 0x6871cb
mov eax, edi
mov ecx, edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
jmp 0x6871cb
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x3c]
mov dword [esi], eax
mov dword [esi + 4], ecx
test byte [ebx + 8], 2
je 0x68724e
xor esi, esi
lea eax, [esp + 0x98]
push eax
push 8
call fcn.00657a50
mov eax, dword [esp + 0xa4]
lea edx, [esp + 0x54]
mov ecx, dword [esp + 0xa0]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [esp + 0xa4], ecx
push eax
mov dword [esp + 0xac], eax
xor edx, edx
push ecx
mov ecx, dword [ebx + 0x2c]
call fcn.0066ff20
mov edx, eax
add esp, 0x14
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp dword [esp + 0x4c], eax
jne 0x68724e
inc esi
cmp esi, 0x64
jl 0x6871e0
mov edx, 0xd
jmp 0x689c09
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x34]
mov byte [ebx + 3], 0
mov dword [ebx + 0x20], 0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [edx], eax
mov eax, dword [esp + 0x40]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], eax
jne 0x6872ea
mov ebx, dword [esp + 0x38]
cmp dword [ebx + 0xfc], 0
je 0x6872ea
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx + 0x10]
jmp 0x6872f4
mov ecx, dword [esp + 0x34]
xor ebx, ebx
mov dword [esp + 0x54], ebx
test byte [ecx + 2], 1
je 0x68731e
mov eax, dword [esp + 0x3c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ecx + 2], 0x20
mov eax, dword [esp + 0x60]
je 0x68731e
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 8]
mov dword [esp + 0xb0], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [esp + 0xbc], eax
test cl, 0x10
je 0x687346
mov edi, dword [esi + 0x24]
jmp 0x687348
xor edi, edi
mov eax, dword [esp + 0x48]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x4c]
je 0x687368
mov eax, dword [eax + edx*8]
mov dword [esp + 0xc0], eax
jmp 0x687373
mov dword [esp + 0xc0], 0
and ecx, 0x8a
mov dword [esp + 0xa0], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xa8]
call fcn.00674de0
inc dword [esp + 0xe4]
mov edx, eax
add esp, 8
mov dword [esp + 0x44], edx
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x689c0d
test ebx, ebx
je 0x689915
push dword [esp + 0xac]
mov eax, dword [esp + 0x38]
mov ecx, 0x17
push dword [esp + 0xac]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [esp + 0x60]
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
mov edi, dword [esp + 0x54]
add esp, 0x18
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0x60]
mov eax, dword [edx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [edx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x687445
mov ebx, dword [esp + 0x48]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x687449
xor ecx, ecx
xor eax, eax
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.006753c0
add esp, 8
jmp 0x6847eb
mov edx, dword [esp + 0x34]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x6874b4
mov eax, dword [esp + 0x38]
cmp dword [eax + 0xfc], 0
je 0x6874b4
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x6874b8
cmp byte [esi + 4], 0
je 0x6874b8
mov ecx, dword [esi + 0x2c]
call fcn.0066f4f0
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x34]
mov dword [esi + 0x40], eax
jmp 0x6874b8
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.00675820
inc dword [esp + 0xdc]
mov edx, eax
mov dword [esp + 0x44], edx
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
test edx, edx
jne 0x689c0d
test byte [esp + 0x60], 1
mov ecx, dword [esp + 0x38]
je 0x689919
mov eax, dword [esp + 0x3c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [ecx + 0xfc]
test eax, eax
je 0x689919
test edi, edi
je 0x689919
test byte [edi + 0x1c], 0x80
jne 0x689919
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push ebx
push 9
push dword [ecx + 0xf8]
call eax
mov edi, dword [esp + 0x54]
add esp, 0x18
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
push dword [edi + 0x2c]
push dword [edi + 0x28]
call fcn.0067f8d0
mov ecx, dword [esp + 0x40]
add esp, 8
mov eax, dword [esp + 0x40]
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x11c], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0x11c]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x10]
call fcn.0068dcc0
mov edx, eax
add esp, 8
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp dword [esp + 0x11c], eax
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.0068dc20
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x20], edx
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00683310
mov ecx, dword [edi + 0x60]
mov esi, eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.0066f520
mov ecx, dword [esp + 0x38]
cmp eax, dword [ecx + 0x78]
ja 0x689d64
push esi
mov edx, eax
mov ecx, edi
call fcn.0067a3c0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0xc], eax
jne 0x689915
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x689915
mov ecx, esi
call fcn.00679360
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
test eax, eax
jne 0x685542
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00683310
mov ecx, dword [esp + 0x34]
mov edi, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x68770a
mov ecx, dword [esp + 0x38]
mov eax, 1
mov esi, dword [esp + 0x34]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
cmp byte [esi + 3], 0
je 0x687741
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x3c]
add esi, 0x14
jmp 0x68379a
cmp byte [esi], 2
jne 0x6877a8
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x100]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [esp + 0x44], eax
mov edx, esi
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0067fb00
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c11
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x38]
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 4], edx
mov edi, esi
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, esi
call fcn.0067df60
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp byte [esi + 2], al
je 0x6877e3
mov ecx, dword [esp + 0x38]
mov eax, 1
mov esi, dword [esp + 0x34]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esi + 0x2c]
call fcn.0066f4f0
mov dword [esp + 0x104], edx
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x3c]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x687857
push 3
push 1
mov ecx, edi
call fcn.00682f70
mov ecx, dword [esp + 0x40]
add esp, 8
test eax, eax
je 0x685542
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x8eb0cd
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x689919
mov ecx, dword [eax + 0x2c]
call fcn.0066aac0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0xe8], 0
cmp dl, 0x89
jne 0x6878bd
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.0066f4e0
test eax, eax
jne 0x689915
cmp byte [edi], 0
jne 0x6878ea
test byte [edi + 1], 8
je 0x6878ea
mov dword [esp + 0xe8], 0
mov dword [esp + 0x44], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
jmp 0x68791b
lea edx, [esp + 0xe8]
mov ecx, edi
call fcn.0066feb0
mov edx, eax
mov al, byte [esp + 0xe8]
mov dword [esp + 0x44], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x689c09
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 8], 0
jle 0x689915
cmp dword [esp + 0xe8], 0
mov edi, dword [esp + 0x3c]
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xec]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.0066fe80
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp dword [esp + 0xec], eax
jne 0x686b66
mov ecx, esi
call fcn.006707c0
test edx, edx
jl 0x6879bd
jg 0x687999
test eax, eax
jb 0x6879bd
push edx
push eax
call fcn.0065a410
mov ecx, dword [esp + 0x3c]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x6879bd
mov dword [esp + 0xec], 1
jmp 0x686b66
cmp dword [esp + 0xec], 0
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
inc dword [edi + 0xac]
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0xe0], 1
cmp byte [esi], 1
jne 0x687a18
lea edx, [esp + 0xe0]
mov ecx, esi
call fcn.0068daf0
mov edx, eax
mov dword [esp + 0x44], edx
jmp 0x687a63
mov edi, dword [esi + 0x2c]
mov ecx, edi
call fcn.0066fc80
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x687a3e
mov ecx, edi
mov dword [esp + 0xe0], eax
call fcn.0066fde0
mov edx, eax
jmp 0x687a50
cmp edx, 0x10
jne 0x687a54
mov dword [esp + 0xe0], 1
xor edx, edx
mov dword [esp + 0x44], edx
mov edi, dword [esp + 0x3c]
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0xe0]
mov byte [esi + 2], al
cmp dword [ecx + 8], edx
jle 0x689915
cmp dword [esp + 0xe0], edx
jne 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x38]
call fcn.0068db80
jmp 0x687aef
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00670ac0
jmp 0x687aef
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00670970
mov edx, eax
mov dword [esp + 0x44], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x687b17
mov byte [esi + 2], al
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x68955c
cmp edx, 0x65
jne 0x689c0d
mov dword [esp + 0x44], 0
mov byte [esi + 2], 1
jmp 0x685d53
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ebx, dword [esp + 0x48]
mov ecx, dword [ecx + 4]
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, [ebx + eax*8]
je 0x687b61
mov eax, dword [esp + 0x3c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x687b85
mov ecx, esi
call fcn.006793c0
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov eax, dword [esi + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0xb4], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xb8], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x687bca
mov ecx, dword [edi + 0x24]
jmp 0x687bcc
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0xa4]
and eax, 0x8a
push eax
call fcn.00674de0
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 8
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x687c4c
mov ecx, esi
call fcn.006793c0
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edx, esi
mov ecx, edi
call fcn.0068cbc0
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x48]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0xa0], eax
mov ax, word [edx + 0xc]
mov word [esp + 0xb4], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0xa0]
mov byte [esp + 0xb6], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x144]
push eax
call fcn.00670230
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
cmp dword [esp + 0x144], eax
jne 0x687d22
mov dl, 4
mov ecx, edi
call fcn.00675820
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
cmp word [ecx + 2], 0
je 0x687d3e
mov ecx, dword [esp + 0x38]
call fcn.006a5a30
test eax, eax
je 0x689d80
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x687d94
mov ecx, esi
call fcn.0067df20
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edx, dword [esp + 0x34]
jmp 0x687d9c
mov dword [esp + 0x44], 0
cmp byte [esi + 2], 0
jne 0x687e67
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x108]
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov edx, dword [esi + 0x2c]
push eax
call fcn.0067f5f0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov eax, dword [esp + 0x34]
cmp byte [eax], 0x8d
jne 0x687e37
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x38]
mov byte [edx + 3], 1
mov dword [edx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [edx + 0x28], esi
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov edx, eax
mov ecx, edi
call fcn.00683310
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x34]
mov dword [eax], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00679c30
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x684eed
call fcn.0067deb0
jmp 0x6847eb
mov ebx, dword [esp + 0x34]
cmp dl, 0x2a
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x48]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0xa0], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0xb4], ax
sbb al, al
mov byte [esp + 0xb6], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0xa4], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.0066f4a0
mov esi, dword [edi + 0x2c]
test esi, esi
je 0x689d9c
cmp esi, 0x7fffffff
ja 0x689d9c
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x1c8]
push 0
call fcn.00679c10
add esp, 4
lea eax, [esp + 0x1c8]
mov edx, esi
mov ecx, edi
push eax
call fcn.0067a3c0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov edx, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d4]
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.0067e8f0
add esp, 8
lea ecx, [esp + 0x1c8]
mov esi, eax
call fcn.00679670
mov edi, dword [esp + 0x3c]
mov ecx, ebx
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
test dl, 1
cmovne esi, ecx
test esi, esi
jg 0x686b66
mov ecx, dword [esp + 0x38]
mov esi, ebx
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov ecx, edi
mov edx, ebx
call fcn.00683310
mov edx, dword [esp + 0x38]
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [edx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x689dc4
mov ebx, dword [ebx + 0xc]
lea eax, [esp + 0xf0]
mov ecx, dword [edx + 0x10]
mov edx, dword [esp + 0x34]
push eax
mov eax, ebx
mov dword [esp + 0xf4], 0
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00676830
mov dword [esp + 0x48], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xf0]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x44]
mov dword [esi], eax
test edx, edx
jne 0x689c0d
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x689915
mov ecx, dword [esp + 0x34]
mov edx, ebx
push dword [ecx + 4]
mov ecx, dword [esp + 0x3c]
push eax
call fcn.006a9490
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, dword [esp + 0x34]
inc bl
mov eax, dword [esp + 0x40]
mov byte [esp + 0x87], bl
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x120]
mov ecx, dword [ecx + 0x10]
push eax
mov dword [esp + 0x124], 0
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov dword [esp + 0x128], 0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00676460
mov ecx, dword [esp + 0x38]
add esp, 4
mov edx, eax
mov dword [esp + 0x44], edx
cmp dword [ecx + 0xc], 0
je 0x6847f1
mov edx, dword [esp + 0x120]
add dword [edi + 0x28], edx
mov eax, dword [esp + 0x124]
adc dword [edi + 0x2c], eax
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x6880e9
mov ebx, dword [esp + 0x48]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], edx
mov eax, dword [esp + 0x124]
adc dword [ebx + ecx*8 + 4], eax
mov edx, dword [esp + 0x44]
jmp 0x6847f1
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x688124
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x38]
call fcn.0068bfd0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [ecx + 0x2c]
call fcn.00676510
jmp 0x6847eb
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00683310
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x12c], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [esp + 0x130]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.006761f0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x38]
mov dword [esi], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esp + 0x34]
inc byte [ecx + 0x60]
push 0
push 0
push 0
push dword [eax + 0x10]
push ecx
call fcn.006bdcd0
mov ecx, dword [esp + 0x4c]
mov edx, eax
add esp, 0x14
mov dword [esp + 0x44], edx
dec byte [ecx + 0x60]
test edx, edx
je 0x684ef1
mov esi, dword [esp + 0x3c]
mov edi, ecx
jmp 0x689c15
mov ebx, dword [esp + 0x34]
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x68822f
mov ebx, dword [esp + 0x38]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.006ae600
mov eax, dword [esp + 0x38]
add esp, 4
and dword [ebx + 0x18], 0xffffffef
mov edx, esi
mov ecx, ebx
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.006c60d0
mov ecx, ebx
mov edx, eax
add esp, 8
mov dword [esp + 0x44], edx
or dword [ecx + 0x18], 1
and dword [edi + 0x98], 0xfffffffc
jmp 0x68830b
mov dword [esp + 0xa0], ecx
lea eax, [edi + 0x7c]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0xa8], esi
add esi, esi
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.0066c5e0
push dword [ebx + 0x10]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xbc], eax
push str.sqlite_master
mov eax, dword [ebx + 0x10]
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.00657240
mov esi, eax
add esp, 0x14
test esi, esi
je 0x689dd5
push 0
lea eax, [esp + 0xa4]
mov byte [ebx + 0xb1], 1
push eax
push fcn.006c5e40
push esi
push ebx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc8], 0
call fcn.006bdcd0
add esp, 0x14
mov dword [esp + 0x44], eax
test eax, eax
jne 0x6882f5
mov eax, dword [esp + 0xac]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x6882f5
cmp dword [esp + 0xb4], eax
jne 0x6882f5
mov ecx, 0x181b1
call fcn.00701040
mov dword [esp + 0x44], eax
mov edx, esi
mov ecx, ebx
call fcn.00654910
mov edx, dword [esp + 0x44]
mov ecx, ebx
mov byte [ecx + 0xb1], 0
test edx, edx
je 0x684ef1
call fcn.006a5260
mov edx, dword [esp + 0x44]
cmp edx, 7
je 0x68553e
jmp 0x689c09
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 4]
call fcn.006a2de0
jmp 0x6847eb
mov edx, dword [esp + 0x34]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.006a57f0
mov ecx, dword [esp + 0x3c]
add esp, 4
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.006a5070
mov ecx, dword [esp + 0x3c]
add esp, 4
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.006d8240
mov ecx, dword [esp + 0x3c]
add esp, 4
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x14c]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x48]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.00677620
add esp, 0x14
mov ebx, eax
mov ecx, edi
mov dword [esp + 0x44], ebx
call fcn.00679c30
mov eax, dword [esp + 0x148]
test eax, eax
je 0x688445
test ebx, ebx
jne 0x689de3
mov ecx, dword [esp + 0x48]
dec eax
cdq
push fcn.00654850
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov ecx, edi
mov edx, dword [esp + 0x120]
push 0xffffffffffffffff
call fcn.00679fc0
add esp, 0x10
movzx edx, byte [esp + 0x6c]
mov ecx, edi
call fcn.00678fb0
mov edi, dword [esp + 0x3c]
jmp 0x685d53
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x688487
mov ecx, esi
call fcn.00679dc0
test eax, eax
jne 0x68553a
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [ebx + edi*8]
call fcn.00661a10
mov edi, dword [esp + 0x44]
add esp, 8
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
je 0x688504
mov ecx, dword [esi + 8]
lea edx, [esp + 0x190]
call fcn.00661d20
test eax, eax
je 0x688504
mov eax, dword [esp + 0x34]
push dword [esp + 0x194]
push dword [esp + 0x194]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00679cd0
add esp, 8
jmp 0x685d53
mov ecx, esi
call fcn.00679c30
jmp 0x68955c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x10
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
jne 0x688544
mov ecx, esi
call fcn.00679dc0
test eax, eax
jne 0x68553a
mov edx, dword [esp + 0x48]
test ebx, ebx
je 0x688566
push dword [edx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [edx + edi*8]
mov edx, ebx
call fcn.00661db0
add esp, 8
test eax, eax
jne 0x686b62
test ebx, ebx
js 0x683ca7
mov ebx, dword [esp + 0x48]
jmp 0x688487
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x60], ebx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
cmp word [eax + 2], 0
je 0x6885c4
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x6885c0
lea esp, [esp]
cmp dword [eax + 0x18], ecx
je 0x684eed
mov eax, dword [eax + 4]
test eax, eax
jne 0x6885b0
mov ecx, dword [esp + 0x4c]
mov eax, dword [edi + 0xd8]
mov edi, dword [esp + 0x38]
cmp eax, dword [edi + 0xa0]
jge 0x689dfb
test byte [ecx + 0x10], 0x10
jne 0x6886d6
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
test ecx, ecx
lea edi, [eax + 1]
cmovne edi, eax
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x688609
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov ecx, dword [esp + 0x38]
mov eax, ebx
cdq
push edx
push eax
call fcn.00654d40
mov esi, eax
add esp, 8
test esi, esi
je 0x68553a
mov ecx, dword [esp + 0x4c]
call fcn.00679650
mov eax, dword [esp + 0x4c]
mov ecx, 0x1010
mov word [eax + 0x10], cx
mov dword [eax + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x74]
mov dword [eax + 8], esi
mov dword [eax + 0x24], 0x67c1f0
mov eax, dword [esp + 0x3c]
mov dword [esi], eax
mov dword [esi + 0x3c], edi
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x3c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x18], eax
lea eax, [edi*4 + 0xb]
add eax, edi
lea ecx, [esi + eax*8]
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x6886d9
mov edi, dword [esp + 0x38]
xor edx, edx
mov dword [eax + 0x14], edi
mov word [eax + 0x10], dx
add eax, 0x28
cmp eax, ecx
jne 0x6886c4
jmp 0x6886d9
mov esi, dword [ecx + 8]
mov edi, dword [esp + 0x3c]
lea edx, [esi + 0x58]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x48], edx
inc dword [edi + 0xd8]
mov eax, dword [edi + 0xd0]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], ecx
mov eax, dword [edi + 0xe4]
mov dword [esi + 0x28], eax
mov dword [edi + 0x58], edx
mov dword [edi + 0xe4], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0xd0], esi
mov ecx, dword [esi + 0x3c]
mov dword [edi + 0x14], ecx
movzx eax, word [esi + 0x40]
mov dword [edi + 0x18], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [edi + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x14], 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.VCRUNTIME140.dll_memset
mov esi, dword [ebx]
add esp, 0xc
mov dword [edi + 0x68], esi
mov eax, dword [ebx + 4]
mov dword [esp + 0x74], esi
lea ecx, [esi - 0x14]
mov dword [edi + 0x6c], eax
mov dword [esp + 0x34], ecx
jmp 0x685d53
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00683310
mov esi, eax
mov eax, dword [edi + 0xd0]
push 0x4000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x38]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.00679ee0
mov ecx, dword [esp + 0x3c]
add esp, 4
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [ecx + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x34]
mov esi, eax
je 0x68881e
mov eax, dword [eax + 8]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [esp + 0x40]
adc dword [ecx + 0x20c], edx
add esi, 0x14
jmp 0x68379a
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x688840
add dword [ecx + 0x200], eax
mov eax, dword [esp + 0x40]
adc dword [ecx + 0x204], edx
add esi, 0x14
jmp 0x68379a
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x40]
adc dword [edi + 0x44], edx
add esi, 0x14
jmp 0x68379a
cmp dword [esi + 4], 0
je 0x688888
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x684ef5
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
je 0x686b6e
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x688864
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x6888c0
mov eax, dword [edx + 4]
test eax, eax
je 0x6888aa
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x6888a1
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x6888d1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.006796c0
mov dword [edi], eax
mov ecx, 0xf244
mov ax, word [edi + 0x10]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.006796c0
mov cx, word [esi + 0x10]
mov ebx, 0xf244
and cx, bx
mov dword [esi], eax
or cx, 4
mov dword [esi + 4], edx
mov word [esi + 0x10], cx
cmp dword [edi + 4], edx
jg 0x689915
jl 0x6877f9
cmp dword [edi], eax
jae 0x689915
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x3c]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x683ca7
jg 0x688979
test ecx, ecx
je 0x683ca7
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
jmp 0x686b62
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x6889c7
mov ecx, esi
call fcn.006832f0
mov esi, eax
jmp 0x6889d0
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [esp + 0x48]
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
test eax, eax
jl 0x688a50
jg 0x6889fb
test ecx, ecx
je 0x688a50
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x688a0c
jg 0x688a10
test eax, eax
jne 0x688a10
xor eax, eax
xor ecx, ecx
push ecx
push eax
lea ecx, [esp + 0x138]
call fcn.0065a210
add esp, 8
test eax, eax
jne 0x688a50
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov edi, dword [esp + 0x3c]
mov dword [esi], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x684eed
test edx, edx
jl 0x686b66
jg 0x688aa6
test ecx, ecx
je 0x686b66
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x686b66
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x688ae8
jg 0x688adb
test eax, eax
je 0x688ae8
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
mov esi, dword [esp + 0x34]
or eax, ecx
mov ecx, dword [esp + 0x38]
je 0x686b6e
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.00654db0
mov esi, eax
add esp, 8
test esi, esi
je 0x68553e
mov edx, dword [esp + 0x38]
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov dword [esi + 8], 0
push 1
mov dword [esi], ecx
call fcn.00679c10
mov ecx, dword [esp + 0x38]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x74]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x34]
sar edx, 3
mov eax, edx
mov dword [esi + 0xc], edi
shr eax, 0x1f
add eax, edx
mov byte [esi + 0x19], 0
mov dword [esi + 0x10], eax
mov al, byte [esp + 0x6c]
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov word [ecx], 0xf1a3
mov dword [ecx + 0x10], esi
jmp 0x688b91
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x48]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [esp + 0x60], edi
cmp dword [esi + 8], edi
je 0x688bda
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x688bda
mov edi, dword [esp + 0x34]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x688bc0
mov edi, dword [esp + 0x60]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x34]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x688bf9
mov eax, dword [ecx + 0x1c]
jmp 0x688bfc
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x689915
jle 0x688c33
mov ecx, dword [esi]
mov dl, 1
call fcn.0067a540
mov edi, dword [esp + 0x3c]
push eax
push 0x88d508
push edi
call fcn.0067abb0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x44], eax
jmp 0x688c37
mov edi, dword [esp + 0x3c]
cmp byte [esi + 0x19], 0
je 0x688c5e
mov eax, dword [esp + 0x34]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x688c5a
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.00679cd0
add esp, 8
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x688c71
cmp dword [ecx + 0x18], 0
je 0x688c76
call fcn.00679610
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x44]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x6847f1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 0xc]
mov ecx, esi
test eax, eax
je 0x688cd2
lea eax, [eax + eax*4]
push edx
lea edx, [ebx + eax*8]
call fcn.00679550
mov ecx, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [esp + 0x38]
add esp, 4
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x688cd9
call fcn.006794a0
mov ebx, eax
mov dword [esp + 0x44], ebx
test ebx, ebx
jne 0x689e1f
movzx edx, byte [esp + 0x6c]
mov ecx, esi
call fcn.00678fb0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x1f8]
push eax
lea eax, [esp + 0x1f8]
mov dword [esp + 0x1f4], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [esp + 0x204], 0xffffffff
mov dword [esp + 0x200], 0xffffffff
call fcn.006ff610
mov edx, eax
add esp, 0xc
mov dword [esp + 0x44], edx
test edx, edx
je 0x688d6e
cmp edx, 5
jne 0x689c0d
mov dword [esp + 0x44], 0
mov dword [esp + 0x1f0], 1
mov eax, dword [esp + 0x34]
xor edi, edi
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0x9000
jmp 0x688d90
mov eax, dword [esp + edi*4 + 0x1f0]
cdq
test word [esi + 0x10], cx
je 0x688db1
push edx
push eax
mov ecx, esi
call fcn.00679ca0
add esp, 8
mov ecx, 0x9000
jmp 0x688dbf
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], edx
mov word [esi + 0x10], ax
inc edi
add esi, 0x28
cmp edi, 3
jl 0x688d90
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov ecx, edi
mov edx, ebx
call fcn.00683310
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x60], eax
call fcn.00676ab0
mov ebx, eax
mov ecx, ebx
call fcn.006670f0
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.00667100
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.00666d90
cmp esi, 5
jne 0x688ec5
mov ecx, eax
call fcn.006582a0
test eax, eax
je 0x688e5b
mov ecx, ebx
call fcn.006671c0
test eax, eax
jne 0x688ec5
mov esi, edi
mov eax, dword [esp + 0x44]
test eax, eax
je 0x688e67
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.00666f90
mov ebx, dword [esp + 0x54]
mov ecx, 0x2202
mov word [ebx + 0x10], cx
mov ecx, eax
call fcn.006beef0
mov ecx, eax
mov dword [ebx + 8], eax
call fcn.006582a0
movzx edx, byte [esp + 0x6c]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x12], 1
call fcn.00678fb0
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c0d
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
cmp esi, edi
je 0x688e5d
cmp edi, 5
je 0x688ed3
cmp esi, 5
jne 0x688e5d
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x55], 0
je 0x689e40
cmp dword [eax + 0xc0], 1
jg 0x689e40
cmp edi, 5
jne 0x688f13
mov edx, eax
mov ecx, ebx
call fcn.00667330
mov dword [esp + 0x44], eax
test eax, eax
jne 0x688e65
mov edx, esi
mov ecx, ebx
call fcn.00666f90
jmp 0x688f2d
cmp edi, 4
jne 0x688f22
lea edx, [edi - 2]
mov ecx, ebx
call fcn.00666f90
cmp dword [esp + 0x44], 0
jne 0x688e65
mov ecx, dword [esp + 0x60]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00677cf0
mov dword [esp + 0x44], eax
jmp 0x688e61
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
test eax, eax
je 0x688f5f
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x688f61
xor eax, eax
mov edx, dword [esp + 0x38]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.006ddb90
add esp, 8
jmp 0x6847eb
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0066e7c0
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
je 0x689915
cmp edx, 0x65
jne 0x689c0d
mov dword [esp + 0x44], 0
jmp 0x686b66
mov edx, dword [esp + 0x34]
cmp dword [edx + 4], 0
jne 0x688fdc
mov edx, dword [edx + 8]
call fcn.0067f8f0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x98]
mov esi, dword [esp + 0x34]
mov ecx, dword [ecx + 8]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x98], ecx
mov ecx, dword [esp + 0x38]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.0066f500
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.0066f510
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov al, byte [esi + 0xc]
mov byte [esp + 0x14c], al
test al, al
jne 0x689078
test dword [ecx + 0x24], 4
jne 0x684ef5
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esp + 0x34]
push dword [esp + 0x14c]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00677b60
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x684eed
cmp dl, 6
jne 0x689c0d
mov eax, dword [esp + 0x34]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0067abb0
mov edx, dword [esp + 0x50]
add esp, 0xc
jmp 0x689c0d
mov edx, dword [esp + 0x34]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.006dfa70
mov edx, eax
mov dword [esp + 0x44], edx
test esi, esi
je 0x6847f1
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0067fb00
mov edx, dword [esp + 0x44]
jmp 0x6847f1
xor eax, eax
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [esp + 0xa0]
call fcn.00679f40
mov dword [esp + 0x44], eax
lea eax, [esp + 0xa0]
push eax
call fcn.00680170
add esp, 4
test eax, eax
je 0x68919b
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 4]
call fcn.006df4d0
add esp, 8
mov dword [esp + 0x44], eax
test dword [esp + 0xb0], 0x9000
jne 0x6891b6
cmp dword [esp + 0xb8], 0
je 0x6880e9
lea ecx, [esp + 0xa0]
call fcn.00679610
mov edx, dword [esp + 0x44]
jmp 0x6847f1
mov eax, dword [esp + 0x34]
inc dword [ecx + 0xcc]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.006df880
mov ecx, dword [esp + 0x3c]
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x6881cb
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x4c], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x689e88
mov edi, dword [esi]
test edi, edi
je 0x689e88
lea eax, [esp + 0x4c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [esp + 0x44]
add esp, 8
mov edx, esi
mov dword [esp + 0x44], eax
mov ecx, ebx
call fcn.0067fb00
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x68a050
mov eax, dword [esp + 0x4c]
mov ecx, ebx
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 4]
call fcn.00682f70
add esp, 8
test eax, eax
je 0x689e75
mov ecx, dword [esp + 0x4c]
mov edi, ebx
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.006fd220
test eax, eax
jne 0x68553a
push eax
push 8
call fcn.00654640
mov esi, eax
add esp, 8
test esi, esi
je 0x68553a
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
mov dword [esi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, eax
mov dword [esi + 4], ecx
mov ecx, edi
call fcn.00683310
mov ecx, 1
mov edx, esi
push fcn.00654850
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.00679d10
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0x60]
mov edx, dword [edx + 0x5c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x70], eax
mov ebx, dword [eax + 0x2c]
mov esi, dword [ecx + edi*8 + 0x28]
mov eax, dword [ebx]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + edi*8]
mov dword [esp + 0x60], eax
xor eax, eax
test esi, esi
jle 0x68937b
lea ecx, [ecx + edi*8]
add ecx, 0x50
lea esp, [esp]
mov dword [edx + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x689370
mov eax, dword [esp + 0x34]
push edx
push esi
mov esi, dword [esp + 0x5c]
push dword [eax + 0x10]
push dword [esp + 0x6c]
mov eax, dword [esi + 0x20]
push ebx
call eax
mov edi, dword [esp + 0x50]
add esp, 0x14
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov dword [esp + 0x44], eax
call fcn.0067fb00
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c0d
mov eax, dword [esi + 0x28]
push ebx
call eax
mov ecx, dword [esp + 0x74]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x684eed
jmp 0x686b66
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x48]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x689411
mov ecx, esi
call fcn.00679c30
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov dword [esp + 0x60], eax
xor eax, eax
test byte [edx + 2], 1
mov dword [esp + 0x168], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x16c], eax
mov al, byte [esp + 0x6c]
mov dword [esp + 0x150], esi
mov byte [esp + 0x168], al
je 0x68947f
mov ecx, esi
call fcn.00679c30
mov edx, dword [esp + 0x34]
mov eax, 0x401
mov dword [esi], 0
jmp 0x689492
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [esp + 0x150]
push dword [edx + 8]
push eax
mov eax, dword [esp + 0x68]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [esp + 0x48]
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x44], eax
mov ecx, edi
call fcn.0067fb00
cmp dword [esp + 0x164], 0
jle 0x6894ee
push esi
call fcn.00680170
add esp, 4
push eax
push 0x88d508
push edi
call fcn.0067abb0
mov eax, dword [esp + 0x170]
add esp, 0xc
mov dword [esp + 0x44], eax
movzx edx, byte [esp + 0x6c]
mov ecx, esi
call fcn.00678fb0
mov edx, dword [esp + 0x44]
jmp 0x6847f1
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x683ca7
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
add esp, 4
mov dword [esp + 0x44], eax
mov edx, esi
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0067fb00
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x689c11
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
mov edi, esi
test eax, eax
jne 0x685d53
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov dword [esp + 0x34], eax
jmp 0x685d57
mov ebx, dword [ecx + 0x20]
or dword [ecx + 0x20], 0x4000000
and ebx, 0x4000000
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 2
lea esi, [ecx + eax*8]
jne 0x6895b7
mov byte [esi + 0x12], 1
jmp 0x6895d4
cmp byte [esi + 0x12], 1
je 0x6895d4
mov dl, 1
mov ecx, esi
call fcn.00657c90
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x689c0d
mov eax, dword [edi]
push dword [esi + 8]
push edi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x44], eax
test ebx, ebx
jne 0x6895fb
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, edi
mov edi, dword [esp + 0x3c]
mov ecx, edi
call fcn.0067fb00
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x44]
jmp 0x6847f1
cmp byte [ecx + 0x57], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
jne 0x685542
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x689e88
mov edx, dword [ebx]
test edx, edx
je 0x689e88
cmp dword [edx + 0x34], 0
mov esi, dword [esp + 0x34]
mov esi, dword [esi + 8]
je 0x684ef1
mov al, byte [ecx + 0x5c]
mov ecx, dword [esp + 0x48]
mov edi, dword [edi + 0x5c]
mov byte [esp + 0x7b], al
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x689691
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x689686
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [esp + 0x138]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov edi, dword [esp + 0x3c]
mov edx, ebx
mov dword [esp + 0x44], eax
mov al, byte [esp + 0x7b]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.0067fb00
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x68970a
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 4], edx
je 0x6896fd
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x13c]
mov dword [edi + 0x28], eax
mov eax, edi
mov edi, dword [esp + 0x3c]
mov dword [eax + 0x2c], ecx
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
jmp 0x6847f1
cmp dl, 0x13
jne 0x6896fd
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x6896fd
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x689eb0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], 0
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x68976b
mov ecx, edx
call fcn.006832f0
mov edx, eax
jmp 0x689774
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x38]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x40]
mov dword [edx + 4], 0
add esi, 0x14
jmp 0x68379a
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x6897d1
mov ecx, esi
call fcn.006832f0
mov esi, eax
jmp 0x6897da
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x38]
xor edx, edx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x34]
cmp dword [eax + 0xc], edx
je 0x689809
mov ecx, edi
call fcn.0066c5e0
mov edx, eax
mov eax, dword [esp + 0x34]
cmp edx, dword [eax + 0xc]
cmovb edx, dword [eax + 0xc]
mov ecx, edi
call fcn.0066d6f0
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esi], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], 0
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [esp + 0x60], edi
cmp dword [esi], edi
je 0x68988a
mov eax, dword [esp + 0x3c]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x6c]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x68988a
mov edi, dword [esp + 0x34]
lea edx, [esi + 0x1c]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x689870
mov edi, dword [esp + 0x60]
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x689915
jle 0x6898e5
mov dl, 1
mov ecx, edi
call fcn.0067a540
mov edi, dword [esp + 0x3c]
push eax
push 0x88d508
push edi
call fcn.0067abb0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x44], eax
jmp 0x6898e9
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
lea edx, [edi + 0xe4]
mov ecx, dword [esp + 0x38]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.0067dcf0
mov edx, dword [esp + 0x4c]
add esp, 8
mov dword [esi + 0x14], 0
jmp 0x6847f1
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
add esi, 0x14
jmp 0x68379a
mov eax, dword [esi + 4]
mov ebx, 0xf7ff
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
and word [edx + eax*8 + 0x10], bx
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, ecx
mov ebx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov ecx, ebx
lea edi, [eax + eax*4]
call fcn.00683340
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.00733f20
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 8]
mov edi, dword [esp + 0x3c]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov eax, dword [esp + 0x40]
mov byte [esi + edx], cl
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add esi, 0x14
jmp 0x68379a
mov ecx, dword [esp + 0x34]
mov edx, ecx
mov edi, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.00683340
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.00733f20
mov edi, eax
mov eax, dword [esp + 0x48]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
shl eax, cl
mov ecx, dword [esp + 0x38]
test eax, edx
jne 0x689a0f
inc dword [edi + 0xc4]
jmp 0x686b6e
inc dword [edi + 0xc0]
mov eax, dword [esp + 0x40]
add esi, 0x14
jmp 0x68379a
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x689ad1
cmp byte [edi + 0x95], 0xfe
je 0x689ad1
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x689a53
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x689ad1
test cl, 0x40
je 0x689a81
mov edx, eax
mov ecx, edi
call fcn.00682ad0
mov esi, eax
mov eax, dword [esp + 0x38]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.00654850
add esp, 0xc
jmp 0x689ad1
mov ebx, dword [esp + 0x38]
push eax
cmp dword [ebx + 0xc8], 1
jle 0x689abd
push str.____s
push ebx
call fcn.00657240
mov ecx, dword [ebx + 0xd8]
add esp, 0xc
mov esi, eax
push esi
push edi
push dword [ebx + 0xdc]
push 1
call ecx
push esi
push ebx
call fcn.00654a70
add esp, 0x18
jmp 0x689ad1
mov eax, dword [ebx + 0xd8]
push edi
push dword [ebx + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
cmp eax, dword [0x8bbdc4]
jl 0x689b20
cmp byte [ecx], 0xb5
je 0x684eed
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x689b1e
mov eax, 0x14
jmp 0x689b00
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x689b11
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x689b00
mov ecx, dword [esp + 0x34]
xor eax, eax
inc eax
mov dword [ecx + 4], eax
inc dword [edi + 0xbc]
jmp 0x686b66
mov esi, dword [esp + 0x34]
mov ecx, dword [esi + 4]
mov dword [edi + 0x24], ecx
mov al, byte [esi + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x689bdf
mov ecx, esi
movzx eax, word [ecx + 2]
test ax, ax
je 0x689b91
push dword [eax*4 + 0x7faf88]
push str._s_constraint_failed
push edi
call fcn.0067abb0
mov edi, esi
add esp, 0xc
mov eax, dword [edi + 0x10]
test eax, eax
je 0x689ba6
mov ebx, dword [esp + 0x3c]
push eax
push dword [ebx + 0x7c]
push str._z:__s
push dword [esp + 0x44]
call fcn.00657240
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x689ba6
push dword [ecx + 0x10]
push 0x88d508
push edi
call fcn.0067abb0
mov edi, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, edi
sub ecx, dword [esp + 0x74]
push dword [eax + 0x7c]
push dword [eax + 0xc8]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [edi + 4]
call fcn.006575b0
mov edi, dword [esp + 0x50]
add esp, 0x14
mov ecx, edi
call fcn.0067d700
mov esi, dword [esp + 0x3c]
mov edi, eax
cmp edi, 5
jne 0x689ff6
mov dword [esi + 0x24], eax
jmp 0x68a15d
mov ecx, 0x172ef
call fcn.00701040
mov edx, eax
mov dword [esp + 0x44], edx
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
cmp byte [edi + 0x57], 0
je 0x68a064
mov edx, 7
jmp 0x68a08f
mov ecx, dword [esp + 0x4c]
add edi, edi
push dword [ecx + edi*8]
mov ecx, dword [esp + 0x64]
push dword [ecx]
mov ecx, esi
push dword [eax*4 + 0x8d21a4]
call fcn.00683670
mov esi, dword [esp + 0x48]
push eax
push str.cannot_store__s_value_in__s_column__s._s
push esi
call fcn.0067abb0
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x44], edx
jmp 0x689c11
mov esi, dword [esp + 0x3c]
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.0067abb0
mov edx, 5
add esp, 8
mov dword [esp + 0x44], edx
jmp 0x689c11
mov esi, dword [esp + 0x3c]
push str.cannot_release_savepoint___SQL_statements_in_progress
push esi
call fcn.0067abb0
mov edx, 5
add esp, 8
mov dword [esp + 0x44], edx
jmp 0x689c11
mov edi, dword [esp + 0x38]
mov esi, eax
mov byte [edi + 0x55], 0
jmp 0x689c15
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x74]
mov edi, 5
mov esi, dword [esp + 0x3c]
imul ecx
mov ecx, dword [esp + 0x38]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [esi + 0x24], edi
jmp 0x68a161
mov edi, dword [esp + 0x38]
and edx, 0x100000
or edx, 0
mov esi, dword [esp + 0x3c]
je 0x689d06
mov edx, 8
mov dword [esp + 0x44], edx
jmp 0x689c15
mov edx, 0xb
mov dword [esp + 0x44], edx
jmp 0x689c15
mov esi, dword [esp + 0x3c]
cmp dl, 5
jne 0x689c11
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x44]
imul ecx
mov dword [esi + 0x24], edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
jmp 0x68a15d
mov edx, 0x204
jmp 0x689c09
mov ecx, dword [esi + 0x10]
call fcn.0066d270
mov edx, dword [esp + 0x44]
jmp 0x689c0d
mov edi, dword [esp + 0x3c]
push str.string_or_blob_too_big
push edi
call fcn.0067abb0
add esp, 8
mov edx, 0x12
jmp 0x689c09
push str.index_corruption
mov edx, 0x17fe8
mov ecx, 0x30b
call fcn.00701010
add esp, 4
jmp 0x689c07
push 0x88c2c4
push 0x180b5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.006575b0
add esp, 0x14
mov edx, 0xb
jmp 0x689c09
mov edx, 6
mov byte [edi + 0x94], 2
jmp 0x689c09
mov ecx, ebx
call fcn.006a5260
mov ecx, ebx
jmp 0x685542
push dword [esp + 0x114]
call fcn.00654850
mov edx, dword [esp + 0x48]
add esp, 4
jmp 0x689c0d
mov esi, dword [esp + 0x3c]
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [esp + 0x4c], 1
call fcn.0067abb0
add esp, 8
mov edx, 1
jmp 0x689c15
push esi
call fcn.00680170
add esp, 4
push eax
push 0x88d508
push edi
call fcn.0067abb0
mov edx, dword [esp + 0x50]
add esp, 0xc
jmp 0x689c0d
cmp esi, 5
mov dword [esp + 0x44], 1
mov esi, dword [esp + 0x3c]
mov ecx, str.out_of
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push esi
call fcn.0067abb0
add esp, 0xc
mov edx, 1
jmp 0x689c11
push dword [esp + 0x4c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov edi, ebx
jmp 0x68553e
mov edx, 6
jmp 0x689c09
or ebx, 0xffffffff
or eax, 0xffffffff
mov dword [esp + 0x90], ebx
mov dword [esp + 0xcc], eax
mov edx, 9
jmp 0x689c09
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [edi + 0x94], al
jmp 0x689c0d
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0x34]
add eax, 2
mov edx, dword [esp + 0x48]
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [edi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x685542
test byte [ecx + 0x5e], 4
je 0x689f0f
mov eax, dword [ecx + 0xd8]
push 0
push edi
push dword [ecx + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esp + 0x74]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x20], eax
mov edi, 0x64
jmp 0x68a159
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
lea esi, [edx + 0x55]
movzx eax, byte [esi]
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
cmp ebx, eax
je 0x68a012
test ecx, ecx
je 0x689f68
mov edi, dword [esp + 0x38]
mov edx, 0x204
mov ecx, edi
call fcn.006fe810
mov al, 1
jmp 0x689fa9
test ebx, ebx
je 0x689f8d
cmp dword [edx + 0xc4], 0
jle 0x689f8d
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.0067abb0
add esp, 8
mov edx, 5
jmp 0x689c09
mov edx, 1
mov ecx, edi
call fcn.0067d690
mov edi, eax
test edi, edi
jne 0x68a159
mov edi, dword [esp + 0x38]
mov al, bl
mov byte [esi], al
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0067d700
cmp eax, 5
jne 0x689fef
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x74]
mov edi, 5
imul ecx
mov ecx, dword [esp + 0x38]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ecx + 0x55], al
mov dword [esi + 0x24], edi
jmp 0x68a161
mov ecx, edi
call fcn.006fe200
cmp dword [esi + 0x24], 0
mov ecx, 0x65
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x44], ecx
mov edi, ecx
jmp 0x68a15d
test ebx, ebx
jne 0x68a02d
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.0067abb0
add esp, 8
lea edx, [ebx + 1]
jmp 0x689c09
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push edi
call fcn.0067abb0
add esp, 8
mov edx, 1
jmp 0x689c09
mov esi, ebx
jmp 0x689c11
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
jmp 0x689c15
cmp edx, 0x210a
jne 0x68a093
push 0x88c2c4
push 0x18947
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.006575b0
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x44], edx
cmp dword [esi + 0x7c], 0
jne 0x68a0b7
cmp edx, 0xc0a
je 0x68a0b7
mov ecx, edx
call fcn.006fe950
push eax
push 0x88d508
push esi
call fcn.0067abb0
add esp, 0xc
mov ebx, dword [esp + 0x44]
mov edx, ebx
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x24], ebx
call fcn.00658340
mov ecx, dword [esp + 0x34]
mov eax, 0x66666667
sub ecx, dword [esp + 0x74]
push dword [esi + 0x7c]
imul ecx
push dword [esi + 0xc8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.006575b0
add esp, 0x14
cmp byte [esi + 0x97], 2
jne 0x68a10a
mov ecx, esi
call fcn.0067d700
cmp ebx, 0xc0a
jne 0x68a13a
mov ecx, dword [esp + 0x38]
call fcn.00655080
mov ecx, dword [esp + 0x38]
mov al, byte [esp + 0x87]
mov edi, 1
test al, al
je 0x68a161
movzx edx, al
dec edx
call fcn.006a51f0
jmp 0x68a15d
cmp ebx, 0xb
jne 0x68a11b
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x55], 0
jne 0x68a11f
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x68a11f
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0xcc]
jmp 0x68a170
cmp dword [esp + 0xe4], ebx
jb 0x68a1dd
mov edx, dword [esp + 0x90]
ja 0x68a18c
cmp dword [esp + 0x40], edx
jb 0x68a1dd
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x68a1dd
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x94], edx
adc ebx, 0
call eax
mov ecx, dword [esp + 0x3c]
add esp, 4
test eax, eax
je 0x68a170
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x90], ebx
mov dword [esp + 0xcc], eax
mov edi, ecx
mov dword [esp + 0x44], edx
jmp 0x689c15
mov ecx, dword [esp + 0x40]
add dword [esi + 0xb4], ecx
cmp dword [esi + 0xa0], 0
je 0x68a1f7
mov ecx, esi
call fcn.0067c100
mov ecx, dword [esp + 0x1fc]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0073297b
mov esp, ebp
pop ebp
ret