Function at 0x4618b9
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x27c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi]
mov ebx, dword [edi + 0x58]
mov dword [ebp + 0x68], eax
mov al, byte [eax + 0x42]
xor ecx, ecx
mov byte [ebp + 0x38], al
mov eax, dword [edi + 0x5c]
mov esi, edi
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x33], cl
mov dword [ebp + 8], ecx
mov dword [ebp - 4], ecx
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x6c], eax
call fcn.00425ecc
cmp dword [edi + 0x28], 7
je 0x464135
mov eax, dword [ebp + 0x68]
xor ecx, ecx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x68], ecx
mov edx, dword [eax + 0xf8]
mov dword [eax + 0x184], ecx
test edx, edx
jne 0x465bb6
cmp dword [eax + 0x130], ecx
je 0x461940
mov ecx, dword [eax + 0x138]
mov eax, dword [edi + 0xac]
div ecx
sub ecx, edx
mov dword [ebp + 0x14], ecx
mov ebx, dword [edi + 0x24]
imul ebx, ebx, 0x14
add ebx, dword [ebp + 0x3c]
mov dl, byte [ebx]
inc dword [ebp - 4]
movzx eax, dl
cmp eax, 0xa2
ja case.0x46195c.96
jmp dword [eax*4 + 0x465bdd]
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop esi
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x465747
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov ebx, dword [eax]
imul ebx, ebx, 0x14
add ebx, dword [ebp + 0x3c]
mov ecx, 0x80
mov word [eax + 8], cx
jmp case.0x46195c.96
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
dec eax
cdq
mov dword [ecx], eax
push 4
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [ebx + 8], 0
jne 0x465747
jmp case.0x46195c.96
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x3c]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov edx, dword [eax]
imul edx, edx, 0x14
mov edx, dword [edx + ecx + 8]
imul edx, edx, 0x14
lea ebx, [edx + ecx - 0x14]
jmp 0x46199a
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop edi
idiv edi
mov esi, dword [ecx]
imul esi, esi, 0x14
add esi, dword [ebp + 0x3c]
mov ebx, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46195c.96
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 0x6c]
imul eax, eax, 0x28
test byte [eax + ecx + 8], 1
je case.0x46195c.96
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop ecx
idiv ecx
cmp dword [ebx + 4], 0
mov edi, dword [ebp + 0x7c]
mov ecx, eax
mov dword [ebp + 0x5c], ecx
jne 0x465794
lea eax, [edi + 0xb8]
mov edx, dword [eax]
test edx, edx
je 0x465794
mov ecx, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [ebp + 0x68]
mov esi, edi
mov ecx, dword [esi + 0x2c]
dec dword [esi + 0xc0]
call fcn.0041e9d4
mov edi, edx
call fcn.0044e635
cmp dword [ebx + 8], 4
jne 0x461a90
mov ecx, dword [esi + 0x58]
imul eax, eax, 0x14
mov eax, dword [eax + ecx + 8]
dec eax
mov ecx, dword [esi + 0x58]
imul eax, eax, 0x14
mov edx, dword [esi + 0x5c]
add eax, ecx
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x6c], edx
mov ebx, eax
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
fstp qword [eax]
jmp case.0x46195c.96
mov edi, dword [ebp + 0x7c]
mov eax, ebx
mov ecx, edi
call fcn.0041efd7
push dword [ebx + 0x10]
mov esi, eax
mov byte [ebx], 0x3a
call fcn.004197fc
cmp byte [ebp + 0x38], 1
pop ecx
mov dword [ebx + 4], eax
je 0x461b75
push 1
push 0xffffffffffffffff
push dword [ebx + 0x10]
xor eax, eax
mov ecx, esi
call fcn.0042dd4a
mov dword [ebp + 0x70], eax
movzx eax, byte [ebp + 0x38]
push eax
mov eax, esi
call fcn.0042dca2
add esp, 0x10
test eax, eax
jne 0x464135
and dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x461b65
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x68]
call fcn.00419591
mov byte [ebx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x68]
cmp eax, dword [ecx + 0x60]
jg 0x462287
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp + 0x38]
mov byte [ecx + 0xa], al
mov esi, dword [ebx + 0xc]
test esi, esi
jle case.0x46195c.96
movzx eax, word [ebx + 2]
imul esi, esi, 0x28
mov edi, dword [ebp + 0x6c]
cdq
mov dword [ebp - 0x144], edx
mov edx, dword [esi + edi]
cmp edx, eax
jne case.0x46195c.96
mov eax, dword [esi + edi + 4]
cmp eax, dword [ebp - 0x144]
jne case.0x46195c.96
mov eax, 0xa10
mov word [ecx + 8], ax
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov edi, dword [ebx + 0xc]
sub edi, dword [ebx + 8]
mov esi, eax
mov eax, dword [ebx + 4]
neg eax
sbb eax, eax
and eax, 0x100
inc eax
and dword [esi + 0xc], 0
movzx eax, ax
mov dword [ebp + 0x5c], eax
jmp 0x461c2e
add esi, 0x28
mov eax, esi
call fcn.0041deae
and dword [esi + 0xc], 0
mov ax, word [ebp + 0x5c]
dec edi
mov word [esi + 8], ax
test edi, edi
jg 0x461c1b
jmp case.0x46195c.96
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov edx, 0xff61
mov cx, word [eax + 8]
and cx, dx
or cx, 1
jmp 0x46199f
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
push 0
push dword [ebx + 4]
mov esi, eax
push dword [ebx + 0x10]
xor eax, eax
mov ecx, esi
call fcn.0042dd4a
mov al, byte [ebp + 0x38]
add esp, 0xc
mov byte [esi + 0xa], al
jmp case.0x46195c.96
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
imul eax, eax, 0x28
mov ecx, dword [ecx + 0x74]
lea esi, [eax + ecx - 0x28]
mov ecx, esi
call fcn.0041df72
test eax, eax
jne 0x462287
push 0x800
push esi
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
push eax
call fcn.0041dfa8
add esp, 0xc
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 8]
imul esi, esi, 0x28
mov eax, dword [ebx + 0xc]
imul edi, edi, 0x28
add esi, dword [ebp + 0x6c]
add edi, dword [ebp + 0x6c]
mov dword [ebp + 0x60], eax
push edi
call fcn.0041dffe
mov eax, 0x1000
pop ecx
test word [edi + 8], ax
je 0x461cf9
mov eax, edi
call fcn.0042c5db
test eax, eax
jne 0x464132
add esi, 0x28
add edi, 0x28
dec dword [ebp + 0x60]
jne 0x461cd8
jmp case.0x46195c.96
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 8]
imul edi, edi, 0x28
mov eax, dword [ebx + 0xc]
imul esi, esi, 0x28
add edi, dword [ebp + 0x6c]
add esi, dword [ebp + 0x6c]
mov dword [ebp + 0x58], eax
push 0x1000
push edi
push esi
call fcn.0041dfa8
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x461d4a
mov eax, esi
call fcn.0042c5db
test eax, eax
jne 0x464132
mov eax, dword [ebp + 0x58]
dec dword [ebp + 0x58]
test eax, eax
je case.0x46195c.96
add esi, 0x28
add edi, 0x28
jmp 0x461d21
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
push 0x1000
push eax
jmp 0x461ca9
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x6c]
imul eax, eax, 0x28
push dword [eax + ecx + 4]
push dword [eax + ecx]
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, ecx
call fcn.0041df13
pop ecx
pop ecx
jmp case.0x46195c.96
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
imul ecx, ecx, 0x28
mov edi, dword [ebx + 0xc]
imul esi, esi, 0x28
add ecx, dword [ebp + 0x6c]
imul edi, edi, 0x28
add esi, dword [ebp + 0x6c]
movzx eax, word [ecx + 8]
mov dl, byte [esi + 8]
add edi, dword [ebp + 0x6c]
or dl, al
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x54], esi
test dl, 1
je 0x461dd3
mov eax, edi
call fcn.0041deae
jmp case.0x46195c.96
test eax, 0x4000
je 0x461de7
mov eax, dword [ebp + 0x64]
call fcn.00429417
mov ecx, dword [ebp + 0x64]
jmp 0x461de9
xor eax, eax
test eax, eax
jne 0x464132
mov eax, 0x4000
test word [esi + 8], ax
je 0x461e08
mov eax, esi
call fcn.00429417
mov ecx, dword [ebp + 0x64]
jmp 0x461e0a
xor eax, eax
test eax, eax
jne 0x464132
test byte [ecx + 8], 0x12
jne 0x461e31
mov esi, dword [ebp + 0x64]
push eax
push dword [ebp + 0x38]
call fcn.0042dcc5
pop ecx
pop ecx
test eax, eax
jne 0x464132
mov esi, dword [ebp + 0x54]
test byte [esi + 8], 0x12
jne 0x461e4e
mov esi, dword [ebp + 0x54]
push 0
push dword [ebp + 0x38]
call fcn.0042dcc5
pop ecx
pop ecx
test eax, eax
jne 0x464132
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0xc]
add eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x68]
mov eax, dword [eax + 0x60]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x462287
jl 0x461e7d
cmp dword [ebp - 0x94], eax
ja 0x462287
xor eax, eax
cmp edi, dword [ebp + 0x54]
mov esi, edi
sete al
push eax
mov eax, dword [ebp - 0x94]
add eax, 2
call fcn.0042932f
pop ecx
test eax, eax
jne 0x464132
mov ax, word [edi + 8]
mov esi, dword [ebp + 0x54]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [edi + 8], ax
cmp edi, esi
je 0x461ecb
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [edi + 0x10]
call fcn.0046c470
add esp, 0xc
mov eax, dword [ebp + 0x64]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [edi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.0046c470
mov eax, dword [ebp - 0x94]
mov ecx, dword [edi + 0x10]
mov byte [eax + ecx], 0
mov ecx, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov dword [edi + 0xc], eax
mov al, byte [ebp + 0x38]
mov ecx, 0x200
add esp, 0xc
or word [edi + 8], cx
mov byte [edi + 0xa], al
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
mov eax, esi
call fcn.0041efa7
mov edi, dword [ebx + 8]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
movzx eax, ax
mov dword [ebp + 0x60], eax
mov eax, edi
mov dword [ebp + 0x54], edi
call fcn.0041efa7
mov cx, word [edi + 8]
or cx, word [esi + 8]
movzx edx, ax
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov dword [ebp + 0x5c], edx
and dl, byte [ebp + 0x60]
mov dword [ebp + 0x4c], eax
movzx ecx, cx
test dl, 4
je 0x462055
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [ebp - 0x34], edx
mov edx, dword [edi]
mov dword [ebp], edx
mov edx, dword [edi + 4]
mov dword [ebp + 4], edx
movzx edx, byte [ebx]
sub edx, 0x58
mov byte [ebp + 0x53], 1
je 0x462020
dec edx
je 0x46200c
dec edx
je 0x461ffa
dec edx
je 0x461fbb
mov edx, dword [ebp - 0x34]
mov esi, ecx
or esi, edx
je 0x461dc9
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x461fac
xor ecx, ecx
inc ecx
xor edx, edx
push edx
push ecx
push dword [ebp + 4]
push dword [ebp]
call fcn.00470cb0
jmp 0x461ff2
mov edx, ecx
or edx, dword [ebp - 0x34]
je 0x461dc9
mov eax, ecx
and eax, dword [ebp - 0x34]
cmp eax, 0xffffffff
jne 0x461fe3
cmp dword [ebp], 0
jne 0x461fe3
cmp dword [ebp + 4], 0x80000000
je 0x462067
push dword [ebp - 0x34]
push ecx
push dword [ebp + 4]
push dword [ebp]
call fcn.00470c00
mov dword [ebp], eax
mov dword [ebp + 4], edx
jmp 0x462032
push dword [ebp - 0x34]
lea eax, [ebp]
push ecx
push eax
call fcn.0041a2ad
add esp, 0xc
jmp 0x46201a
push dword [ebp - 0x34]
lea eax, [ebp]
push ecx
call fcn.0041a261
pop ecx
pop ecx
test eax, eax
jne 0x462067
jmp 0x462032
push dword [ebp - 0x34]
lea edi, [ebp]
push ecx
call fcn.0041a1dd
pop ecx
pop ecx
test eax, eax
jne 0x462064
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp]
mov dword [eax], ecx
mov ecx, dword [ebp + 4]
mov dword [eax + 4], ecx
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
or cx, 4
jmp 0x46199f
test cl, 1
jne 0x461dc9
mov byte [ebp + 0x53], 0
jmp 0x462067
mov edi, dword [ebp + 0x54]
mov ecx, esi
call fcn.0041dd7c
fstp qword [ebp + 0x28]
mov ecx, edi
call fcn.0041dd7c
movzx eax, byte [ebx]
sub eax, 0x58
je 0x4620ea
dec eax
je 0x4620e5
dec eax
je 0x4620e0
dec eax
je 0x4620cf
fld qword [ebp + 0x28]
call fcn.00470b86
mov esi, eax
mov edi, edx
call fcn.00470b86
mov ecx, esi
or ecx, edi
je 0x462144
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4620b2
xor esi, esi
inc esi
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00470cb0
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
fild qword [ebp - 0xe8]
jmp 0x4620ed
fldz
fcomp qword [ebp + 0x28]
fnstsw ax
test ah, 0x44
jnp 0x462142
fdiv qword [ebp + 0x28]
jmp 0x4620ed
fmul qword [ebp + 0x28]
jmp 0x4620ed
fsub qword [ebp + 0x28]
jmp 0x4620ed
fadd qword [ebp + 0x28]
fstp qword [ebp + 0x28]
push ecx
fld qword [ebp + 0x28]
push ecx
fstp qword [esp]
call fcn.004197d3
add esp, 8
test eax, eax
jne 0x462144
mov esi, dword [ebp + 0x4c]
fld qword [ebp + 0x28]
mov ax, word [esi + 8]
fstp qword [esi]
mov ecx, 0x3e00
and ax, cx
or ax, 8
mov word [esi + 8], ax
mov al, byte [ebp + 0x5c]
or al, byte [ebp + 0x60]
test al, 8
jne case.0x46195c.96
cmp byte [ebp + 0x53], 0
jne case.0x46195c.96
call fcn.0041dd9a
jmp case.0x46195c.96
fstp st(0)
mov eax, dword [ebp + 0x4c]
jmp 0x461dc9
mov eax, dword [ebx + 4]
test eax, eax
je case.0x46195c.96
push 0
push 0
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
jmp 0x461d8c
movzx eax, word [ebx + 2]
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0x5c], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
call fcn.0042371b
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
je 0x464132
and dword [ecx], 0
mov eax, dword [ebx + 0x10]
mov dword [ecx + 4], eax
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop esi
idiv esi
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 0x7c]
mov dword [ecx + 0xc], eax
mov al, byte [ebp + 0x5c]
mov byte [ecx + 0x1a], al
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], ecx
mov byte [ebx], 0x48
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
cmp dword [esi], edi
je 0x4621ea
movzx eax, byte [esi + 0x1a]
dec eax
mov dword [esi], edi
js 0x4621ea
lea ecx, [esi + eax*4 + 0x1c]
mov edx, dword [ebx + 8]
add edx, eax
imul edx, edx, 0x28
add edx, dword [ebp + 0x6c]
dec eax
mov dword [ecx], edx
sub ecx, 4
test eax, eax
jge 0x4621d5
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edi + 8], ax
mov eax, dword [esi + 4]
lea ecx, [esi + 0x1c]
push ecx
movzx ecx, byte [esi + 0x1a]
push ecx
push esi
mov byte [esi + 0x19], 0
call dword [eax + 0xc]
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x462261
cmp dword [esi + 0x14], 0
je 0x46223e
push edi
call fcn.0042e23a
push eax
push 0x494b30
push dword [ebp + 0x7c]
call fcn.00431cb8
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp + 0x70], eax
push dword [ebx + 4]
mov eax, dword [ebp + 0x7c]
push dword [esi + 0x10]
add eax, 0xcc
push dword [ebp + 0x68]
call fcn.0041e30a
add esp, 0xc
cmp dword [ebp + 0x70], 0
jne 0x465a8d
test byte [edi + 8], 0x12
je case.0x46195c.96
movzx eax, byte [ebp + 0x38]
push eax
mov eax, edi
call fcn.0042dca2
pop ecx
mov ecx, edi
call fcn.0041df72
test eax, eax
je case.0x46195c.96
push str.string_or_blob_too_big
push dword [ebp + 0x7c]
call fcn.00431cb8
pop ecx
pop ecx
mov dword [ebp + 0x70], 0x12
jmp 0x465a8d
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 4]
imul ecx, ecx, 0x28
mov edi, dword [ebx + 0xc]
imul esi, esi, 0x28
add ecx, dword [ebp + 0x6c]
imul edi, edi, 0x28
add esi, dword [ebp + 0x6c]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
add edi, dword [ebp + 0x6c]
test al, 1
jne 0x461dc7
call fcn.0041dd28
mov ecx, esi
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], edx
call fcn.0041dd28
mov esi, eax
mov al, byte [ebx]
mov byte [ebp + 0x53], al
cmp al, 0x54
jne 0x4622f3
and dword [ebp + 0xc], esi
and dword [ebp + 0x10], edx
jmp 0x4623d6
cmp byte [ebp + 0x53], 0x55
jne 0x462304
or dword [ebp + 0xc], esi
or dword [ebp + 0x10], edx
jmp 0x4623d6
mov eax, esi
or eax, edx
je 0x4623d6
test edx, edx
jg 0x462345
jl 0x462318
test esi, esi
jae 0x46233a
mov al, 0xad
sub al, byte [ebp + 0x53]
cmp edx, 0xffffffff
mov byte [ebp + 0x53], al
jl 0x462335
jg 0x46232c
cmp esi, 0xffffffc0
jbe 0x462335
neg esi
adc edx, 0
neg edx
jmp 0x46233a
push 0x40
pop esi
xor edx, edx
test edx, edx
jl 0x462369
jg 0x462345
cmp esi, 0x40
jb 0x462369
cmp dword [ebp + 0x10], 0
jg 0x46235e
jl 0x462353
cmp dword [ebp + 0xc], 0
jae 0x46235e
cmp byte [ebp + 0x53], 0x56
je 0x46235e
or eax, 0xffffffff
jmp 0x462360
xor eax, eax
cdq
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], edx
jmp 0x4623d6
push 8
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0046c470
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
add esp, 0xc
cmp byte [ebp + 0x53], 0x56
mov ecx, esi
jne 0x462396
call fcn.00471340
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
jmp 0x4623c4
call fcn.00471a80
cmp dword [ebp + 0x10], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
jg 0x4623c4
jl 0x4623af
cmp dword [ebp + 0xc], 0
jae 0x4623c4
push 0x40
pop ecx
or edx, 0xffffffff
sub ecx, esi
mov eax, edx
call fcn.00471340
or dword [ebp - 0x14], eax
or dword [ebp - 0x10], edx
push 8
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0046c470
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 4], eax
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 4
mov word [edi + 8], ax
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
call fcn.0041ddf6
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
movzx eax, word [esi + 8]
test al, 4
jne 0x462453
push dword [ebp + 0x38]
mov eax, esi
push 0x43
call fcn.0042e3e7
movzx eax, word [esi + 8]
pop ecx
pop ecx
test al, 4
jne 0x462453
cmp dword [ebx + 8], 0
jne 0x465747
mov dword [ebp + 0x70], 0x14
jmp 0x465a8d
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
test byte [esi + 8], 4
je case.0x46195c.96
call fcn.0041de19
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4624a1
mov eax, esi
call fcn.00429417
mov dword [ebp + 0x70], eax
jmp 0x4624a5
and dword [ebp + 0x70], 0
push dword [ebp + 0x38]
mov cl, byte [ebx + 8]
mov eax, esi
call fcn.0043192f
pop ecx
cmp dword [ebp + 0x70], 0
jne 0x465a8d
jmp case.0x46195c.96
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 4]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
movzx ecx, word [edi + 8]
movzx eax, word [esi + 8]
mov edx, ecx
or edx, eax
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x4c], ecx
test dl, 1
je 0x462548
movzx eax, word [ebx + 2]
test al, al
jns 0x462516
mov al, cl
and al, byte [ebp + 0x54]
test al, 1
je 0x4625a3
test ecx, 0x100
jne 0x4625a3
xor eax, eax
jmp 0x462635
test al, 0x20
je 0x462541
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
xor ecx, ecx
mov dx, word [eax + 8]
mov esi, 0x3e00
inc ecx
and dx, si
or dx, cx
mov dword [ebp + 8], ecx
mov word [eax + 8], dx
jmp case.0x46195c.96
test al, 0x10
jmp 0x4619c6
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jl 0x4625c3
test dl, 2
je 0x462583
mov al, byte [ebp + 0x54]
and al, 0xe
cmp al, 2
jne 0x462570
push 0
mov eax, esi
call fcn.0041eee0
movzx eax, word [edi + 8]
pop ecx
mov dword [ebp + 0x4c], eax
mov al, byte [ebp + 0x4c]
and al, 0xe
cmp al, 2
jne 0x462583
push 0
mov eax, edi
call fcn.0041eee0
pop ecx
mov al, byte [edi + 8]
and al, byte [esi + 8]
test al, 4
je 0x462629
mov eax, dword [edi + 4]
cmp eax, dword [esi + 4]
mov ecx, dword [edi]
mov edx, dword [esi]
jl 0x4625be
jg 0x4625a3
cmp ecx, edx
jbe 0x4625ab
xor eax, eax
inc eax
jmp 0x462635
cmp eax, dword [esi + 4]
jg 0x46250f
jl 0x4625be
cmp ecx, edx
jae 0x46250f
or eax, 0xffffffff
jmp 0x462635
cmp al, 0x42
jne 0x462629
test byte [ebp + 0x54], 2
jne 0x4625f8
test byte [ebp + 0x54], 0xc
je 0x4625f8
mov esi, dword [ebp + 0x64]
push 1
push dword [ebp + 0x38]
call fcn.0042dcc5
mov eax, esi
mov ax, word [eax + 8]
xor ax, word [ebp + 0x54]
pop ecx
pop ecx
mov ecx, 0x7e00
and ax, cx
xor word [ebp + 0x54], ax
test byte [ebp + 0x4c], 2
jne 0x462629
test byte [ebp + 0x4c], 0xc
je 0x462629
push 1
push dword [ebp + 0x38]
mov esi, edi
call fcn.0042dcc5
mov ax, word [edi + 8]
xor ax, word [ebp + 0x4c]
mov esi, dword [ebp + 0x64]
pop ecx
pop ecx
mov ecx, 0x7e00
and ax, cx
xor word [ebp + 0x4c], ax
mov eax, dword [ebx + 0x10]
push edi
mov edx, esi
call fcn.0042e125
pop ecx
movzx ecx, byte [ebx]
sub ecx, 0x4d
je 0x462679
dec ecx
je 0x46266d
dec ecx
je 0x462664
dec ecx
je 0x46265b
dec ecx
je 0x462652
xor ecx, ecx
test eax, eax
setge cl
jmp 0x462674
xor ecx, ecx
test eax, eax
setl cl
jmp 0x462674
xor ecx, ecx
test eax, eax
setle cl
jmp 0x462674
xor ecx, ecx
test eax, eax
setg cl
jmp 0x462674
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp + 0x64], ecx
jmp 0x46267c
mov dword [ebp + 0x64], eax
mov cx, word [ebp + 0x54]
mov word [esi + 8], cx
mov cx, word [ebp + 0x4c]
mov word [edi + 8], cx
movzx edx, word [ebx + 2]
test dl, 0x20
je 0x4626db
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
mov dword [ebp + 8], eax
xor eax, eax
cmp dword [ebp + 0x64], eax
setne al
mov esi, eax
test dl, 8
je 0x4626c0
xor eax, eax
cmp byte [ebx], 0x4e
sete al
cmp eax, esi
je case.0x46195c.96
mov ax, word [ecx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 4
mov word [ecx + 8], ax
mov eax, esi
jmp 0x461ab7
cmp dword [ebp + 0x64], 0
jmp 0x4619c6
cmp dword [ebp + 8], 0
jmp 0x4619c6
test byte [ebx + 2], 1
jne 0x4626f9
and dword [ebp + 0x60], 0
jmp 0x462702
mov eax, dword [ebx - 4]
add eax, 4
mov dword [ebp + 0x60], eax
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [ebx + 8]
xor esi, esi
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x5c], ecx
test eax, eax
jle case.0x46195c.96
lea eax, [edi + 0x14]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x60]
test eax, eax
je 0x462733
mov ecx, dword [eax + esi*4]
jmp 0x462735
mov ecx, esi
mov eax, dword [edi + 0x10]
movzx eax, byte [esi + eax]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x5c]
lea edx, [ecx + eax]
mov eax, dword [ebp + 0x2c]
imul edx, edx, 0x28
add edx, dword [ebp + 0x6c]
add ecx, eax
mov eax, dword [ebp + 0x58]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
mov eax, dword [eax]
push ecx
call fcn.0042e125
pop ecx
mov dword [ebp + 8], eax
test eax, eax
jne 0x462778
add dword [ebp + 0x58], 4
inc esi
cmp esi, dword [ebp + 0x48]
jl 0x462727
jmp case.0x46195c.96
cmp dword [ebp + 0x34], 0
je case.0x46195c.96
neg dword [ebp + 8]
jmp case.0x46195c.96
cmp dword [ebp + 8], 0
jge 0x462798
mov eax, dword [ebx + 4]
jmp 0x46574a
mov ecx, dword [ebp + 0x3c]
jne 0x4627a5
mov eax, dword [ebx + 8]
jmp 0x46574d
mov eax, dword [ebx + 0xc]
jmp 0x46574d
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
test byte [ecx + 8], 1
je 0x4627c1
push 2
pop esi
jmp 0x4627cd
call fcn.0041dd28
xor esi, esi
or eax, edx
je 0x4627cd
inc esi
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
test byte [ecx + 8], 1
je 0x4627e1
push 2
pop eax
jmp 0x4627f1
call fcn.0041dd28
or eax, edx
je 0x4627ef
xor eax, eax
inc eax
jmp 0x4627f1
xor eax, eax
imul esi, esi, 3
cmp byte [ebx], 0x47
jne 0x462803
movzx eax, byte [esi + eax + 0x489734]
jmp 0x46280b
movzx eax, byte [esi + eax + 0x489778]
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
cmp eax, 2
jne 0x46282e
mov ax, word [ecx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
jmp 0x461be7
cdq
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0x3e00
and ax, dx
or ax, 4
jmp 0x461be7
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
mov eax, esi
call fcn.0041deae
test byte [edi + 8], 1
jne case.0x46195c.96
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.0041dd28
or eax, edx
jne 0x462881
inc eax
jmp 0x462883
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46195c.96
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
mov eax, esi
call fcn.0041deae
test byte [edi + 8], 1
jne case.0x46195c.96
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.0041dd28
not eax
not edx
jmp 0x462884
mov ecx, dword [ebp + 0x7c]
mov edi, dword [ecx + 0xb8]
test edi, edi
je 0x462910
mov eax, ebx
sub eax, dword [ecx + 0x58]
push 0x14
cdq
pop ecx
idiv ecx
mov edx, dword [edi + 0x18]
xor ecx, ecx
inc ecx
mov dword [ebp + 0x5c], ecx
mov esi, eax
and eax, 7
mov dword [ebp + 0x2c], eax
mov ecx, eax
mov eax, dword [ebp + 0x5c]
shl eax, cl
shr esi, 3
test byte [esi + edx], al
jne 0x465747
mov eax, edx
add esi, eax
mov al, 1
shl al, cl
mov ecx, dword [ebp + 0x7c]
or byte [esi], al
jmp 0x46291f
mov eax, dword [ecx + 0x58]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x465747
mov eax, dword [ecx + 0x58]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp case.0x46195c.96
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
test byte [ecx + 8], 1
je 0x462941
mov eax, dword [ebx + 0xc]
jmp 0x462968
call fcn.0041dd7c
fcomp qword [0x48c908]
fnstsw ax
test ah, 0x44
jnp 0x462958
xor eax, eax
inc eax
jmp 0x46295a
xor eax, eax
cmp byte [ebx], 0x16
jne 0x462968
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jmp 0x4619c6
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x6c]
imul eax, eax, 0x28
test byte [eax + ecx + 8], 1
jmp 0x4619c6
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x6c]
imul eax, eax, 0x28
test byte [eax + ecx + 8], 1
je 0x465747
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 2], 0
je case.0x46195c.96
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
call fcn.0041deae
jmp 0x465747
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp + 0x54], eax
mov eax, dword [ebx + 8]
lea ecx, [ebp + 0x58]
lea edx, [ebp + 0x54]
mov dword [ebp + 0x58], eax
call fcn.0044c347
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 0x54]
imul eax, eax, 0x28
mov edx, dword [ecx + 0x48]
add eax, dword [ebp + 0x6c]
mov edi, dword [ebp + 0x7c]
mov dword [ebp + 0x40], edx
mov edx, dword [ecx + 0x1c]
mov dword [ebp + 0x4c], eax
cmp edx, dword [edi + 0x20]
je 0x462af2
cmp byte [ecx + 2], 0
je 0x462a3f
cmp byte [ecx], 3
jne 0x461dc9
mov eax, dword [ecx + 0x28]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov edx, dword [eax + 0xc]
mov dword [ecx + 0x54], edx
mov dword [ecx + 0x50], edx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], edx
mov dword [ecx + 0x4c], eax
jmp 0x462a87
mov eax, dword [ebp + 0x54]
mov esi, dword [eax + 0x28]
mov dword [ebp + 0x5c], esi
call fcn.0041d8ad
mov esi, dword [ebp + 0x54]
mov dword [esi + 0x50], eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp + 0x5c]
call fcn.0041d8da
mov dword [esi + 0x4c], eax
mov esi, dword [esi + 0x50]
mov eax, dword [ebp - 0x3c]
pop ecx
cmp esi, eax
ja 0x462a75
mov eax, dword [ebp + 0x54]
mov dword [eax + 0x54], esi
jmp 0x462a8a
mov ecx, dword [ebp + 0x68]
cmp esi, dword [ecx + 0x60]
ja 0x462287
mov ecx, dword [ebp + 0x54]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp + 0x54]
mov ecx, dword [edi + 0x20]
mov dword [eax + 0x1c], ecx
mov esi, dword [eax + 0x4c]
mov cl, byte [esi]
cmp cl, 0x80
jae 0x462aa5
movzx esi, cl
xor ecx, ecx
mov dword [ebp - 0x5c], esi
inc ecx
jmp 0x462abb
lea edi, [ebp - 0x5c]
mov ecx, esi
call fcn.0041a110
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp + 0x7c]
movzx ecx, al
mov eax, dword [ebp + 0x54]
movzx ecx, cl
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov word [eax + 0x3a], cx
mov ecx, dword [ebp + 0x40]
mov dword [ecx], esi
cmp dword [ebp - 0x3c], esi
jae 0x462b59
and dword [eax + 0x4c], 0
and dword [eax + 0x54], 0
cmp esi, 0x18003
ja 0x465921
cmp esi, dword [eax + 0x50]
ja 0x465921
mov eax, dword [ebp + 0x54]
movzx edx, word [eax + 0x3a]
mov ecx, dword [ebp + 0x58]
cmp edx, ecx
jg 0x462c90
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp + 0x40]
cmp ecx, dword [edx]
jae 0x462c66
cmp dword [eax + 0x4c], 0
jne 0x462b65
push 0x28
lea eax, [ebp - 0x1c0]
push 0
push eax
call fcn.0046e3e0
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x40]
mov esi, dword [ecx]
push 0
push dword [eax + 0x28]
lea eax, [ebp - 0x1c0]
call fcn.0044a08d
add esp, 0x14
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov eax, dword [ebp - 0x1b0]
mov edi, dword [ebp + 0x7c]
jmp 0x462b68
test esi, esi
jbe 0x462af2
mov esi, dword [ebp + 0x54]
mov eax, dword [esi + 0x4c]
jmp 0x462b6b
mov eax, dword [eax + 0x4c]
mov esi, dword [ebp + 0x54]
movzx edx, word [esi + 0x3a]
and dword [ebp - 8], 0
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax + edx*4]
mov eax, dword [eax]
mov dword [ebp - 0xc], ecx
mov ecx, dword [esi + 0x30]
add ecx, dword [ebp + 0x44]
add eax, dword [ebp + 0x44]
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x48], eax
lea eax, [esi + edx*4 + 0x58]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x34], eax
movzx eax, byte [ecx]
mov dword [ebp + 0x64], eax
cmp eax, 0x80
jae 0x462bbc
inc ecx
mov dword [ebp + 0x18], ecx
call fcn.0041e46b
movzx eax, al
cdq
add dword [ebp - 0xc], eax
adc dword [ebp - 8], edx
jmp 0x462be2
mov ecx, dword [ebp + 0x18]
lea edi, [ebp + 0x64]
call fcn.0041a110
movzx eax, al
add dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x64]
call fcn.0041e456
add dword [ebp - 0xc], eax
mov edi, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x54]
adc dword [ebp - 8], 0
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x64]
mov edx, dword [ebp - 0xc]
add dword [ebp + 0x34], 4
mov dword [ecx], eax
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x40]
inc eax
cmp eax, dword [ebp + 0x58]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x60], eax
jg 0x462c0b
cmp ecx, dword [ebp + 0x48]
jb 0x462b9a
cmp ecx, dword [ebp + 0x48]
jb 0x462c30
ja 0x465934
mov eax, dword [esi + 0x50]
xor edx, edx
cmp dword [ebp - 0xc], eax
jne 0x465934
cmp dword [ebp - 8], edx
jne 0x465934
mov eax, dword [ebp + 0x60]
xor edx, edx
cmp dword [ebp - 8], edx
ja 0x465934
jb 0x462c49
mov edx, dword [esi + 0x50]
cmp dword [ebp - 0xc], edx
ja 0x465934
sub ecx, dword [ebp + 0x44]
mov word [esi + 0x3a], ax
mov dword [esi + 0x30], ecx
cmp dword [esi + 0x4c], 0
jne 0x462c6d
lea eax, [ebp - 0x1c0]
call fcn.0041dc96
jmp 0x462c6d
and dword [ebp + 0x64], 0
mov esi, dword [ebp + 0x54]
movzx eax, word [esi + 0x3a]
cmp eax, dword [ebp + 0x58]
jg 0x462c9a
cmp byte [ebx + 1], 0xf9
jne 0x462144
push 0x800
push dword [ebx + 0x10]
push dword [ebp + 0x4c]
jmp 0x461cb3
mov eax, dword [eax + ecx*4 + 0x58]
mov esi, dword [ebp + 0x54]
mov dword [ebp + 0x64], eax
mov edx, dword [ebp + 0x4c]
mov eax, 0x2460
test word [edx + 8], ax
je 0x462cb2
mov eax, edx
call fcn.0041deae
mov edx, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x58]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x54]
cmp eax, dword [ecx + 4]
jb 0x462d50
mov esi, dword [esi + 0x4c]
add esi, dword [ecx]
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x44], esi
cmp eax, 0xc
jae 0x462cde
mov ecx, esi
jmp 0x462d81
mov cl, byte [ebp + 0x38]
add eax, 0xfffffff4
shr eax, 1
mov dword [ebp + 0x5c], eax
mov dword [edx + 0xc], eax
add eax, 2
cmp dword [edx + 0x18], eax
mov byte [edx + 0xa], cl
jge 0x462d13
mov esi, dword [ebp + 0x4c]
xor ecx, ecx
inc ecx
push 0
mov word [esi + 8], cx
call fcn.0042932f
pop ecx
test eax, eax
jne 0x464135
jmp 0x462d19
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
mov edi, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x4c]
push edi
push dword [ebp + 0x44]
push dword [esi + 0x10]
call fcn.0046c470
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x10]
mov byte [edi + eax + 1], 0
mov eax, dword [ebp + 0x64]
add esp, 0xc
and eax, 1
mov ax, word [eax*2 + 0x489784]
jmp 0x46245b
mov al, byte [ebp + 0x38]
mov byte [edx + 0xa], al
movzx eax, word [ebx + 2]
test al, 0xc0
je 0x462d6e
cmp dword [ebp + 0x64], 0xc
jb 0x462d6a
test byte [ebp + 0x64], 1
je 0x462d7c
test al, al
js 0x462d7c
mov eax, dword [ebp + 0x64]
call fcn.0041e456
mov esi, eax
test esi, esi
jne 0x462d91
mov ecx, 0x49d324
push dword [ebp + 0x4c]
mov edx, dword [ebp + 0x64]
call fcn.0041e57f
jmp 0x461d92
push dword [ecx]
mov eax, dword [ebp + 0x54]
push dword [eax + 0x28]
mov eax, dword [ebp + 0x4c]
call fcn.0044a08d
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x64]
mov ecx, dword [esi + 0x10]
push esi
call fcn.0041e57f
mov eax, 0xefff
and word [esi + 8], ax
pop ecx
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
movzx eax, byte [edi]
push dword [ebp + 0x38]
push eax
mov eax, esi
call fcn.0042e3e7
inc edi
mov al, byte [edi]
pop ecx
add esi, 0x28
pop ecx
test al, al
jne 0x462ddb
jmp case.0x46195c.96
mov esi, dword [ebx + 4]
mov edi, dword [ebp + 0x7c]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp + 0x64], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
mov ecx, dword [ebx + 0x10]
lea eax, [eax + esi - 0x28]
mov dword [ebp + 0x34], eax
movzx eax, byte [edi + 0x8f]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x4c], eax
test ecx, ecx
je 0x462e68
movzx ecx, byte [ecx]
mov dword [ebp + 0x54], esi
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x54]
push ecx
call fcn.0042e3e7
add dword [ebp + 0x54], 0x28
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
pop ecx
pop ecx
mov cl, byte [eax]
test cl, cl
jne 0x462e4a
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x54], eax
mov edx, dword [ebp + 0x54]
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 0x5c]
call fcn.0041e364
pop ecx
pop ecx
mov ecx, dword [ebp + 0x54]
mov dword [ebp + 0x58], eax
mov dword [ecx + 0x1c], eax
mov eax, 0x4000
test word [ecx + 8], ax
je 0x462ebd
mov eax, dword [ebp - 0x28]
or eax, dword [ebp - 0x24]
mov eax, ecx
je 0x462eac
call fcn.00429417
test eax, eax
jne 0x464135
jmp 0x462ebd
mov eax, dword [eax]
cdq
add dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x54]
mov eax, dword [eax]
adc dword [ebp - 0x18], edx
sub dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x28], eax
adc dword [ebp - 0x24], 0
cmp dword [ebp + 0x58], 0x7f
ja 0x462ed2
xor eax, eax
inc eax
jmp 0x462ede
push 0
push dword [ebp + 0x58]
call fcn.0041a172
pop ecx
pop ecx
add dword [ebp + 0x64], eax
cmp dword [ebp + 0x54], esi
je 0x462eec
sub dword [ebp + 0x54], 0x28
jmp 0x462e6e
cmp dword [ebp + 0x64], 0x7e
jle 0x462f14
mov eax, dword [ebp + 0x64]
cdq
push edx
push eax
call fcn.0041a172
mov edi, eax
add dword [ebp + 0x64], edi
mov eax, dword [ebp + 0x64]
cdq
push edx
push eax
call fcn.0041a172
add esp, 0x10
cmp edi, eax
jge 0x462f17
inc dword [ebp + 0x64]
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp - 0x24]
cdq
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x68], edx
mov edi, eax
adc ecx, edx
add edi, dword [ebp - 0x1c]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp + 0x68]
mov eax, dword [eax + 0x60]
adc ecx, dword [ebp - 0x18]
cdq
cmp ecx, edx
jg 0x462287
jl 0x462f53
cmp edi, eax
ja 0x462287
mov edi, dword [ebp + 0x4c]
mov eax, dword [ebp - 0xf0]
mov ecx, edi
call fcn.004293f6
test eax, eax
jne 0x464132
mov ecx, dword [ebp + 0x64]
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x60], eax
cmp ecx, 0x80
jae 0x462f83
mov byte [eax], cl
xor eax, eax
inc eax
jmp 0x462f98
push dword [ebp - 0x68]
mov esi, eax
push dword [ebp - 0x6c]
call fcn.00419f2d
mov esi, dword [ebp + 0x2c]
pop ecx
pop ecx
mov ecx, dword [ebp + 0x64]
movzx eax, al
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x54], esi
mov eax, dword [ebp + 0x54]
mov eax, dword [eax + 0x1c]
mov dword [ebp + 0x58], eax
cmp eax, 0x80
jae 0x462fc2
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp + 0x60]
mov byte [ecx + edx], al
xor eax, eax
inc eax
jmp 0x462fd7
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x60]
push 0
push dword [ebp + 0x58]
lea esi, [eax + ecx]
call fcn.00419f2d
pop ecx
pop ecx
mov ecx, dword [ebp + 0x48]
mov esi, dword [ebp + 0x54]
movzx eax, al
add dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x60]
lea edi, [ecx + eax]
mov ecx, dword [ebp + 0x58]
mov eax, esi
call fcn.0041e475
add dword [ebp + 0x48], eax
add esi, 0x28
mov dword [ebp + 0x54], esi
cmp esi, dword [ebp + 0x34]
jbe 0x462fa4
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xf0]
mov dword [eax + 0xc], ecx
push 0x10
pop ecx
mov word [eax + 8], cx
mov eax, dword [ebp - 0x1c]
or eax, dword [ebp - 0x18]
je case.0x46195c.96
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x4c]
mov dword [eax], ecx
mov ecx, 0x4010
jmp 0x46199f
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x28]
and dword [ebp - 0x74], 0
and dword [ebp - 0x70], 0
lea eax, [ebp - 0x74]
push eax
call fcn.0043b414
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, dword [ebp - 0x74]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x70]
jmp 0x461ad6
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x60], ecx
test eax, eax
jne 0x463141
mov eax, dword [ebp + 0x68]
cmp dword [eax + 0xa4], 0
jg 0x46575c
push ecx
call fcn.004197fc
mov edi, dword [ebp + 0x68]
mov esi, eax
mov eax, dword [edi + 0x1b4]
add eax, dword [edi + 0x1b0]
push eax
push 0
call fcn.004218a2
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
lea eax, [esi + 0x21]
push 0
push eax
mov ecx, edi
call fcn.0042371b
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4624b3
inc esi
push esi
push dword [ebp + 0x60]
lea eax, [edi + 0x20]
push eax
mov dword [edi], eax
call fcn.0046c470
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp byte [eax + 0x43], 0
je 0x463105
mov byte [eax + 0x43], 0
mov byte [eax + 0x4b], 1
jmp 0x46310b
inc dword [eax + 0x1b0]
lea ecx, [eax + 0x1a8]
mov edx, dword [ecx]
mov dword [edi + 0x18], edx
mov dword [ecx], edi
mov ecx, dword [eax + 0x1b8]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 0x1bc]
mov dword [edi + 0xc], ecx
mov ecx, dword [eax + 0x1c0]
mov dword [edi + 0x10], ecx
mov eax, dword [eax + 0x1c4]
mov dword [edi + 0x14], eax
jmp 0x4624b3
mov esi, dword [ebp + 0x68]
mov edi, dword [esi + 0x1a8]
and dword [ebp + 0x40], 0
mov dword [ebp + 0x58], edi
test edi, edi
je 0x465766
mov eax, dword [ebp + 0x60]
mov ecx, dword [edi]
call fcn.0041989c
xor ecx, ecx
test eax, eax
je 0x463176
mov edi, dword [edi + 0x18]
inc dword [ebp + 0x40]
mov dword [ebp + 0x58], edi
cmp edi, ecx
jne 0x463159
cmp edi, ecx
je 0x465766
cmp dword [esi + 0xa4], ecx
jle 0x463190
cmp dword [ebp + 0x64], 1
je 0x46577e
cmp dword [edi + 0x18], ecx
jne 0x4631e7
cmp byte [esi + 0x4b], 0
je 0x4631e7
xor eax, eax
inc eax
mov dword [ebp + 0x48], eax
cmp dword [ebp + 0x64], eax
jne 0x4631ea
mov esi, dword [ebp + 0x7c]
push eax
call fcn.0043220a
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465b2a
mov esi, dword [ebp + 0x68]
mov edi, dword [ebp + 0x7c]
mov byte [esi + 0x43], 1
call fcn.0044f901
push 5
pop ecx
cmp eax, ecx
je 0x46594c
mov byte [esi + 0x4b], 0
mov eax, dword [edi + 0x28]
mov edi, dword [ebp + 0x58]
mov dword [ebp + 0x70], eax
jmp 0x4632cc
mov dword [ebp + 0x48], ecx
mov eax, dword [esi + 0x1b0]
sub eax, dword [ebp + 0x40]
dec eax
cmp dword [ebp + 0x64], 2
mov dword [ebp + 0x40], eax
jne 0x463255
mov eax, dword [esi + 0x18]
shr eax, 1
and eax, 1
cmp dword [esi + 0x14], ecx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x44], ecx
jle 0x463258
xor eax, eax
xor edi, edi
cmp dword [ebp + 0x60], edi
sete al
mov dword [ebp + 0x5c], eax
push dword [ebp + 0x5c]
mov eax, dword [esi + 0x10]
push 0x204
push dword [edi + eax + 4]
call fcn.0044bc7a
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
inc dword [ebp + 0x44]
mov esi, dword [ebp + 0x68]
mov eax, dword [ebp + 0x44]
add edi, 0x10
cmp eax, dword [esi + 0x14]
jl 0x46321d
mov edi, dword [ebp + 0x58]
jmp 0x463258
mov dword [ebp + 0x60], ecx
and dword [ebp + 0x44], 0
cmp dword [esi + 0x14], 0
jle 0x463298
xor edi, edi
push dword [ebp + 0x40]
mov eax, dword [esi + 0x10]
push dword [ebp + 0x64]
push dword [edi + eax + 4]
call fcn.0044d0a9
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
inc dword [ebp + 0x44]
mov esi, dword [ebp + 0x68]
mov eax, dword [ebp + 0x44]
add edi, 0x10
cmp eax, dword [esi + 0x14]
jl 0x463264
mov edi, dword [ebp + 0x58]
cmp dword [ebp + 0x60], 0
je 0x4632cc
mov eax, esi
call fcn.0041e9e3
call fcn.0042cdc3
or dword [esi + 0x18], 2
jmp 0x4632cc
mov edx, dword [esi + 0x1a8]
mov eax, dword [edx + 0x18]
mov ecx, esi
mov dword [esi + 0x1a8], eax
call fcn.00419591
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], edi
jne 0x4632b0
cmp dword [ebp + 0x64], 1
jne 0x4632fe
mov eax, dword [edi + 0x18]
mov edx, edi
mov ecx, esi
mov dword [esi + 0x1a8], eax
call fcn.00419591
cmp dword [ebp + 0x48], 0
jne 0x4624b3
dec dword [esi + 0x1b0]
jmp 0x463332
cmp dword [ebp + 0x48], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x1b8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x1bc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1c0], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c4], eax
je 0x463332
cmp dword [ebp + 0x64], 2
jne 0x4624b3
push dword [ebp + 0x40]
mov edi, dword [ebp + 0x68]
push dword [ebp + 0x64]
call fcn.004218a2
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
jmp 0x4624b3
mov eax, dword [ebx + 8]
test eax, eax
je 0x463369
mov ecx, dword [ebp + 0x68]
test dword [ecx + 0x18], 0x4000000
jne 0x465a4b
mov ecx, dword [ebx + 4]
mov edx, dword [ebp + 0x68]
mov edx, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov dword [ebp + 0x60], ecx
test ecx, ecx
je 0x463451
push eax
push ecx
call fcn.00451d48
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a54
cmp dword [ebx + 8], eax
je 0x46342c
mov eax, dword [ebp + 0x7c]
test byte [eax + 0x90], 0x40
je 0x46342c
mov ecx, dword [ebp + 0x68]
cmp byte [ecx + 0x43], 0
je 0x4633bf
cmp dword [ecx + 0xa0], 1
jle 0x46342c
mov edx, eax
cmp dword [edx + 0x30], 0
jne 0x4633dc
lea eax, [ecx + 0x1b4]
inc dword [eax]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x1b0]
add ecx, eax
mov dword [edx + 0x30], ecx
mov edi, dword [ebp + 0x68]
mov esi, edx
mov eax, dword [esi + 0x30]
dec eax
push eax
push 0
call fcn.004218a2
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x463405
push dword [esi + 0x30]
mov edi, dword [ebp + 0x60]
call fcn.00425996
pop ecx
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0x1b8]
mov dword [esi + 0x48], ecx
mov ecx, dword [eax + 0x1bc]
mov dword [esi + 0x4c], ecx
mov ecx, dword [eax + 0x1c0]
mov dword [esi + 0x50], ecx
mov eax, dword [eax + 0x1c4]
mov dword [esi + 0x54], eax
mov edi, dword [ebp + 0x60]
lea eax, [ebp - 0x30]
push eax
push 1
call fcn.00425acf
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 0x68]
pop ecx
pop ecx
mov ecx, dword [edi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax + 4]
jmp 0x46345a
and dword [ebp - 0x30], 0
mov edi, dword [ebp + 0x68]
xor eax, eax
cmp word [ebx + 2], 0
je 0x4624b3
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebx + 0xc]
jne 0x463476
cmp eax, dword [ebx + 0x10]
je 0x4624b3
mov esi, dword [ebp + 0x7c]
mov edx, dword [esi + 0x6c]
mov ecx, edi
call fcn.00419591
push str.database_schema_has_changed
push edi
call fcn.00428c32
mov dword [esi + 0x6c], eax
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x10]
pop ecx
pop ecx
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
mov edx, dword [ebp - 0x30]
cmp dword [ecx], edx
je 0x4634b6
mov esi, dword [ebp + 0x68]
push eax
call fcn.0042cd9b
mov esi, dword [ebp + 0x7c]
pop ecx
or dword [esi + 0x90], 1
mov dword [ebp + 0x70], 0x11
jmp 0x4624b3
mov ecx, dword [ebp + 0x68]
mov ecx, dword [ecx + 0x10]
lea eax, [ebp - 0xa4]
push eax
mov eax, dword [ebx + 4]
push dword [ebx + 0xc]
shl eax, 4
mov edi, dword [eax + ecx + 4]
call fcn.00425acf
pop ecx
pop ecx
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, eax
mov eax, dword [ebp - 0xa4]
jmp 0x461ab7
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edi, dword [ebp + 0x68]
push dword [ebx + 8]
shl esi, 4
add esi, dword [edi + 0x10]
push dword [esi + 4]
call fcn.00449dfa
mov dword [ebp + 0x70], eax
mov eax, dword [ebx + 8]
add esp, 0xc
cmp eax, 1
jne 0x463537
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx + 0xc]
mov dword [eax], ecx
or dword [edi + 0x18], 2
jmp 0x463545
cmp eax, 2
jne 0x463545
mov eax, dword [esi + 0xc]
mov cl, byte [ebx + 0xc]
mov byte [eax + 0x4c], cl
cmp dword [ebx + 4], 1
jne 0x4624b3
mov eax, edi
call fcn.0041e9e3
mov eax, dword [ebp + 0x7c]
and dword [eax + 0x90], 0xfffffffe
jmp 0x4624b3
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x463586
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x46366c
jmp 0x463586
mov edi, dword [ebp + 0x7c]
test byte [edi + 0x90], 1
jne 0x465a76
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0x60], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0x2c], eax
shl eax, 4
add eax, dword [ecx + 0x10]
xor esi, esi
mov ecx, dword [eax + 4]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x58], ecx
cmp dl, 0x6b
jne 0x4635dc
movzx ecx, word [ebx + 2]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
and ecx, 8
or ecx, 4
mov dword [ebp + 0x34], ecx
lea ecx, [edi + 0x8f]
cmp al, byte [ecx]
jae 0x4635e0
mov byte [ecx], al
jmp 0x4635e0
and dword [ebp + 0x34], 0
test byte [ebx + 2], 0x10
je 0x4635fc
mov esi, dword [ebp + 0x60]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
call fcn.0041ddf6
mov eax, dword [esi]
mov esi, dword [ebp + 0x5c]
mov dword [ebp + 0x60], eax
mov al, byte [ebx + 1]
cmp al, 0xfb
jne 0x463615
mov eax, dword [ebx + 0x10]
movzx esi, word [eax + 8]
mov dword [ebp + 0x48], eax
movzx eax, word [eax + 6]
add esi, eax
jmp 0x46361c
cmp al, 0xf5
jne 0x46361c
mov esi, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
push 0
push dword [ebp + 0x2c]
push esi
push edi
call fcn.0044e6a6
mov esi, eax
add esp, 0x10
test esi, esi
je 0x464135
push dword [esi + 0x28]
mov edi, dword [ebp + 0x48]
mov eax, dword [ebp + 0x60]
or dword [esi + 8], 4
push edi
push dword [ebp + 0x34]
mov byte [esi + 2], 1
push eax
push dword [ebp + 0x58]
mov dword [esi + 0x34], eax
call fcn.0043ab22
add esp, 0x14
mov dword [esi + 0x2c], edi
cmp byte [ebx + 1], 0xfb
mov dword [ebp + 0x70], eax
setne al
mov byte [esi + 4], al
movzx eax, word [ebx + 2]
mov ecx, dword [esi + 0x28]
and eax, 3
push eax
call fcn.0041d365
add esp, 4
jmp 0x4624b3
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebx + 8]
mov ecx, dword [edi + 0x70]
mov esi, dword [ecx + eax*4]
movsx eax, word [esi + 0x38]
push 0
push 0xffffffffffffffff
push eax
mov eax, dword [ebx + 4]
push edi
call fcn.0044e6a6
add esp, 0x10
test eax, eax
je 0x464135
or dword [eax + 8], 1
push dword [eax + 0x28]
mov byte [eax + 2], 1
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x2c], ecx
push dword [eax + 0x2c]
mov cl, byte [esi + 4]
push 4
mov byte [eax + 4], cl
push 1
push dword [esi + 0xc]
call fcn.0043ab22
add esp, 0x14
mov dword [ebp + 0x70], eax
jmp case.0x46195c.96
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
push edi
call fcn.0044e6a6
mov esi, eax
add esp, 0x10
test esi, esi
je 0x464135
or dword [esi + 8], 1
mov edx, dword [ebp + 0x68]
mov byte [esi + 2], 1
movzx eax, word [ebx + 2]
push 0x41e
or eax, 5
push eax
push 0
push dword [edx]
lea edi, [esi + 0xc]
mov ecx, edi
call fcn.0044f219
add esp, 0x10
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
push 1
push dword [edi]
call fcn.00451d48
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x5c], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x463796
movzx eax, word [ebx + 2]
or eax, 2
push eax
lea eax, [ebp - 0x98]
push eax
push dword [edi]
call fcn.0044d851
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x463790
push dword [esi + 0x28]
push dword [ebp + 0x5c]
push 4
push dword [ebp - 0x98]
push dword [edi]
call fcn.0043ab22
add esp, 0x14
mov dword [ebp + 0x70], eax
mov byte [esi + 4], 0
jmp 0x4637b0
push dword [esi + 0x28]
push 0
push 4
push 1
push dword [edi]
call fcn.0043ab22
add esp, 0x14
mov dword [ebp + 0x70], eax
mov byte [esi + 4], 1
cmp dword [ebp + 0x70], 0
jne 0x465a8d
xor eax, eax
cmp word [ebx + 2], 8
setne al
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
jmp case.0x46195c.96
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
push edi
call fcn.0044e6a6
add esp, 0x10
test eax, eax
je 0x464135
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 0x2c], ecx
push dword [ebx + 0xc]
push dword [ebp + 0x68]
call fcn.0042c862
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jmp 0x4624b7
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, ecx
or eax, edx
jmp 0x462990
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
push edi
call fcn.0044e6a6
add esp, 0x10
test eax, eax
je 0x464135
mov byte [eax + 2], 1
mov ecx, dword [ebx + 8]
mov dword [eax + 0x28], ecx
mov byte [eax + 4], 1
jmp case.0x46195c.96
mov esi, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + eax*4]
push esi
call fcn.0044e5b6
mov eax, dword [ebx + 4]
pop ecx
mov ecx, dword [esi + 0x70]
and dword [ecx + eax*4], 0
jmp case.0x46195c.96
mov edx, dword [ebp + 0x7c]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x70]
mov esi, dword [edx + ecx*4]
and dword [ebp + 0x60], 0
cmp byte [esi + 4], 0
mov dword [ebp + 0x64], eax
mov byte [esi + 2], 0
je 0x46394c
mov edi, dword [ebx + 0xc]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x4638cd
push 0
mov eax, edi
call fcn.0041eee0
pop ecx
mov ecx, edi
call fcn.0041dd28
mov dword [ebp - 0x50], eax
movzx eax, word [edi + 8]
mov dword [ebp - 0x4c], edx
test al, 4
jne 0x463915
test al, 8
je 0x465747
fild qword [ebp - 0x50]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x463903
test byte [ebp + 0x64], 1
fstp st(0)
je 0x463915
dec dword [ebp + 0x64]
jmp 0x463915
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x463915
test byte [ebp + 0x64], 1
jne 0x463915
inc dword [ebp + 0x64]
mov edi, dword [esi + 0x28]
lea eax, [ebp + 0x24]
push eax
push 0
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push 0
call fcn.00447bef
mov ecx, dword [ebp - 0x50]
mov dword [esi + 0x40], ecx
mov ecx, dword [ebp - 0x4c]
add esp, 0x14
mov dword [ebp + 0x70], eax
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x465a8d
xor edi, edi
jmp 0x4639d7
mov ecx, dword [esi + 0x28]
push 2
call fcn.0041dae7
add esp, 4
test eax, eax
je 0x463964
mov dword [ebp + 0x60], 1
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0xb8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xb0], ax
mov eax, dword [ebp + 0x64]
and al, 1
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0xae], al
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov byte [ebp - 0xaa], 0
mov dword [ebp - 0xb4], eax
mov edi, dword [esi + 0x28]
lea eax, [ebp + 0x24]
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00447bef
add esp, 0x14
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
xor edi, edi
cmp dword [ebp + 0x60], edi
je 0x4639d7
cmp byte [ebp - 0xaa], 0
je 0x463a3f
cmp dword [ebp + 0x64], 0x1a
mov byte [esi + 3], 0
mov dword [esi + 0x1c], edi
jl 0x463a07
cmp dword [ebp + 0x24], edi
jl 0x4639f6
jne 0x4639f1
cmp dword [ebp + 0x64], 0x1b
je 0x4639f6
mov dword [ebp + 0x24], edi
jmp 0x463a4a
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x24], edi
push dword [esi + 0x28]
call fcn.0044be4c
jmp 0x463a30
cmp dword [ebp + 0x24], edi
jg 0x463a21
jne 0x463a14
cmp dword [ebp + 0x64], 0x18
je 0x463a21
mov ecx, dword [esi + 0x28]
call fcn.0041d908
mov dword [ebp + 0x24], eax
jmp 0x463a3f
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x24], edi
push dword [esi + 0x28]
call fcn.0044bf72
pop ecx
mov dword [ebp + 0x70], eax
pop ecx
cmp eax, edi
jne 0x465a8d
xor edi, edi
cmp dword [ebp + 0x24], edi
jne 0x465747
xor edi, edi
cmp dword [ebp + 0x60], edi
je case.0x46195c.96
add ebx, 0x14
jmp case.0x46195c.96
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
cmp dword [ebx + 0x10], 0
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0x5c], eax
jle 0x463aa2
mov ecx, dword [ecx + 0x2c]
and dword [ebp + 0x60], 0
mov dword [ebp - 0x140], ecx
mov cx, word [ebx + 0x10]
mov word [ebp - 0x138], cx
mov dword [ebp - 0x13c], eax
lea esi, [ebp - 0x140]
jmp 0x463aee
mov ecx, 0x4000
test word [eax + 8], cx
je 0x463ab4
call fcn.00429417
jmp 0x463ab6
xor eax, eax
test eax, eax
jne 0x464135
mov eax, dword [ebp + 0x58]
mov esi, dword [eax + 0x2c]
call fcn.004297dc
mov esi, eax
mov dword [ebp + 0x60], esi
test esi, esi
je 0x464135
mov eax, dword [ebp + 0x5c]
push esi
push dword [eax + 0x10]
push dword [eax + 0xc]
mov eax, dword [ebp + 0x58]
push dword [eax + 0x2c]
call fcn.0041e6b7
add esp, 0x10
xor ecx, ecx
mov byte [esi + 0xa], 0
cmp byte [ebx], 0x1c
mov dword [ebp + 0x48], ecx
jne 0x463b24
xor eax, eax
cmp ax, word [esi + 8]
jae 0x463b24
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x463b1d
movzx edx, word [esi + 8]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x463b0a
jmp 0x463b24
mov dword [ebp + 0x48], 1
lea eax, [ebp - 0x60]
push eax
xor eax, eax
push eax
push eax
push eax
mov eax, dword [ebp + 0x58]
mov edi, dword [eax + 0x28]
push esi
call fcn.00447bef
add esp, 0x14
cmp dword [ebp + 0x60], 0
mov dword [ebp + 0x70], eax
je 0x463b50
mov edx, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x68]
call fcn.00419554
cmp dword [ebp + 0x70], 0
jne 0x465a8d
mov eax, dword [ebp - 0x60]
mov esi, dword [ebp + 0x58]
mov dword [esi + 0x20], eax
xor edi, edi
xor eax, eax
cmp dword [ebp - 0x60], edi
mov cl, 1
sete al
sub cl, al
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], edi
cmp byte [ebx], 0x1e
jne 0x463b87
cmp eax, edi
jmp 0x4619c6
cmp dword [ebp + 0x48], edi
jne 0x465747
test eax, eax
jmp 0x462990
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
test byte [esi + 8], 4
jne case.0x46195c.32
push dword [ebp + 0x38]
mov eax, esi
push 0x43
call fcn.0042e3e7
test byte [esi + 8], 4
pop ecx
pop ecx
je 0x465747
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 0x6c]
imul eax, eax, 0x28
mov edi, dword [esi + 0x28]
and dword [ebp - 0x2c], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
lea ecx, [ebp - 0x2c]
push ecx
push 0
push eax
push edx
push 0
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], eax
call fcn.00447bef
and dword [esi + 0x1c], 0
mov dword [ebp + 0x70], eax
mov eax, dword [ebp - 0xa0]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0x9c]
mov dword [esi + 0x44], eax
mov byte [esi + 2], 0
mov byte [esi + 3], 0
mov eax, dword [ebp - 0x2c]
add esp, 0x14
mov dword [esi + 0x20], eax
cmp dword [ebp - 0x2c], 0
je 0x4624b3
cmp dword [ebx + 8], 0
jne 0x465747
push 0x1425e
call fcn.00438815
jmp 0x464471
mov esi, dword [ebp + 0x7c]
mov eax, ebx
mov ecx, esi
call fcn.0041efd7
mov edx, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x10]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
jmp case.0x46195c.96
mov esi, dword [ebp + 0x7c]
xor eax, eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x18], eax
mov eax, ebx
mov ecx, esi
call fcn.0041efd7
mov ecx, dword [esi + 0x70]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebx + 4]
mov edi, dword [ecx + eax*4]
test byte [edi + 8], 2
mov dword [ebp + 0x58], edi
jne 0x463cfd
mov eax, dword [edi + 0x28]
lea esi, [ebp + 0x18]
call fcn.0043ae3b
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp dword [ebp + 0x18], eax
je 0x463cd2
and dword [ebp + 0x20], eax
mov dword [ebp + 0x1c], 1
jmp 0x463cfd
mov esi, dword [edi + 0x28]
call fcn.0041d89f
cmp edx, 0x7fffffff
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], edx
jl 0x463cf5
jg 0x463cef
cmp eax, 0xffffffff
jb 0x463cf5
or dword [edi + 8], 2
jmp 0x463cfd
add dword [ebp + 0x1c], 1
adc dword [ebp + 0x20], 0
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x463d65
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
jne 0x463dd0
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov esi, eax
call fcn.0041ddf6
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x463d38
cmp ecx, 0x7fffffff
je 0x463dc2
test byte [edi + 8], 2
jne 0x463dc2
add eax, 1
adc ecx, 0
cmp dword [ebp + 0x20], ecx
jg 0x463d5a
jl 0x463d54
cmp dword [ebp + 0x1c], eax
jae 0x463d5a
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x1c]
mov dword [esi], eax
mov eax, dword [ebp + 0x20]
mov dword [esi + 4], eax
test byte [edi + 8], 2
je 0x463de2
and dword [ebp + 0x60], 0
lea eax, [ebp + 0x1c]
push eax
push 8
call fcn.00445c0e
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
push 0
pop esi
and eax, 0x3fffffff
add ecx, 1
lea edx, [ebp + 0x18]
push edx
adc eax, esi
push esi
push eax
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x58]
mov edi, dword [eax + 0x28]
push ecx
push esi
mov dword [ebp + 0x1c], ecx
call fcn.00447bef
add esp, 0x1c
mov dword [ebp + 0x70], eax
cmp eax, esi
jne 0x465a8d
cmp dword [ebp + 0x18], esi
jne 0x463de2
inc dword [ebp + 0x60]
cmp dword [ebp + 0x60], 0x64
jl 0x463d6f
mov dword [ebp + 0x70], 0xd
jmp 0x465a8d
mov ecx, edx
mov edx, dword [ecx + 4]
test edx, edx
jne 0x463dce
imul eax, eax, 0x28
add eax, dword [ecx + 0x10]
jmp 0x463d1b
mov eax, dword [ebp + 0x58]
and dword [eax + 0x1c], 0
mov ecx, dword [ebp + 0x1c]
mov byte [eax + 3], 0
mov eax, dword [ebp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x20]
jmp 0x461ad6
mov ecx, dword [ebx + 8]
mov edi, dword [ebp + 0x7c]
imul ecx, ecx, 0x28
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x70]
add ecx, dword [ebp + 0x6c]
mov edi, dword [edi + eax*4]
mov eax, dword [ebx + 0xc]
xor esi, esi
cmp dl, 0x76
jne 0x463e3a
mov edx, dword [ebp + 0x6c]
imul eax, eax, 0x28
mov edx, dword [eax + edx]
mov dword [ebp - 0xd8], edx
mov edx, dword [ebp + 0x6c]
mov eax, dword [eax + edx + 4]
mov dword [ebp - 0xd4], eax
jmp 0x463e47
cdq
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], edx
cmp byte [ebx + 1], 0xf1
mov eax, dword [ebp + 0x68]
jne 0x463e84
cmp dword [eax + 0xdc], 0
je 0x463e84
movsx edx, byte [edi + 1]
mov esi, dword [eax + 0x10]
shl edx, 4
mov edx, dword [edx + esi]
mov dword [ebp + 0x34], edx
mov edx, dword [ebx + 0x10]
mov dword [ebp + 0x48], edx
mov dl, byte [ebx + 2]
and dl, 4
movzx esi, dl
neg esi
sbb esi, esi
and esi, 5
add esi, 0x12
jmp 0x463e8c
and dword [ebp + 0x48], 0
and dword [ebp + 0x34], 0
test byte [ebx + 2], 1
je 0x463e98
mov edx, dword [ebp + 0x7c]
inc dword [edx + 0x2c]
test byte [ebx + 2], 0x20
je 0x463eb0
mov edx, dword [ebp - 0xd8]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0xd4]
mov dword [eax + 0x24], edx
movzx eax, word [ecx + 8]
test al, 1
je 0x463ec8
and dword [ebp - 0xd0], 0
and dword [ebp - 0xc4], 0
jmp 0x463eda
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xc4], eax
movzx edx, word [ebx + 2]
test dl, 0x10
je 0x463eeb
mov eax, dword [edi + 0x20]
mov dword [ebp + 0x60], eax
jmp 0x463eef
and dword [ebp + 0x60], 0
movzx eax, word [ecx + 8]
test eax, 0x4000
je 0x463f04
mov eax, dword [ecx]
mov dword [ebp - 0xc0], eax
jmp 0x463f0b
and dword [ebp - 0xc0], 0
mov ecx, dword [edi + 0x28]
and dword [ebp - 0xe0], 0
and edx, 0xa
push edx
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [ebp + 0x60]
call fcn.0044d12c
and dword [edi + 0x1c], 0
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
mov byte [edi + 3], 0
test eax, eax
jne 0x465a8d
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0xdc]
test ecx, ecx
je case.0x46195c.96
test esi, esi
je case.0x46195c.96
push dword [ebp - 0xd4]
mov edx, dword [ebp + 0x48]
push dword [ebp - 0xd8]
push dword [edx]
push dword [ebp + 0x34]
push esi
push dword [eax + 0xd8]
call ecx
add esp, 0x18
jmp case.0x46195c.96
cmp byte [ebx + 1], 0xf1
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebx + 4]
mov edi, dword [ecx + eax*4]
jne 0x463fd1
mov eax, dword [ebp + 0x68]
cmp dword [eax + 0xdc], 0
je 0x463fd1
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
shl ecx, 4
test byte [ebx + 2], 2
mov eax, dword [ecx + eax]
mov dword [ebp + 0x48], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x60], eax
je 0x463fd9
cmp byte [edi + 4], 0
je 0x463fd9
mov esi, dword [edi + 0x28]
call fcn.0041d89f
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], edx
jmp 0x463fd9
and dword [ebp + 0x48], 0
and dword [ebp + 0x60], 0
mov al, byte [ebx + 2]
mov ecx, dword [edi + 0x28]
call fcn.0044d40f
and dword [edi + 0x1c], 0
and dword [edi + 0x20], 0
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
test byte [ebp + 0x5c], 1
je case.0x46195c.96
mov eax, dword [ebp + 0x7c]
inc dword [eax + 0x2c]
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0xdc]
test ecx, ecx
je case.0x46195c.96
mov edx, dword [ebp + 0x60]
test byte [edx + 0x24], 0x20
jne case.0x46195c.96
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [edx]
push dword [ebp + 0x48]
push 9
jmp 0x463f6b
mov edx, dword [ebp + 0x7c]
mov ecx, dword [edx + 0x2c]
mov eax, dword [ebp + 0x68]
call fcn.0041e9d4
and dword [edx + 0x2c], 0
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
and dword [ebp + 0x48], 0
lea esi, [ebp + 0x48]
push esi
push edx
push ecx
call fcn.0043d059
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp dword [ebp + 0x48], eax
jmp 0x4619c6
mov esi, dword [ebx + 8]
mov ecx, dword [ebp + 0x7c]
imul esi, esi, 0x28
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
add esi, dword [ebp + 0x6c]
mov eax, dword [ecx + eax*4]
call fcn.0042a02d
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
and dword [eax + 0x1c], 0
jmp case.0x46195c.96
mov esi, dword [ebp + 0x7c]
mov eax, ebx
mov ecx, esi
call fcn.0041efd7
mov ecx, dword [esi + 0x70]
mov edi, eax
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x28]
call fcn.0041d8ad
mov ecx, eax
mov eax, dword [ebp + 0x68]
cmp ecx, dword [eax + 0x60]
ja 0x462287
push 0
push esi
mov eax, edi
mov esi, ecx
call fcn.0044a08d
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp dword [ebx + 0xc], eax
jne case.0x46195c.96
mov eax, 0x1000
test word [edi + 8], ax
je case.0x46195c.96
mov eax, edi
call fcn.0042c5db
test eax, eax
je case.0x46195c.96
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x68]
call fcn.0041959b
push 0x487790
push edi
call fcn.00431cb8
pop ecx
pop ecx
mov dword [ebp + 0x70], 7
jmp 0x465a8d
mov esi, dword [ebp + 0x7c]
mov eax, ebx
mov ecx, esi
call fcn.0041efd7
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 2], 0
mov dword [ebp + 0x4c], eax
je 0x46417c
xor ecx, ecx
inc ecx
jmp 0x46199f
cmp byte [esi + 3], 0
je 0x464190
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x54], eax
jmp 0x4641eb
cmp byte [esi], 2
jne 0x4641bd
mov eax, dword [esi + 0x28]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [ebp - 0x58]
push edx
push eax
call dword [ecx + 0x30]
mov edi, dword [ebp + 0x7c]
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
call fcn.0042980b
cmp dword [ebp + 0x70], 0
jne 0x465a8d
jmp 0x4641eb
mov eax, esi
call fcn.0044c32d
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp byte [esi + 2], al
je 0x4641dd
mov ecx, dword [ebp + 0x4c]
inc eax
jmp 0x461be7
mov esi, dword [esi + 0x28]
call fcn.0041d89f
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x54]
jmp 0x461ad6
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
and dword [eax + 0x1c], 0
cmp byte [eax], 0
mov byte [eax + 2], 1
jne case.0x46195c.96
mov esi, dword [eax + 0x28]
call fcn.0041d353
jmp case.0x46195c.96
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov edi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
and dword [ebp + 0x34], 0
mov ecx, dword [edi + 0x28]
mov dword [edi + 0x20], eax
cmp dword [ebx + 0xc], 0
je 0x464251
call fcn.0041d895
test eax, eax
jne case.0x46195c.96
lea esi, [ebp + 0x34]
mov eax, ecx
call fcn.0043ae3b
and dword [edi + 0x1c], 0
mov dword [ebp + 0x70], eax
cmp dword [ebp + 0x70], 0
mov eax, dword [ebp + 0x34]
mov byte [edi + 2], al
mov byte [edi + 3], 0
jne 0x465a8d
cmp dword [ebx + 8], 0
jle case.0x46195c.96
jmp 0x462968
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x28]
lea edi, [ebp - 0x64]
mov eax, esi
call fcn.0043ae18
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp dword [ebp - 0x64], eax
jne 0x465747
call fcn.0041d912
test edx, edx
jl case.0x46195c.96
jg 0x4642c9
test eax, eax
jb case.0x46195c.96
push edx
push eax
call fcn.0041a3f7
cwde
cmp eax, dword [ebx + 0xc]
pop ecx
pop ecx
jge case.0x46195c.96
mov dword [ebp - 0x64], 1
jmp 0x465747
mov eax, dword [ebp + 0x7c]
inc dword [eax + 0xa4]
jmp 0x4642f6
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
cmp byte [esi], 1
mov dword [ebp + 0x60], 1
lea edi, [ebp + 0x60]
jne 0x464317
mov ecx, esi
call fcn.0043d00f
jmp 0x464327
mov eax, dword [esi + 0x28]
call fcn.0043ae18
and dword [esi + 0x1c], 0
mov byte [esi + 3], 0
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov eax, dword [ebp + 0x60]
mov byte [esi + 2], al
jmp 0x462968
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov esi, dword [ecx + eax*4]
push dword [ebp + 0x68]
and dword [ebp - 0x20], 0
lea edi, [ebp - 0x20]
mov eax, esi
call fcn.00429fce
jmp 0x46438c
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
cmp dword [ecx + eax*4], 0
je case.0x46195c.96
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push dword [esi + 0x28]
call dword [ebx + 0x10]
pop ecx
mov dword [ebp + 0x70], eax
xor eax, eax
pop ecx
mov dword [esi + 0x1c], eax
cmp dword [ebp + 0x70], eax
jne 0x465a8d
cmp dword [ebp - 0x20], eax
jne 0x4643bb
mov ecx, dword [ebp + 0x7c]
mov byte [esi + 2], al
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*4 + 0x9c]
inc dword [eax]
jmp case.0x46195c.13
mov byte [esi + 2], 1
jmp 0x465463
mov esi, dword [ebx + 8]
mov eax, dword [ebp + 0x7c]
imul esi, esi, 0x28
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x70]
add esi, dword [ebp + 0x6c]
test byte [ebx + 2], 1
mov edi, dword [edx + ecx*4]
je 0x4643e2
inc dword [eax + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4643f9
mov eax, esi
call fcn.00429417
mov dword [ebp + 0x70], eax
jmp 0x4643fd
and dword [ebp + 0x70], 0
cmp dword [ebp + 0x70], 0
jne 0x465a8d
cmp byte [ebx], 0x7f
jne 0x464416
push esi
mov eax, edi
call fcn.0043cd50
jmp 0x464471
mov eax, dword [esi + 0xc]
movzx ecx, word [ebx + 2]
cdq
mov dword [ebp - 0x168], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x170], eax
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov dword [ebp - 0x164], edx
mov dword [ebp - 0x15c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x158], ax
test cl, 0x10
je 0x464457
mov eax, dword [edi + 0x20]
jmp 0x464459
xor eax, eax
and ecx, 0xa
push ecx
lea ecx, [ebp - 0x170]
push ecx
mov ecx, dword [edi + 0x28]
call fcn.0044d12c
and dword [edi + 0x1c], 0
pop ecx
mov dword [ebp + 0x70], eax
jmp 0x4624b2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x130], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x128], ax
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov byte [ebp - 0x126], 0
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x8c]
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.00447bef
add esp, 0x14
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp dword [ebp - 0x8c], eax
jne 0x4644f4
mov al, 4
mov ecx, edi
call fcn.0044d40f
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
and dword [esi + 0x1c], 0
and dword [esi + 0x20], 0
jmp case.0x46195c.96
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov esi, dword [ecx + eax*4]
mov eax, esi
call fcn.0044c32d
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp byte [esi + 2], al
jne 0x46458d
and dword [ebp - 0x48], eax
and dword [ebp - 0x44], eax
lea eax, [ebp - 0x48]
push eax
push dword [ebp + 0x68]
mov eax, dword [esi + 0x28]
call fcn.0044a120
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
cmp byte [ebx], 0x82
mov ecx, dword [ebp + 0x7c]
jne 0x464579
mov ecx, dword [ecx + 0x70]
mov eax, dword [ebx + 0xc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x48]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebp - 0x44]
mov byte [eax + 2], 0
mov dword [eax + 0x44], ecx
mov byte [eax + 3], 1
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], esi
jmp case.0x46195c.96
mov eax, ebx
call fcn.0041efd7
mov ecx, dword [ebp - 0x48]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x44]
jmp 0x461ad6
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
jmp 0x461dc9
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x120], ecx
mov cx, word [ebx + 0x10]
mov word [ebp - 0x118], cx
cmp dl, 0x28
sbb cl, cl
and dword [ebp + 0x40], 0
mov byte [ebp - 0x116], cl
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
lea edi, [ebp + 0x40]
mov dword [ebp - 0x11c], ecx
lea ecx, [ebp - 0x120]
push ecx
push dword [ebp + 0x68]
call fcn.0044a1f4
test byte [ebx], 1
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
jne 0x4645fa
neg dword [ebp + 0x40]
jmp 0x4645fd
inc dword [ebp + 0x40]
cmp dword [ebp + 0x70], 0
jne 0x465a8d
cmp dword [ebp + 0x40], 0
jg 0x465747
jmp case.0x46195c.96
mov edi, dword [ebp + 0x7c]
mov eax, ebx
mov ecx, edi
call fcn.0041efd7
mov esi, eax
xor eax, eax
inc eax
mov word [esi + 8], ax
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0xac]
inc ecx
cmp dword [eax + 0xa0], ecx
jg 0x465a7f
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
and dword [ebp + 0x44], 0
lea edx, [ebp + 0x44]
push edx
push dword [ebx + 4]
mov dword [ebp + 0x60], ecx
shl ecx, 4
push dword [ecx + eax + 4]
call fcn.0044da41
add esp, 0xc
mov dword [ebp + 0x70], eax
cmp dword [ebp + 0x70], 0
push 4
pop eax
mov word [esi + 8], ax
mov eax, dword [ebp + 0x44]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jne 0x465a8d
cmp dword [ebp + 0x44], 0
je case.0x46195c.96
mov edi, dword [ebx + 4]
mov esi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x68]
call fcn.004204c8
mov al, byte [ebp + 0x60]
inc al
mov byte [ebp + 0x33], al
jmp case.0x46195c.96
mov eax, dword [ebx + 0xc]
xor edi, edi
neg eax
sbb eax, eax
lea ecx, [ebp + 0x2c]
and eax, ecx
mov ecx, dword [ebp + 0x68]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [ebx + 8]
push dword [ebx + 4]
shl eax, 4
mov dword [ebp + 0x2c], edi
mov esi, dword [eax + ecx + 4]
call fcn.0044d87d
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
cmp dword [ebx + 0xc], edi
je 0x4646fb
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x2c]
add dword [ecx + 0x2c], eax
mov ecx, dword [ebx + 0xc]
cmp ecx, edi
jle 0x4646fb
mov edx, dword [ebp + 0x6c]
imul ecx, ecx, 0x28
add ecx, edx
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [ebp + 0x70], edi
jmp 0x4624b7
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 1
jne 0x464724
push dword [ebp + 0x68]
mov edi, dword [eax + 0x28]
call fcn.00429ab9
jmp 0x461d92
mov eax, dword [eax + 0x28]
call fcn.0044d8cc
jmp 0x463808
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, dword [ebp + 0x68]
and dword [ebp + 0x5c], 0
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [ebx], 0x89
setne cl
inc ecx
push ecx
lea ecx, [ebp + 0x5c]
push ecx
push dword [eax + 4]
call fcn.0044d851
add esp, 0xc
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov eax, dword [ebp + 0x5c]
jmp 0x462883
mov esi, dword [ebp + 0x68]
inc byte [esi + 0x4e]
xor edi, edi
push edi
push edi
push edi
push dword [ebx + 0x10]
push esi
call fcn.0046664c
add esp, 0x14
dec byte [esi + 0x4e]
mov dword [ebp + 0x70], eax
cmp eax, edi
jmp 0x4624b7
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x68]
lea ecx, [edi + 0x6c]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xfc], ecx
mov ecx, dword [esi + 0x10]
push str.sqlite_master
shl eax, 4
mov dword [ebp - 0x100], esi
push dword [eax + ecx]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.00430798
add esp, 0x10
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x465788
and dword [ebp - 0xf4], 0
push 0
lea ecx, [ebp - 0x100]
push ecx
push fcn.00461763
push eax
push esi
mov byte [esi + 0x99], 1
call fcn.0046664c
add esp, 0x14
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x46481a
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x70], eax
mov edx, dword [ebp + 0x5c]
mov ecx, esi
call fcn.00419554
cmp dword [ebp + 0x70], 0
mov byte [esi + 0x99], 0
je case.0x46195c.96
mov esi, dword [ebp + 0x68]
call fcn.0042cdc3
cmp dword [ebp + 0x70], 7
je 0x464135
jmp 0x465a8d
mov ecx, dword [ebx + 4]
mov eax, dword [ebp + 0x68]
call fcn.00433354
jmp 0x463808
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov esi, dword [ebp + 0x68]
call fcn.0042a93a
jmp 0x461d92
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
push dword [ebp + 0x68]
call fcn.00427257
jmp 0x461d91
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov esi, dword [ebp + 0x68]
call fcn.00427c7b
jmp 0x461d92
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
imul edi, edi, 0x28
mov edx, dword [esi]
add edi, dword [ebp + 0x6c]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
inc edx
push edx
push eax
movzx eax, word [ebx + 2]
push ecx
mov ecx, dword [ebp + 0x68]
mov ecx, dword [ecx + 0x10]
shl eax, 4
push dword [eax + ecx + 4]
lea ecx, [ebp - 0xa8]
call fcn.0043bbae
mov dword [ebp + 0x5c], eax
add esp, 0x10
mov eax, edi
call fcn.0041deae
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x46490d
cmp dword [ebp + 0x5c], 0
je 0x464132
dec eax
cdq
sub dword [esi], eax
push 1
push 0xffffffffffffffff
push dword [ebp + 0x5c]
sbb dword [esi + 4], edx
mov eax, fcn.004194e7
mov ecx, edi
call fcn.0042dd4a
add esp, 0xc
movzx eax, byte [ebp + 0x38]
push eax
mov eax, edi
call fcn.0042dca2
jmp 0x461d92
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
test byte [esi + 8], 0x20
jne 0x464945
call fcn.00425b81
test byte [esi + 8], 0x20
je 0x464132
push dword [edi + 4]
mov eax, dword [esi]
push dword [edi]
call fcn.004246a8
jmp 0x461d91
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
test byte [esi + 8], 0x20
je 0x464997
mov eax, dword [esi]
lea edi, [ebp - 0x110]
call fcn.0041bb91
test eax, eax
je 0x464997
mov eax, dword [ebx + 0xc]
push dword [ebp - 0x10c]
imul eax, eax, 0x28
push dword [ebp - 0x110]
add eax, dword [ebp + 0x6c]
call fcn.0041df13
pop ecx
pop ecx
jmp 0x465463
mov eax, esi
call fcn.0041deae
jmp case.0x46195c.13
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
test byte [esi + 8], 0x20
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x60], eax
jne 0x4649d0
call fcn.00425b81
test byte [esi + 8], 0x20
je 0x464132
cmp dword [ebp + 0x60], 0
je 0x464945
push dword [edi + 4]
mov eax, dword [esi]
push dword [edi]
push dword [ebp + 0x60]
call fcn.004246ef
add esp, 0xc
test eax, eax
jne 0x465747
cmp dword [ebp + 0x60], eax
jl case.0x46195c.96
jmp 0x464945
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
cmp word [ebx + 2], 0
mov edi, dword [ebp + 0x7c]
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0x60], eax
je 0x464a45
mov edx, dword [edi + 0xb8]
mov esi, dword [ecx + 0x14]
test edx, edx
je 0x464a45
cmp dword [edx + 0x1c], esi
je 0x464a37
mov edx, dword [edx + 4]
test edx, edx
jne 0x464a2b
test edx, edx
jne case.0x46195c.96
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x58]
mov edx, dword [edi + 0xc0]
mov esi, dword [ebp + 0x68]
cmp edx, dword [esi + 0x88]
jge 0x465b46
test byte [eax + 8], 0x40
jne 0x464b3a
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
add ecx, eax
mov dword [ebp + 0x48], ecx
test eax, eax
jne 0x464a77
inc ecx
mov dword [ebp + 0x48], ecx
mov eax, dword [ebp + 0x48]
add eax, 2
mov ecx, eax
imul ecx, ecx, 0xa
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x58]
add ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
mov ecx, esi
call fcn.0042c574
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x464135
mov eax, dword [ebp + 0x60]
call fcn.0041dc96
mov eax, dword [ebp + 0x60]
mov dword [eax], esi
push 0x40
pop ecx
mov word [eax + 8], cx
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x58]
mov dword [esi + 0x3c], eax
mov dword [esi], edi
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop ebx
idiv ebx
mov dword [esi + 0x30], eax
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x70]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x58]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x88]
mov dword [esi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0x5c]
imul eax, eax, 0x28
add eax, esi
mov ecx, eax
lea eax, [esi + 0x50]
jmp 0x464b34
mov edx, 0x80
mov word [eax + 8], dx
mov edx, dword [ebp + 0x68]
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x464b22
jmp 0x464b3c
mov esi, dword [eax]
inc dword [edi + 0xc0]
mov eax, dword [edi + 0xb8]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0x20]
mov dword [esi + 0x20], ecx
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x58]
mov dword [esi + 0x48], eax
lea eax, [edi + 0xcc]
mov ecx, dword [eax]
mov dword [esi + 0x28], ecx
and dword [eax], 0
and dword [edi + 0x2c], 0
mov ebx, dword [ebp + 0x58]
mov dword [edi + 0xb8], esi
lea eax, [esi + 0x50]
mov dword [edi + 0x5c], eax
mov ecx, dword [esi + 0x3c]
mov dword [edi + 0x18], ecx
movzx ecx, word [esi + 0x40]
mov dword [edi + 0x1c], ecx
mov ecx, dword [edi + 0x18]
imul ecx, ecx, 0x28
mov dword [ebp + 0x6c], eax
add eax, ecx
mov dword [edi + 0x70], eax
mov ecx, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
mov dword [esi + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.0046e3e0
mov eax, dword [ebx]
mov dword [edi + 0x58], eax
mov ecx, dword [ebx + 4]
add esp, 0xc
mov dword [ebp + 0x3c], eax
mov dword [edi + 0x88], ecx
lea ebx, [eax - 0x14]
jmp case.0x46195c.96
mov esi, dword [ebp + 0x7c]
mov eax, ebx
mov ecx, esi
call fcn.0041efd7
mov ecx, dword [esi + 0xb8]
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 8]
imul edx, edx, 0x14
mov edx, dword [edx + esi + 4]
add edx, dword [ebx + 4]
push 0x1000
imul edx, edx, 0x28
add edx, dword [ecx + 0x10]
push edx
jmp 0x461cb2
mov eax, dword [ebp + 0x68]
test dword [eax + 0x18], 0x2000000
je 0x464c28
lea ecx, [eax + 0x1c0]
jmp 0x464c34
cmp dword [ebx + 4], 0
je 0x464c42
lea ecx, [eax + 0x1b8]
mov eax, dword [ebx + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x46195c.96
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x7c]
cdq
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
jmp case.0x46195c.96
cmp dword [ebx + 4], 0
je 0x464c71
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0x1b8]
or ecx, dword [eax + 0x1bc]
jne case.0x46195c.96
jmp 0x464c83
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 0x40]
or ecx, dword [eax + 0x44]
jne case.0x46195c.96
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
jmp 0x462990
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 0xb8]
test eax, eax
jne 0x464ce7
mov edi, dword [ebx + 4]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
mov esi, edi
call fcn.0041ddf6
mov esi, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
call fcn.0041ddf6
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x46195c.96
jl 0x464cdb
mov ecx, dword [edi]
cmp ecx, eax
jae case.0x46195c.96
mov dword [edi], eax
mov dword [edi + 4], esi
jmp case.0x46195c.96
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x464ce5
mov edi, dword [ebx + 4]
imul edi, edi, 0x28
add edi, dword [eax + 0x10]
jmp 0x464caa
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp + 0x6c]
mov esi, dword [ecx + 4]
mov edi, dword [ecx]
test esi, esi
jl case.0x46195c.96
jg 0x464d19
test edi, edi
jbe case.0x46195c.96
mov eax, dword [ebx + 0xc]
cdq
sub edi, eax
sbb esi, edx
mov dword [ecx], edi
mov dword [ecx + 4], esi
jmp 0x465747
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
imul edi, edi, 0x28
mov ecx, dword [ebp + 0x7c]
imul esi, esi, 0x28
add edi, dword [ebp + 0x6c]
add esi, dword [ebp + 0x6c]
mov eax, ebx
call fcn.0041efd7
mov ecx, dword [edi]
mov edi, dword [edi + 4]
mov dword [ebp + 0x4c], eax
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], edi
test edi, edi
jl 0x464d92
jg 0x464d5f
test ecx, ecx
jbe 0x464d92
mov eax, dword [esi]
mov esi, dword [esi + 4]
test esi, esi
jl 0x464d6e
jg 0x464d72
test eax, eax
ja 0x464d72
xor eax, eax
xor esi, esi
push esi
push eax
lea edi, [ebp - 0x7c]
call fcn.0041a1dd
pop ecx
test eax, eax
mov eax, dword [ebp + 0x4c]
pop ecx
jne 0x464d92
mov ecx, dword [ebp - 0x7c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x78]
jmp 0x461ad6
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp case.0x46195c.96
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, ecx
or esi, edx
je case.0x46195c.96
test edx, edx
jl 0x465747
jg 0x464dc8
test ecx, ecx
jbe 0x465747
sub ecx, 1
sbb edx, 0
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x465747
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
mov ecx, dword [eax + 4]
cmp ecx, 0x80000000
mov edx, dword [eax]
jl 0x464dff
jg 0x464df4
test edx, edx
jbe 0x464dff
sub edx, 1
sbb ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jmp 0x462990
movzx eax, word [ebx + 2]
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0x5c], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
call fcn.0042371b
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
je 0x464132
and dword [ecx + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [ecx + 4], eax
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop esi
idiv esi
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 0x7c]
mov dword [ecx + 0xc], eax
mov al, byte [ebp + 0x5c]
mov byte [ecx + 0x1a], al
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], ecx
mov byte [ebx], 0x97
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
cmp dword [esi + 8], eax
je 0x464e90
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi + 8], eax
js 0x464e90
lea edx, [esi + ecx*4 + 0x1c]
mov edi, dword [ebx + 8]
add edi, ecx
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
dec ecx
mov dword [edx], edi
sub edx, 4
test ecx, ecx
jge 0x464e7b
inc dword [eax + 0xc]
push dword [ebp + 0x68]
xor ecx, ecx
inc ecx
lea eax, [ebp - 0x208]
call fcn.0041de9e
lea ecx, [esi + 0x1c]
push ecx
movzx ecx, byte [esi + 0x1a]
push ecx
mov dword [esi], eax
mov eax, dword [esi + 4]
push esi
mov byte [esi + 0x19], 0
mov byte [esi + 0x18], 0
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esi + 0x19], 0
je 0x464f05
cmp dword [esi + 0x14], 0
je 0x464ef0
lea eax, [ebp - 0x208]
push eax
call fcn.0042e23a
push eax
push 0x494b30
push dword [ebp + 0x7c]
call fcn.00431cb8
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp + 0x70], eax
lea eax, [ebp - 0x208]
call fcn.0041dc96
cmp dword [ebp + 0x70], 0
jne 0x465a8d
cmp byte [esi + 0x18], 0
je case.0x46195c.96
mov eax, dword [ebx - 0x10]
test eax, eax
je case.0x46195c.96
push 0
push 1
jmp 0x46215b
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
imul esi, esi, 0x28
add esi, dword [ebp + 0x6c]
call fcn.0041db9c
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465b5f
movzx eax, byte [ebp + 0x38]
push eax
mov eax, esi
call fcn.0042dca2
pop ecx
mov ecx, esi
jmp 0x46227a
mov esi, dword [ebp + 0x68]
and dword [ebp - 0x88], 0
or dword [ebp - 0x80], 0xffffffff
or dword [ebp - 0x84], 0xffffffff
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x84]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.0044cc2c
add esp, 0x10
mov dword [ebp + 0x70], eax
test eax, eax
je 0x464f9f
cmp eax, 5
jne 0x465a8d
and dword [ebp + 0x70], 0
mov dword [ebp - 0x88], 1
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
xor edi, edi
add esi, dword [ebp + 0x6c]
mov eax, dword [ebp + edi*4 - 0x88]
cdq
push edx
push eax
mov eax, esi
call fcn.0041df13
inc edi
pop ecx
add esi, 0x28
cmp edi, 3
pop ecx
jl 0x464faa
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov edi, dword [ebp + 0x68]
mov edx, dword [edi + 0x10]
mov ecx, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x5c], eax
call fcn.0041d9ef
mov dword [ebp + 0x44], eax
call fcn.0041c7c9
mov dword [ebp + 0x58], eax
cmp ecx, 0xffffffff
jne 0x465008
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x44]
call fcn.0041c7ce
test eax, eax
jne 0x46501a
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x44]
push 1
call fcn.0041c78f
add esp, 4
cmp dword [ebp + 0x64], 5
jne 0x46504a
push eax
call fcn.004197fc
pop ecx
test eax, eax
je 0x465044
mov eax, dword [ebp + 0x44]
call fcn.0041c7f4
test eax, eax
jne 0x46504a
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x64], eax
je 0x4650bd
push 5
pop ecx
cmp eax, ecx
je 0x46505e
cmp dword [ebp + 0x64], ecx
jne 0x4650bd
cmp byte [edi + 0x43], 0
je 0x465b7b
cmp dword [edi + 0xa0], 1
jg 0x465b7b
cmp eax, ecx
jne 0x46508f
mov eax, dword [ebp + 0x44]
push edi
call fcn.0044f166
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x4650c3
mov ecx, dword [ebp + 0x64]
jmp 0x465097
cmp eax, 4
jne 0x46509f
push 2
pop ecx
mov edi, dword [ebp + 0x44]
call fcn.00451a53
cmp dword [ebp + 0x70], 0
jne 0x4650c3
xor eax, eax
cmp dword [ebp + 0x64], 5
sete al
inc eax
push eax
push dword [ebp + 0x5c]
call fcn.00451f3c
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
cmp dword [ebp + 0x70], 0
je 0x4650c9
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x64], eax
mov ecx, dword [ebp + 0x64]
mov edi, dword [ebp + 0x44]
call fcn.00451a53
mov ecx, 0xa02
mov word [esi + 8], cx
call fcn.00420ecd
push eax
mov dword [esi + 0x10], eax
call fcn.004197fc
mov dword [esi + 0xc], eax
movzx eax, byte [ebp + 0x38]
push eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.0042dca2
pop ecx
jmp 0x4624b2
push dword [ebx + 4]
mov eax, dword [ebp + 0x7c]
push dword [ebp + 0x68]
add eax, 0x6c
push eax
call fcn.00461120
jmp 0x463805
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x68]
mov ecx, dword [ecx + 0x10]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0044cd6b
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
je case.0x46195c.96
cmp eax, 0x65
jne 0x465a8d
and dword [ebp + 0x70], 0
jmp 0x465747
cmp dword [ebx + 4], 0
jne 0x465161
mov eax, dword [ebp + 0x68]
call fcn.0041e9e3
jmp case.0x46195c.96
mov eax, dword [ebp + 0x7c]
or dword [eax + 0x90], 1
jmp case.0x46195c.96
mov al, byte [ebx + 0xc]
test al, al
jne 0x465187
mov ecx, dword [ebp + 0x68]
test dword [ecx + 0x18], 0x4000
jne case.0x46195c.96
mov ecx, dword [ebx + 4]
mov edx, dword [ebp + 0x68]
mov edx, dword [edx + 0x10]
push dword [ebx + 8]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
call fcn.00425b33
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
je case.0x46195c.96
cmp al, 6
jne 0x465a8d
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x465b97
mov esi, dword [ebx + 0x10]
mov eax, dword [ebp + 0x68]
push esi
call fcn.0042ba91
pop ecx
mov dword [ebp + 0x70], eax
test esi, esi
je 0x4624b3
mov esi, dword [esi + 8]
mov edi, dword [ebp + 0x7c]
call fcn.0042980b
jmp 0x4624b3
push 0x28
lea eax, [ebp - 0x198]
push 0
push eax
call fcn.0046e3e0
mov edi, dword [ebx + 8]
mov eax, dword [ebp + 0x68]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
lea esi, [ebp - 0x198]
mov dword [ebp - 0x178], eax
call fcn.0042c64b
mov dword [ebp + 0x70], eax
mov eax, esi
push eax
call fcn.0042e23a
add esp, 0x10
test eax, eax
je 0x46523f
mov ecx, dword [ebp + 0x7c]
add ecx, 0x6c
push ecx
mov ecx, dword [ebp + 0x68]
push eax
mov eax, dword [ebx + 4]
call fcn.00437295
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
lea eax, [ebp - 0x198]
call fcn.0041dc96
jmp 0x4624b3
mov ecx, dword [ebp + 0x68]
lea esi, [ecx + 0xac]
inc dword [esi]
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
call fcn.00427d46
dec dword [esi]
pop ecx
jmp 0x463808
and dword [ebp + 0x4c], 0
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x465a86
mov eax, dword [esi]
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x465a86
lea eax, [ebp + 0x4c]
push eax
mov eax, dword [ebp + 0x5c]
push esi
call dword [eax + 0x18]
mov edi, dword [ebp + 0x7c]
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
call fcn.0042980b
cmp dword [ebp + 0x70], 0
jne 0x465a8d
mov eax, dword [ebp + 0x4c]
push 2
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [ebx + 4]
push 0
push edi
call fcn.0044e6a6
add esp, 0x10
test eax, eax
je 0x465ba7
mov ecx, dword [ebp + 0x4c]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp case.0x46195c.96
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp + 0x7c]
imul eax, eax, 0x28
mov esi, dword [edx + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [esi + ecx*4]
add eax, dword [ebp + 0x6c]
mov edx, dword [edx + 0x60]
mov edi, dword [eax]
mov dword [ebp + 0x48], ecx
mov ecx, dword [ecx + 0x28]
mov esi, dword [ecx]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [esi]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp + 0x60], edi
xor edi, edi
test ecx, ecx
jle 0x46531f
add eax, 0x50
mov dword [edx + edi*4], eax
inc edi
add eax, 0x28
cmp edi, ecx
jl 0x465314
mov eax, dword [ebp + 0x2c]
push edx
push ecx
push dword [ebx + 0x10]
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call dword [eax + 0x20]
mov edi, dword [ebp + 0x7c]
add esp, 0x14
mov dword [ebp + 0x70], eax
call fcn.0042980b
cmp dword [ebp + 0x70], 0
jne 0x465a8d
push dword [ebp + 0x5c]
mov eax, dword [ebp + 0x2c]
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp + 0x48]
mov byte [ecx + 2], 0
jmp 0x462968
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
mov edi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
cmp byte [edi + 2], 0
mov dword [ebp + 0x60], eax
jne 0x461dc9
mov eax, dword [edi + 0x28]
mov esi, dword [eax]
mov eax, dword [esi]
push 0x20
mov dword [ebp + 0x5c], eax
lea eax, [ebp - 0x1e0]
push 0
push eax
call fcn.0046e3e0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x1e0], eax
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov word [eax + 8], cx
push dword [ebx + 8]
lea eax, [ebp - 0x1e0]
push eax
push dword [edi + 0x28]
mov eax, dword [ebp + 0x5c]
call dword [eax + 0x2c]
mov edi, dword [ebp + 0x7c]
add esp, 0x18
mov dword [ebp + 0x70], eax
call fcn.0042980b
mov eax, dword [ebp - 0x1cc]
test eax, eax
je 0x4653e5
mov dword [ebp + 0x70], eax
movzx eax, byte [ebp + 0x38]
push eax
mov eax, dword [ebp + 0x60]
call fcn.0042dca2
pop ecx
mov ecx, dword [ebp + 0x60]
call fcn.0041df72
test eax, eax
jne 0x462287
jmp 0x4624b3
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 2], 0
mov dword [ebp + 0x5c], eax
jne case.0x46195c.96
mov eax, dword [eax + 0x28]
mov esi, dword [eax]
mov ecx, dword [esi]
push eax
mov dword [ebp + 0x2c], ecx
call dword [ecx + 0x24]
mov edi, dword [ebp + 0x7c]
pop ecx
mov dword [ebp + 0x70], eax
call fcn.0042980b
cmp dword [ebp + 0x70], 0
jne 0x465a8d
mov eax, dword [ebp + 0x5c]
push dword [eax + 0x28]
mov eax, dword [ebp + 0x2c]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x465463
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x3c]
imul eax, eax, 0x14
lea ebx, [eax + ecx - 0x14]
mov eax, dword [ebp + 0x68]
mov eax, dword [eax + 0xf8]
test eax, eax
jne 0x465bb6
mov eax, dword [ebp + 0x68]
mov edi, dword [eax + 0x130]
test edi, edi
je case.0x46195c.96
mov eax, dword [ebp + 0x14]
cmp dword [ebp - 4], eax
jb case.0x46195c.96
mov esi, dword [ebp + 0x68]
mov ecx, dword [esi + 0x138]
mov eax, dword [ebp - 4]
xor edx, edx
div ecx
push dword [esi + 0x134]
sub ecx, edx
add ecx, dword [ebp - 4]
mov dword [ebp + 0x14], ecx
call edi
pop ecx
test eax, eax
je case.0x46195c.96
mov dword [ebp + 0x70], 9
jmp 0x465a8d
mov edi, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
imul edi, edi, 0x28
add edi, dword [ebp + 0x6c]
mov esi, dword [eax + 8]
push 1
mov eax, edi
call fcn.0042dca2
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
push dword [edi + 0x10]
mov eax, dword [esi]
push esi
call dword [eax + 0x4c]
mov edi, dword [ebp + 0x7c]
pop ecx
pop ecx
mov dword [ebp + 0x70], eax
call fcn.0042980b
mov eax, edi
jmp 0x463559
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x465a86
mov edi, dword [eax]
test edi, edi
je 0x465a86
cmp dword [edi + 0x34], 0
mov esi, dword [ebx + 8]
je case.0x46195c.96
mov eax, dword [ebp + 0x68]
mov al, byte [eax + 0x4a]
and dword [ebp + 0x58], 0
mov byte [ebp + 0x53], al
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 0x60]
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp + 0x6c]
test esi, esi
jle 0x465560
mov edx, dword [ebp + 0x58]
mov dword [ecx + edx*4], eax
add eax, 0x28
inc dword [ebp + 0x58]
cmp dword [ebp + 0x58], esi
jl 0x46554f
mov al, byte [ebx + 2]
mov edx, dword [ebp + 0x68]
mov byte [edx + 0x4a], al
lea eax, [ebp - 0x108]
push eax
push ecx
push esi
mov esi, dword [ebp + 0x5c]
push esi
call dword [edi + 0x34]
mov ecx, dword [ebp + 0x68]
mov edi, dword [ebp + 0x7c]
mov dword [ebp + 0x70], eax
mov al, byte [ebp + 0x53]
add esp, 0x10
mov byte [ecx + 0x4a], al
call fcn.0042980b
cmp dword [ebp + 0x70], 0
jne 0x4655b1
cmp dword [ebx + 4], 0
je 0x4655b1
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp + 0x68]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x104]
mov dword [eax + 0x24], ecx
cmp byte [ebp + 0x70], 0x13
jne 0x4655ee
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x4655ee
movzx eax, word [ebx + 2]
cmp ax, 4
jne 0x4655d3
and dword [ebp + 0x70], 0
jmp case.0x46195c.96
cmp ax, 5
jne 0x4655de
push 2
pop eax
jmp 0x4655e1
movzx eax, ax
mov ecx, edi
mov byte [ecx + 0x8e], al
jmp 0x4624b3
mov eax, edi
inc dword [eax + 0x2c]
jmp 0x4624b3
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov edx, dword [ebp + 0x68]
mov edx, dword [edx + 0x10]
mov ecx, eax
mov eax, dword [ebx + 4]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.0041d6f5
and dword [ecx + 4], 0
mov dword [ecx], eax
jmp case.0x46195c.96
mov ecx, dword [ebp + 0x7c]
mov eax, ebx
call fcn.0041efd7
mov ecx, dword [ebp + 0x68]
mov ecx, dword [ecx + 0x10]
mov edi, eax
mov eax, dword [ebx + 4]
shl eax, 4
mov esi, dword [eax + ecx + 4]
mov ecx, dword [ebx + 0xc]
xor eax, eax
test ecx, ecx
je 0x465656
mov eax, esi
call fcn.0041d6f5
cmp eax, ecx
jae 0x465656
mov eax, ecx
push eax
call fcn.0042585b
cdq
pop ecx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x46195c.96
mov esi, dword [ebp + 0x68]
mov al, byte [esi + 0x4c]
mov edi, dword [ebp + 0x7c]
test al, 0x81
je 0x46570d
test byte [edi + 0x90], 2
jne 0x46570d
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x465697
mov edx, dword [edi + 0xb0]
test edx, edx
je 0x46570d
test al, al
jns 0x4656c5
mov eax, dword [esi + 0xb8]
mov ecx, edi
mov dword [ebp + 0x5c], eax
call fcn.004324b3
push eax
push dword [esi + 0xbc]
mov dword [ebp + 0x2c], eax
call dword [ebp + 0x5c]
push dword [ebp + 0x2c]
call fcn.004194e7
add esp, 0xc
jmp 0x46570d
cmp dword [esi + 0xa8], 1
push edx
jle 0x4656fb
push str.____s
call fcn.00430798
push eax
push edi
push dword [esi + 0xbc]
mov dword [ebp + 0x5c], eax
push 1
call dword [esi + 0xb8]
mov edx, dword [ebp + 0x5c]
add esp, 0x18
mov ecx, esi
call fcn.00419591
jmp 0x46570d
push edi
push dword [esi + 0xbc]
push 1
call dword [esi + 0xb8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x499930]
jl 0x465744
xor edx, edx
inc edx
cmp dword [edi + 0x88], edx
jle 0x465740
push 0x14
pop ecx
mov eax, dword [edi + 0x58]
add eax, ecx
cmp byte [eax], 0x14
jne 0x465734
and dword [eax + 4], 0
inc edx
add ecx, 0x14
cmp edx, dword [edi + 0x88]
jl 0x465726
and dword [ebx + 4], 0
inc dword [ebx + 4]
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x3c]
imul eax, eax, 0x14
lea ebx, [eax + ecx - 0x14]
add ebx, 0x14
jmp 0x461949
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x4659aa
push dword [ebp + 0x60]
push str.no_such_savepoint:__s
push dword [ebp + 0x7c]
call fcn.00431cb8
add esp, 0xc
jmp 0x465a42
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x4659aa
mov dword [ebp + 0x70], 7
jmp 0x464835
mov eax, dword [ebx + 4]
mov dword [edi + 0x28], eax
cmp dword [edi + 0x28], 0
mov al, byte [ebx + 8]
mov byte [edi + 0x8e], al
mov dword [edi + 0x24], ecx
je 0x465817
movzx eax, word [ebx + 2]
test ax, ax
je 0x4657ea
movzx eax, ax
push dword [eax*4 + 0x489764]
push str._s_constraint_failed
push edi
call fcn.00431cb8
mov eax, dword [ebx + 0x10]
add esp, 0xc
test eax, eax
je 0x4657fb
mov esi, dword [ebp + 0x68]
push eax
push dword [edi + 0x6c]
push str._z:__s
call fcn.00430798
mov dword [edi + 0x6c], eax
jmp 0x4657f8
push dword [ebx + 0x10]
push 0x494b30
push edi
call fcn.00431cb8
add esp, 0xc
push dword [edi + 0x6c]
push dword [edi + 0xb0]
push dword [ebp + 0x5c]
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0043087c
add esp, 0x14
mov edi, dword [ebp + 0x7c]
call fcn.0044f901
mov dword [ebp + 0x70], eax
push 5
pop eax
cmp dword [ebp + 0x70], eax
jne 0x465832
mov dword [edi + 0x28], eax
jmp 0x465b2a
mov eax, dword [edi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp + 0x70], eax
jmp 0x465b2a
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0x130]
test ecx, ecx
je 0x46586d
mov edx, dword [ebp + 0x14]
cmp dword [ebp - 4], edx
jb 0x46586d
push dword [eax + 0x134]
call ecx
pop ecx
test eax, eax
jne 0x4654ba
mov esi, dword [ebp + 0x7c]
push 0
call fcn.0043220a
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465a8d
mov edi, esi
push 1
mov eax, edi
call fcn.0044df52
mov eax, dword [edi + 0x20]
inc eax
inc eax
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
pop ecx
mov ecx, dword [ebp + 0x6c]
add eax, ecx
xor esi, esi
mov dword [edi + 0x68], eax
cmp dword [ebx + 8], esi
jle 0x4658df
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x4658cd
call fcn.0042c5db
test eax, eax
jne 0x464135
mov eax, dword [ebp + 0x14]
call fcn.00429497
add dword [ebp + 0x14], 0x28
inc esi
cmp esi, dword [ebx + 8]
jl 0x4658b2
mov eax, dword [ebp + 0x68]
cmp byte [eax + 0x45], 0
jne 0x464135
test byte [eax + 0x4c], 4
je 0x465906
push 0
push edi
push dword [eax + 0xbc]
push 4
call dword [eax + 0xb8]
add esp, 0x10
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop ecx
idiv ecx
mov dword [ebp + 0x70], 0x64
inc eax
mov dword [edi + 0x24], eax
jmp 0x465b2a
push 0x13bd8
call fcn.00438815
pop ecx
mov dword [ebp + 0x70], eax
jmp 0x465a8d
cmp dword [esi + 0x4c], 0
jne 0x465945
lea eax, [ebp - 0x1c0]
call fcn.0041dc96
push 0x13c13
jmp 0x465926
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop ebx
idiv ebx
mov dword [edi + 0x24], eax
mov byte [esi + 0x43], 0
mov dword [ebp + 0x70], ecx
mov dword [edi + 0x28], ecx
jmp 0x465b2a
mov esi, dword [ebp + 0x68]
movzx edx, byte [esi + 0x43]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [ebp + 0x5c], eax
cmp eax, edx
je 0x465a1e
test ecx, ecx
je 0x465998
push 0x204
mov eax, esi
call fcn.0044df73
pop ecx
mov byte [esi + 0x43], 1
jmp 0x4659df
test eax, eax
je 0x4659c0
cmp dword [esi + 0xa4], 0
jle 0x4659c0
push str.cannot_commit_transaction___SQL_statements_in_progress
push dword [ebp + 0x7c]
call fcn.00431cb8
pop ecx
pop ecx
mov dword [ebp + 0x70], 5
jmp 0x465a8d
mov esi, dword [ebp + 0x7c]
push 1
call fcn.0043220a
pop ecx
mov dword [ebp + 0x70], eax
test eax, eax
jne 0x465b2a
mov al, byte [ebp + 0x5c]
mov ecx, dword [ebp + 0x68]
mov byte [ecx + 0x43], al
mov edi, dword [ebp + 0x7c]
call fcn.0044f901
push 5
pop ecx
cmp eax, ecx
jne 0x465a0c
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop esi
idiv esi
mov edx, dword [ebp + 0x68]
mov dword [edi + 0x24], eax
mov al, 1
sub al, byte [ebp + 0x5c]
mov byte [edx + 0x43], al
jmp 0x46595e
mov esi, dword [ebp + 0x68]
call fcn.00422c03
mov eax, edi
mov eax, dword [eax + 0x28]
jmp 0x465835
test eax, eax
jne 0x465a29
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x465a37
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x465a37
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push dword [ebp + 0x7c]
call fcn.00431cb8
pop ecx
pop ecx
mov dword [ebp + 0x70], 1
jmp 0x465a8d
mov dword [ebp + 0x70], 8
jmp 0x465a8d
cmp byte [ebp + 0x70], 5
jne 0x465a8d
mov eax, ebx
sub eax, dword [ebp + 0x3c]
push 0x14
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp + 0x7c]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp + 0x70]
mov dword [ecx + 0x28], eax
jmp 0x465b2a
mov dword [ebp + 0x70], 0x204
jmp 0x465a8d
mov byte [edi + 0x8e], 2
mov dword [ebp + 0x70], 6
mov eax, dword [ebp + 0x68]
cmp byte [eax + 0x45], 0
je 0x465a9d
mov dword [ebp + 0x70], 7
mov edx, dword [ebp + 0x7c]
cmp dword [edx + 0x6c], 0
jne 0x465ac6
cmp dword [ebp + 0x70], 0xc0a
je 0x465ac6
mov ecx, dword [ebp + 0x70]
call fcn.00422c94
push eax
push 0x494b30
push edx
call fcn.00431cb8
add esp, 0xc
mov eax, dword [ebp + 0x70]
mov edi, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x68]
mov dword [edi + 0x28], eax
call fcn.0041982b
push dword [edi + 0x6c]
mov eax, ebx
push dword [edi + 0xb0]
sub eax, dword [ebp + 0x3c]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp + 0x70]
call fcn.0043087c
add esp, 0x14
call fcn.0044f901
cmp dword [ebp + 0x70], 0xc0a
jne 0x465b11
mov eax, esi
call fcn.0041959b
cmp byte [ebp + 0x33], 0
mov dword [ebp + 0x70], 1
jbe 0x465b2a
movzx eax, byte [ebp + 0x33]
dec eax
push eax
call fcn.0042cd9b
pop ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x7c]
add dword [eax + 0xac], ecx
call fcn.0041e1e4
mov eax, dword [ebp + 0x70]
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp + 0x70], 1
call fcn.00431cb8
pop ecx
pop ecx
jmp 0x465a8d
push esi
call fcn.0042e23a
push eax
push 0x494b30
push dword [ebp + 0x7c]
call fcn.00431cb8
add esp, 0x10
jmp 0x465a8d
mov dword [ebp + 0x70], 1
mov eax, str.into
cmp dword [ebp + 0x64], ecx
je 0x465b91
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp + 0x7c]
call fcn.00431cb8
add esp, 0xc
jmp 0x465a8d
push dword [ebp + 0x4c]
mov eax, dword [ebp + 0x5c]
call dword [eax + 0x1c]
pop ecx
jmp 0x464135
mov eax, dword [ebp + 0x68]
mov edx, dword [ebp + 0x7c]
xor ecx, ecx
cmp byte [eax + 0x45], cl
sete cl
lea ecx, [ecx + ecx + 7]
mov dword [ebp + 0x70], ecx
mov dword [edx + 0x28], ecx
call fcn.00422c94
push eax
push 0x494b30
push edx
jmp 0x465b9a