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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ec
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 8], ebx
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x10], eax
mov al, byte [edi + 0x42]
mov byte [ebp - 0x5c], al
mov eax, dword [esi + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 4], edi
mov byte [ebp - 0x6d], bl
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x94], eax
call fcn.0041d951
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [esi + 0x50], ecx
je 0x4264cb
mov dword [esi + 0x50], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x14], ebx
mov dword [edi + 0x184], ebx
cmp dword [edi + 0xf8], ebx
jne 0x4264a9
cmp dword [edi + 0x130], ebx
je 0x421e5b
mov ecx, dword [edi + 0x138]
xor edx, edx
mov eax, dword [esi + 0x84]
div ecx
xor eax, eax
sub ecx, edx
inc eax
mov dword [ebp - 0xc0], ecx
imul ebx, dword [esi + 0x4c], 0x14
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x120], 0x17
movsd qword [ebp - 0x148], xmm0
add ebx, dword [ebp - 0x58]
mov cl, byte [ebx]
inc edx
mov dword [ebp - 0xc], edx
movzx edx, cl
mov dword [ebp - 0x10], ebx
mov byte [ebp - 0x15], cl
mov dword [ebp - 0x2c], edx
cmp edx, 0x9d
ja case.0x421e97.110
jmp dword [edx*4 + 0x426526]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
pop esi
add ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp - 0x58]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x422b67
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
add eax, dword [ebp - 0x14]
imul ebx, dword [eax], 0x14
add ebx, dword [ebp - 0x58]
mov word [eax + 8], cx
xor eax, eax
inc eax
mov edx, dword [ebp - 0xc]
push 0x14
pop ecx
add ebx, ecx
jmp 0x421e7d
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0x14]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [ebx + 8], 0
jne 0x422b67
jmp 0x421ed8
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x14]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x421ed8
imul esi, dword [ebx + 4], 0x28
sub ebx, dword [ebp - 0x58]
push 4
pop eax
push 0x14
add esi, dword [ebp - 0x14]
mov word [esi + 8], ax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x1c]
jmp 0x421ed8
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x14]
test byte [eax + ecx + 8], 1
je 0x421ed8
mov eax, ebx
sub eax, dword [ebp - 0x58]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebx + 4]
mov edi, eax
test ecx, ecx
jne 0x42612c
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x42612c
mov eax, dword [edx + 4]
mov ecx, edx
mov edi, dword [ebp - 4]
dec dword [esi + 0xc0]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0x64]
add dword [edi + 0x58], eax
mov dword [edi + 0x54], eax
call fcn.0041e0c7
mov ecx, dword [edi + 0x20]
mov edx, dword [esi + 4]
mov dword [ebp - 0x90], ecx
mov ecx, dword [edi + 0x24]
push 4
mov dword [ebp - 0x94], ecx
pop ecx
mov dword [ebp - 0x58], edx
cmp dword [ebx + 8], ecx
jne 0x421fd9
imul eax, eax, 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov ecx, dword [esi + 8]
imul ebx, eax, 0x14
mov dword [ebp - 0x14], ecx
add ebx, edx
jmp 0x421ed8
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x421ed8
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp 0x421ed8
mov edx, ebx
mov ecx, esi
call fcn.00421d81
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x421ed8
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 0x10]
mov edi, eax
mov byte [ebx], 0x4c
test edx, edx
jne 0x422056
xor ecx, ecx
jmp 0x42206e
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42205e
sub ecx, dword [ebp - 0x3c]
and ecx, 0x3fffffff
xor eax, eax
mov dword [ebx + 4], ecx
inc eax
cmp byte [ebp - 0x5c], al
je 0x4220dd
push 0
push eax
push 0xffffffffffffffff
mov ecx, edi
call fcn.0041c716
add esp, 0xc
mov dword [ebp - 8], eax
push 2
pop eax
test byte [edi + 8], al
je 0x4220a6
mov al, byte [ebp - 0x5c]
cmp byte [edi + 0xa], al
je 0x4220a6
mov dl, al
mov ecx, edi
call fcn.004083b3
jmp 0x4220a8
xor eax, eax
test eax, eax
jne 0x4264c8
and dword [edi + 0x18], eax
mov eax, 0x800
or word [edi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x4220cd
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebp - 4]
call fcn.0040690a
mov byte [ebx + 1], 0xff
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 4]
cmp ecx, dword [eax + 0x5c]
jg 0x42299c
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edi, eax
mov eax, 0xa02
mov word [edi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x5c]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x4221c0
mov esi, dword [ebp - 0x14]
imul ecx, eax, 0x28
movzx eax, byte [ebx + 3]
cdq
cmp dword [ecx + esi], eax
mov esi, dword [ebp - 0x1c]
jne 0x4221c0
mov eax, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], edx
mov edx, dword [ebp - 0xc]
jne 0x422146
mov eax, 0xa10
mov word [edi + 8], ax
mov edi, dword [ebp - 4]
xor eax, eax
inc eax
jmp 0x421ede
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, dword [ebx + 0xc]
mov edi, 0x101
mov edx, dword [ebx + 8]
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
inc ecx
cmp dword [ebx + 4], 0
cmovne ecx, edi
lea edi, [eax + 8]
mov eax, dword [ebp - 0x2c]
sub eax, edx
movzx ecx, cx
mov dword [ebp - 0x3c], ecx
mov word [edi], cx
mov dword [ebp - 0x2c], eax
test eax, eax
jle 0x4221c0
xor ebx, ebx
mov edx, 0x2460
inc ebx
lea edi, [edi + 0x28]
test word [edi], dx
je 0x4221af
lea ecx, [edi - 8]
call fcn.0041c098
mov eax, dword [ebp - 0x2c]
mov edx, 0x2460
mov ecx, dword [ebp - 0x3c]
jmp 0x4221b2
mov word [edi], bx
dec eax
mov word [edi], cx
mov dword [ebp - 0x2c], eax
test eax, eax
jg 0x422192
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
jmp 0x421ed8
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff7f
add ecx, dword [ebp - 0x14]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x421f25
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 0x10]
mov esi, eax
push 0
push 0
push dword [ebx + 4]
mov ecx, esi
call fcn.0041c716
mov al, byte [ebp - 0x5c]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x421f52
imul edi, dword [ebx + 4], 0x28
add edi, dword [esi + 0x3c]
lea ecx, [edi - 0x28]
call fcn.0041c5dd
test eax, eax
jne 0x42299c
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, 0x800
lea edx, [edi - 0x28]
push ecx
mov ecx, eax
call fcn.0041c621
pop ecx
jmp 0x4221c0
mov eax, dword [ebx + 0xc]
imul edi, dword [ebx + 8], 0x28
mov dword [ebp - 0x20], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
add edi, dword [ebp - 0x14]
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
call fcn.0041c6e3
mov eax, 0x1000
test word [edi + 8], ax
je 0x422280
mov ecx, edi
call fcn.0041be77
test eax, eax
jne 0x4264c8
mov eax, dword [ebp - 0x4c]
add edi, 0x28
add eax, 0x28
sub dword [ebp - 0x20], 1
mov dword [ebp - 0x4c], eax
jne 0x42225d
jmp 0x4221c0
mov eax, dword [ebx + 0xc]
imul edi, dword [ebx + 8], 0x28
mov dword [ebp - 0x4c], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
add edi, dword [ebp - 0x14]
push 0x1000
mov edx, eax
mov dword [ebp - 0x20], eax
mov ecx, edi
call fcn.0041c621
mov eax, 0x1000
pop ecx
test word [edi + 8], ax
je 0x4222d7
mov ecx, edi
call fcn.0041be77
test eax, eax
jne 0x4264c8
mov ecx, dword [ebp - 0x4c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x4c], ecx
test eax, eax
je 0x4221c0
mov eax, dword [ebp - 0x20]
add edi, 0x28
add eax, 0x28
jmp 0x4222ab
imul edx, dword [ebx + 4], 0x28
mov eax, 0x1000
imul ecx, dword [ebx + 8], 0x28
push eax
add edx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
call fcn.0041c621
pop ecx
jmp 0x421ed8
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
add ecx, edx
mov edx, dword [eax + edx]
mov eax, dword [eax + esi + 4]
mov esi, 0x2460
test word [ecx + 8], si
mov esi, dword [ebp - 0x1c]
je 0x422341
push eax
push edx
call fcn.0041c49e
pop ecx
jmp 0x42230c
push 4
mov dword [ecx + 4], eax
mov dword [ecx], edx
pop eax
jmp 0x421f25
imul edx, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x14]
imul ecx, dword [ebx + 8], 0x28
imul edi, dword [ebx + 0xc], 0x28
add edx, eax
mov dword [ebp - 0x20], edx
add ecx, eax
add edi, eax
mov dword [ebp - 0x24], ecx
movzx eax, word [edx + 8]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx + 8]
or al, byte [ebp - 0x3c]
test al, 1
je 0x4223a0
mov eax, 0x2460
test word [edi + 8], ax
je 0x422391
mov ecx, edi
call fcn.0041c098
jmp 0x4221c0
xor eax, eax
inc eax
mov word [edi + 8], ax
mov edi, dword [ebp - 4]
jmp case.0x421e97.110
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x4223b7
mov ecx, edx
call fcn.0041bef2
mov ecx, dword [ebp - 0x24]
jmp 0x4223b9
xor eax, eax
test eax, eax
jne 0x4264c8
mov eax, 0x4000
test word [ecx + 8], ax
je 0x4223d3
call fcn.0041bef2
jmp 0x4223d5
xor eax, eax
test eax, eax
jne 0x4264c8
mov eax, dword [ebp - 0x20]
test byte [eax + 8], 0x12
jne 0x4223fb
mov dl, byte [ebp - 0x5c]
mov ecx, eax
push 0
call fcn.0041bf7e
pop ecx
test eax, eax
jne 0x4264c8
mov eax, dword [ebp - 0x24]
test byte [eax + 8], 0x12
jne 0x42241c
mov dl, byte [ebp - 0x5c]
mov ecx, eax
push 0
call fcn.0041bf7e
pop ecx
test eax, eax
jne 0x4264c8
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx + 0xc]
add ecx, eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x3c], ecx
cmp ecx, dword [eax + 0x5c]
jg 0x42299c
xor eax, eax
lea edx, [ecx + 2]
cmp edi, dword [ebp - 0x24]
mov ecx, edi
sete al
push eax
call fcn.0041bd5d
pop ecx
test eax, eax
jne 0x4264c8
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
push 2
pop ecx
or ax, cx
mov word [edi + 8], ax
mov eax, dword [ebp - 0x24]
cmp edi, eax
je 0x422483
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [edi + 0x10]
call fcn.00469930
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0x10]
push dword [ecx + 0xc]
push dword [ecx + 0x10]
push eax
call fcn.00469930
mov eax, dword [edi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [ebp - 0x5c]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
jmp 0x4221c0
imul eax, dword [ebx + 4], 0x28
mov edi, dword [ebp - 0x14]
add eax, edi
mov ecx, eax
mov dword [ebp - 0x10], eax
call fcn.00421d3e
movzx eax, ax
mov dword [ebp - 0x4c], eax
imul eax, dword [ebx + 8], 0x28
add eax, edi
mov ecx, eax
mov dword [ebp - 0x24], eax
call fcn.00421d3e
mov ecx, dword [ebp - 0x10]
movzx edx, ax
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x74], edx
add eax, edi
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov al, byte [edi + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x4227d6
mov al, dl
and al, byte [ebp - 0x4c]
push 4
pop edx
test dl, al
je 0x422748
mov eax, ecx
mov byte [ebp - 0x15], 1
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x9c], eax
movzx eax, byte [ebx]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xa0], ecx
sub eax, 0x2f
je 0x42268f
sub eax, 1
je 0x4225ce
sub eax, 1
je 0x4225bf
sub eax, 1
mov eax, edx
je 0x422594
or eax, edi
je 0x4227d6
mov eax, edx
and eax, edi
cmp eax, 0xffffffff
jne 0x422578
xor edx, edx
inc edx
xor edi, edi
push edi
push edx
push dword [ebp - 0x28]
push ecx
call fcn.004865c0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
jmp 0x422719
or eax, edi
je 0x4227d6
mov eax, edx
and eax, edi
cmp eax, 0xffffffff
jne 0x4225b2
test ecx, ecx
jne 0x4225b2
cmp dword [ebp - 0x28], 0x80000000
je 0x4225e5
push edi
push edx
push dword [ebp - 0x28]
push ecx
call fcn.00486510
jmp 0x422583
push edi
push edx
lea ecx, [ebp - 0xa0]
call fcn.004098a6
jmp 0x4225db
push edi
push edx
lea ecx, [ebp - 0xa0]
call fcn.00409858
pop ecx
pop ecx
test eax, eax
je 0x422719
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
call fcn.0041c1d1
mov ecx, edi
movsd qword [ebp - 0x38], xmm0
call fcn.0041c1d1
movzx eax, byte [ebx]
movaps xmm1, xmm0
movsd qword [ebp - 0x68], xmm1
sub eax, 0x2f
je 0x422773
sub eax, 1
je 0x42276c
sub eax, 1
je 0x422765
movsd xmm0, qword [ebp - 0x38]
sub eax, 1
je 0x422751
call fcn.00486ddf
movsd xmm0, qword [ebp - 0x68]
mov edi, eax
mov dword [ebp - 0x3c], edx
call fcn.00486ddf
mov ecx, edx
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x9c], ecx
mov ecx, edi
or ecx, edx
mov dword [ebp - 0xa0], eax
je 0x4227d6
mov eax, edi
and eax, edx
cmp eax, 0xffffffff
jne 0x422673
xor edi, edi
inc edi
xor edx, edx
push edx
push edi
push dword [ebp - 0x64]
push dword [ebp - 0x54]
call fcn.004865c0
mov ecx, eax
call fcn.00486f30
movaps xmm1, xmm0
jmp 0x422778
test edi, edi
jl 0x4226c6
jg 0x422699
test edx, edx
jb 0x4226c6
cmp dword [ebp - 0x28], 0
jl 0x422708
jg 0x4226a5
test ecx, ecx
je 0x422708
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, dword [ebp - 0x2c]
sbb eax, dword [ebp - 0x28]
cmp eax, edi
jg 0x422705
jl 0x4225e5
cmp ecx, edx
jae 0x422705
jmp 0x4225e5
cmp dword [ebp - 0x28], 0
jg 0x422708
jl 0x4226d2
test ecx, ecx
jae 0x422708
xor eax, eax
inc eax
sub eax, ecx
mov ecx, 0x80000000
mov dword [ebp - 0x3c], eax
mov eax, edx
sbb ecx, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x64], eax
mov eax, edi
adc eax, 0
cmp ecx, eax
jg 0x4225e5
jl 0x422705
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x64]
ja 0x4225e5
mov ecx, dword [ebp - 0x2c]
add edx, ecx
mov dword [ebp - 0xa0], edx
adc edi, dword [ebp - 0x28]
mov dword [ebp - 0x9c], edi
mov ecx, dword [ebp - 0x20]
mov edx, 0x3e00
mov eax, dword [ebp - 0xa0]
push 4
mov dword [ecx], eax
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x4221c0
mov byte [ebp - 0x15], 0
jmp 0x4225eb
ucomisd xmm0, qword [ebp - 0x148]
lahf
test ah, 0x44
jnp 0x4227d6
divsd xmm1, xmm0
jmp 0x422778
mulsd xmm1, qword [ebp - 0x38]
jmp 0x422778
subsd xmm1, qword [ebp - 0x38]
jmp 0x422778
addsd xmm1, qword [ebp - 0x38]
movsd qword [ebp - 0x38], xmm1
movsd xmm0, qword [ebp - 0x38]
movsd qword [ebp - 0x40], xmm0
movsd xmm0, qword [ebp - 0x38]
ucomisd xmm0, qword [ebp - 0x40]
lahf
test ah, 0x44
jp 0x4227d6
mov ecx, dword [ebp - 0x20]
mov edx, 0x3e00
push 8
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x74]
or al, byte [ebp - 0x4c]
test dl, al
jne 0x4221c0
cmp byte [ebp - 0x15], 0
jne 0x4221c0
call fcn.0041c223
jmp 0x4221c0
mov ecx, dword [ebp - 0x20]
mov eax, 0x2460
test word [ecx + 8], ax
jne 0x422387
xor eax, eax
inc eax
mov word [ecx + 8], ax
jmp 0x422398
mov eax, dword [ebx + 4]
test eax, eax
je 0x421ed8
imul eax, eax, 0x28
mov ecx, 0x2460
add eax, dword [ebp - 0x14]
test word [eax + 8], cx
je 0x42281b
push 0
push 0
mov ecx, eax
jmp 0x422339
and dword [eax], 0
and dword [eax + 4], 0
push 4
pop ecx
jmp 0x421ed4
mov al, byte [ebx + 3]
mov ecx, edi
mov byte [ebp - 0x15], al
movzx eax, al
cdq
add eax, 7
adc edx, 0
shld edx, eax, 2
shl eax, 2
push edx
push eax
call fcn.00406b1f
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4264c8
and dword [edi], 0
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x58]
mov dword [edi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], eax
mov al, byte [ebp - 0x15]
mov byte [edi + 0x1a], al
mov word [ebx], 0xeb58
mov dword [ebx + 0x10], edi
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
add eax, dword [ebp - 0x14]
mov edx, dword [edi]
mov dword [ebp - 0x3c], eax
cmp edx, eax
je 0x4228c2
movzx ecx, byte [edi + 0x1a]
mov edx, eax
sub ecx, 1
mov dword [edi], eax
js 0x4228c2
mov esi, dword [ebp - 0x14]
lea edx, [ecx + 7]
lea edx, [edi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, esi
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x4228a7
mov esi, dword [ebp - 0x1c]
mov edx, dword [edi]
mov ax, word [edx + 8]
mov ecx, 0x3e00
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov ecx, dword [ebp - 0x90]
mov word [edx + 8], ax
mov eax, dword [ebp - 4]
mov byte [edi + 0x19], 0
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x94]
mov dword [eax + 0x24], ecx
lea eax, [edi + 0x1c]
mov ecx, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x1a]
push eax
push edi
call dword [ecx + 0xc]
mov eax, dword [ebp - 4]
add esp, 0xc
cmp byte [edi + 0x19], 0
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x90], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x94], ecx
je 0x422965
cmp dword [edi + 0x14], 0
je 0x422946
mov ecx, dword [edi]
mov dl, 1
call fcn.0041ca46
push eax
push 0x494f44
push esi
call fcn.0041ce86
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
push dword [ebx + 4]
lea edx, [esi + 0xd4]
mov ecx, eax
push dword [edi + 0x10]
call fcn.0041ed66
cmp dword [ebp - 8], 0
pop ecx
pop ecx
jne 0x422be4
mov eax, dword [ebp - 0x3c]
test byte [eax + 8], 0x12
je 0x4221c0
mov ecx, dword [edi]
mov eax, ecx
push 2
pop edx
test byte [ecx + 8], dl
je 0x42298d
mov dl, byte [ebp - 0x5c]
cmp byte [ecx + 0xa], dl
je 0x42298d
call fcn.004083b3
mov eax, dword [edi]
mov ecx, eax
call fcn.0041c5dd
test eax, eax
je 0x4221c0
push str.string_or_blob_too_big
push esi
call fcn.0041ce86
pop ecx
pop ecx
push 0x12
jmp 0x4232e9
imul ecx, dword [ebx + 8], 0x28
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x14]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add edi, eax
add edx, eax
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [ebp - 0x54], edx
test al, 1
je 0x4229e8
mov eax, 0x2460
test word [edx + 8], ax
je 0x424c2e
mov ecx, edx
jmp 0x422387
call fcn.0041c13c
mov ecx, edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
call fcn.0041c13c
mov cl, byte [ebx]
mov edi, eax
cmp cl, 0x2b
jne 0x422a12
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
and ecx, edi
and eax, edx
jmp 0x422aed
cmp cl, 0x2c
jne 0x422a26
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
or ecx, edi
or eax, edx
jmp 0x422aed
mov eax, edi
or eax, edx
je 0x422ae7
test edx, edx
jg 0x422a53
jl 0x422a3a
test edi, edi
jae 0x422a53
mov al, 0x5b
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x422a7a
jg 0x422a4c
cmp edi, 0xffffffc0
jbe 0x422a7a
neg edi
adc edx, 0
neg edx
push 0x40
pop eax
test edx, edx
jl 0x422a93
jg 0x422a60
cmp edi, eax
jb 0x422a93
cmp dword [ebp - 0x24], 0
jg 0x422a83
jl 0x422a6e
cmp dword [ebp - 0x28], 0
jae 0x422a83
cmp cl, 0x2d
je 0x422a83
or ecx, 0xffffffff
or eax, ecx
jmp 0x422aed
push 0x40
pop eax
mov edi, eax
xor edx, edx
jmp 0x422a56
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
jmp 0x422aed
mov eax, dword [ebp - 0x28]
cmp cl, 0x2d
mov edx, dword [ebp - 0x24]
mov ecx, edi
jne 0x422aab
call fcn.004866b0
mov ecx, eax
mov eax, edx
jmp 0x422aed
call fcn.004866d0
cmp dword [ebp - 0x24], 0
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x64], eax
jg 0x422aed
jl 0x422ac8
cmp dword [ebp - 0x28], 0
jae 0x422aed
push 0x40
pop eax
mov ecx, eax
or edx, 0xffffffff
sub ecx, edi
or eax, 0xffffffff
call fcn.004866b0
mov ecx, dword [ebp - 0x3c]
or ecx, eax
mov eax, dword [ebp - 0x64]
jmp 0x422a1f
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
push 4
mov dword [edx + 4], eax
mov ax, word [edx + 8]
mov dword [edx], ecx
mov ecx, 0x3e00
and ax, cx
pop ecx
or ax, cx
mov word [edx + 8], ax
jmp 0x4221c0
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.0041c2b9
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x421f52
imul edi, dword [ebx + 4], 0x28
push 4
pop edx
add edi, dword [ebp - 0x14]
movzx eax, word [edi + 8]
mov ecx, eax
test dl, al
jne 0x422b78
push dword [ebp - 0x5c]
mov dl, 0x43
mov ecx, edi
call fcn.00421c6e
movzx eax, word [edi + 8]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x422b78
cmp dword [ebx + 8], 0
je 0x4261c7
mov edi, dword [ebp - 4]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x58]
add ebx, 0xffffffec
add ebx, eax
jmp 0x421f52
mov eax, 0x3e00
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [edi + 8], cx
jmp 0x4221c0
imul ecx, dword [ebx + 4], 0x28
push 4
pop edx
add ecx, dword [ebp - 0x14]
test byte [ecx + 8], dl
je case.0x421e97.110
call fcn.0041c2de
jmp 0x421ed8
imul edi, dword [ebx + 4], 0x28
mov eax, 0x4000
add edi, dword [ebp - 0x14]
test word [edi + 8], ax
je 0x422bc8
mov ecx, edi
call fcn.0041bef2
mov dword [ebp - 8], eax
jmp 0x422bcc
and dword [ebp - 8], 0
push dword [ebp - 0x5c]
mov dl, byte [ebx + 8]
mov ecx, edi
call fcn.0041c378
pop ecx
cmp dword [ebp - 8], 0
je 0x4221c0
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
push 7
pop ecx
cmp byte [eax + 0x45], 0
cmovne ebx, ecx
cmp dword [esi + 0x2c], 0
mov dword [ebp - 8], ebx
jne 0x422c21
cmp ebx, 0xc0a
je 0x422c21
mov ecx, ebx
call fcn.0045552d
push eax
push 0x494f44
push esi
call fcn.0041ce86
mov eax, dword [ebp - 4]
add esp, 0xc
mov edx, ebx
mov dword [esi + 0x50], ebx
mov ecx, eax
call fcn.004089df
push dword [esi + 0x2c]
sub edi, dword [ebp - 0x58]
push dword [esi + 0xb0]
mov eax, edi
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 8]
call fcn.0040806f
add esp, 0x14
mov ecx, esi
call fcn.0041e98f
cmp dword [ebp - 8], 0xc0a
mov edi, dword [ebp - 4]
jne 0x422c6c
mov ecx, edi
call fcn.00406d32
mov al, byte [ebp - 0x6d]
xor ebx, ebx
inc ebx
test al, al
je 0x4264f4
movzx edx, al
mov ecx, edi
dec edx
call fcn.00431831
jmp 0x4264f4
imul eax, dword [ebx + 0xc], 0x28
imul ecx, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x2c], eax
movzx edi, word [eax + 8]
movzx edx, word [ecx + 8]
mov ecx, edi
mov al, byte [ebx + 3]
or ecx, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edi
test cl, 1
je 0x422d0e
test al, al
jns 0x422ce2
mov eax, edi
xor ecx, ecx
and eax, edx
bt ax, cx
jae 0x422cd4
test edi, 0x100
jne 0x422cd4
xor edx, edx
jmp 0x422cd7
xor edx, edx
inc edx
mov al, byte [ebp - 0x15]
mov edi, dword [ebp - 0x2c]
jmp 0x422dfe
test al, 0x20
je 0x422d01
imul ecx, dword [ebx + 8], 0x28
mov edx, 0x3e00
add ecx, dword [ebp - 0x14]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
jmp 0x42273c
mov edi, dword [ebp - 4]
push 0x10
pop ecx
test cl, al
jmp 0x421f01
and al, 0x47
cmp al, 0x43
jb 0x422d4a
push 2
pop edx
test dl, cl
je 0x422db6
mov al, byte [ebp - 0x28]
and al, 0xe
cmp al, dl
jne 0x422d35
mov ecx, dword [ebp - 0x10]
xor edx, edx
call fcn.00421bea
push 2
pop edx
mov al, byte [ebp - 0x24]
and al, 0xe
cmp al, dl
jne 0x422db6
mov ecx, dword [ebp - 0x2c]
xor edx, edx
call fcn.00421bea
jmp 0x422db6
cmp al, 0x42
jne 0x422db6
mov al, byte [ebp - 0x28]
push 2
pop edx
test dl, al
jne 0x422d84
test al, 0xc
je 0x422d84
mov dl, byte [ebp - 0x5c]
mov ecx, dword [ebp - 0x10]
push 1
call fcn.0041bf7e
mov eax, dword [ebp - 0x10]
pop ecx
mov ecx, 0x7e00
push 2
mov ax, word [eax + 8]
xor ax, word [ebp - 0x28]
and ax, cx
xor word [ebp - 0x28], ax
pop edx
mov al, byte [ebp - 0x24]
test dl, al
jne 0x422db6
test al, 0xc
je 0x422db6
mov edi, dword [ebp - 0x2c]
mov ecx, edi
mov dl, byte [ebp - 0x5c]
push 1
call fcn.0041bf7e
mov ax, word [edi + 8]
xor ax, word [ebp - 0x24]
pop ecx
mov ecx, 0x7e00
and ax, cx
xor word [ebp - 0x24], ax
mov edi, dword [ebp - 0x24]
mov eax, 0x4000
test dword [ebp - 0x28], eax
je 0x422dd4
mov ecx, dword [ebp - 0x10]
call fcn.0041bef2
and dword [ebp - 0x28], 0xbfff
mov eax, 0x4000
test eax, edi
je 0x422de9
mov ecx, dword [ebp - 0x2c]
call fcn.0041bef2
and edi, 0xbfff
mov dword [ebp - 0x24], edi
push dword [ebx + 0x10]
mov edi, dword [ebp - 0x2c]
mov ecx, edi
mov edx, dword [ebp - 0x10]
call fcn.0041f621
mov edx, eax
mov al, byte [ebx]
pop ecx
movzx eax, al
sub eax, 0x24
je 0x422e3c
sub eax, 1
je 0x422e33
sub eax, 1
je 0x422e2a
sub eax, 1
je 0x422e21
sub eax, 1
je 0x422e1c
not edx
shr edx, 0x1f
jmp 0x422e45
xor eax, eax
test edx, edx
setle al
jmp 0x422e43
xor eax, eax
test edx, edx
setg al
jmp 0x422e43
xor eax, eax
test edx, edx
sete al
jmp 0x422e43
xor eax, eax
test edx, edx
setne al
mov edx, eax
mov ecx, dword [ebp - 0x10]
mov ax, word [ebp - 0x28]
mov word [ecx + 8], ax
mov ax, word [ebp - 0x24]
mov word [edi + 8], ax
test byte [ebx + 3], 0x20
je 0x422e88
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x3e00
push 4
add ecx, dword [ebp - 0x14]
mov ax, word [ecx + 8]
and ax, di
pop edi
or ax, di
mov word [ecx + 8], ax
mov eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4221c0
mov edi, dword [ebp - 4]
test edx, edx
jmp 0x421f01
mov ecx, dword [ebx + 0x10]
push 4
pop edx
add ecx, edx
mov dword [ebp - 0xdc], ecx
jmp case.0x421e97.110
test byte [ebx + 3], al
mov edi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x64], edi
mov edi, dword [ebx + 8]
pop eax
cmovne eax, dword [ebp - 0xdc]
mov dword [ebp - 0x3c], edi
xor edi, edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x4c], edx
test ecx, ecx
jle 0x422f2d
test eax, eax
je 0x422edc
mov ecx, dword [eax + edi*4]
jmp 0x422ede
mov ecx, edi
mov eax, dword [edx + 0x10]
push dword [edx + edi*4 + 0x14]
mov al, byte [edi + eax]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x3c]
add eax, ecx
imul edx, eax, 0x28
mov eax, dword [ebp - 0x64]
add eax, ecx
imul ecx, eax, 0x28
add edx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
call fcn.0041f621
mov dword [ebp - 0xe0], eax
pop ecx
test eax, eax
jne 0x422f1f
mov eax, dword [ebp - 0x74]
inc edi
mov edx, dword [ebp - 0x4c]
cmp edi, dword [ebp - 0x54]
jl 0x422ed3
jmp 0x422f2d
cmp byte [ebp - 0x15], 0
je 0x422f2d
neg eax
mov dword [ebp - 0xe0], eax
and dword [ebp - 0xdc], 0
jmp 0x4221c0
mov eax, dword [ebp - 0xe0]
test eax, eax
jns 0x422f48
mov eax, dword [ebx + 4]
jmp 0x422f52
jne 0x422f4f
mov eax, dword [ebx + 8]
jmp 0x422f52
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x58]
imul eax, eax, 0x14
add ebx, 0xffffffec
add ebx, eax
jmp 0x421ed8
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
test byte [ecx + 8], al
je 0x422f73
push 6
pop edi
jmp 0x422f86
call fcn.0041c13c
or eax, edx
je 0x422f81
push 3
pop edi
jmp 0x422f83
xor edi, edi
xor eax, eax
inc eax
imul ecx, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x14]
test byte [ecx + 8], al
je 0x422f9e
mov eax, 0x4997de
mov ecx, 0x499832
jmp 0x422fbd
call fcn.0041c13c
or eax, edx
je 0x422fb3
mov eax, 0x4997dd
mov ecx, 0x499831
jmp 0x422fbd
mov eax, 0x4997dc
mov ecx, 0x499830
cmp byte [ebx], 0x1c
push 2
cmove eax, ecx
imul ecx, dword [ebx + 0xc], 0x28
mov dl, byte [eax + edi]
mov edi, 0x3e00
add ecx, dword [ebp - 0x14]
mov ax, word [ecx + 8]
and ax, di
movzx edi, ax
pop eax
cmp dl, al
jne 0x422fe8
xor eax, eax
inc eax
jmp 0x422ff4
movzx eax, dl
cdq
push 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
pop eax
or eax, edi
jmp 0x42273f
imul edi, dword [ebx + 8], 0x28
mov ecx, 0x2460
imul eax, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
test word [edi + 8], cx
je 0x423026
mov ecx, edi
call fcn.0041c098
mov eax, dword [ebp - 0x3c]
xor edx, edx
inc edx
jmp 0x42302d
xor edx, edx
inc edx
mov word [edi + 8], dx
test byte [eax + 8], dl
jne 0x4221c0
push 4
pop ecx
mov word [edi + 8], cx
mov ecx, eax
call fcn.0041c13c
or eax, edx
jne 0x42304d
inc eax
xor ecx, ecx
jmp 0x42305b
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4221c0
imul edi, dword [ebx + 8], 0x28
mov ecx, 0x2460
imul eax, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
test word [edi + 8], cx
je 0x423090
mov ecx, edi
call fcn.0041c098
mov eax, dword [ebp - 0x3c]
xor edx, edx
inc edx
jmp 0x423097
xor edx, edx
inc edx
mov word [edi + 8], dx
test byte [eax + 8], dl
jne 0x4221c0
push 4
pop ecx
mov word [edi + 8], cx
mov ecx, eax
call fcn.0041c13c
not eax
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4221c0
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x422b67
mov byte [eax + ecx], 1
jmp 0x421ed8
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
test byte [ecx + 8], al
je 0x4230e9
mov eax, dword [ebx + 0xc]
jmp 0x42310d
call fcn.0041c1d1
ucomisd xmm0, qword [ebp - 0x148]
lahf
xor edx, edx
test ah, 0x44
jnp 0x423103
inc edx
mov eax, edx
jmp 0x423106
xor eax, eax
inc edx
cmp byte [ebx], 0x16
jne 0x42310d
xor eax, edx
test eax, eax
jmp 0x421f01
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x14]
test byte [eax + ecx + 8], 1
jmp 0x421f01
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x14]
test byte [eax + ecx + 8], 1
je 0x422b67
jmp 0x421ed8
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x8c]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x8c], eax
call fcn.0041ef4b
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 8], eax
imul eax, dword [ebx + 0xc], 0x28
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], edx
add ecx, eax
cmp dword [ebp - 8], 0
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jne 0x422be4
mov eax, dword [edi + 0x40]
cmp eax, dword [esi + 0x48]
je 0x4232f7
cmp byte [edi + 2], 0
je 0x4231ce
cmp byte [edi], 3
jne 0x4227d9
imul edx, edx, 0x28
add edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xa4], eax
mov dword [edi + 0x48], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0xa4]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x50], ecx
jmp 0x423246
cmp byte [edi + 4], 0
mov ecx, edx
jne 0x423203
call fcn.004165f2
mov ecx, dword [ebp - 0x2c]
lea edx, [ebp - 0xa4]
mov eax, dword [ecx + 0x14]
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x34], eax
call fcn.00416a25
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x44], esi
mov esi, dword [ebp - 0x1c]
jmp 0x423222
call fcn.004165f2
mov ecx, dword [ebp - 0x2c]
lea edx, [ebp - 0xa4]
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x44], eax
call fcn.00416a25
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ecx + 0x44]
cmp eax, edx
ja 0x423237
mov dword [ecx + 0x48], eax
jmp 0x423246
mov edi, dword [ebp - 4]
cmp eax, dword [edi + 0x5c]
ja 0x42299c
mov dword [ecx + 0x48], edx
mov eax, dword [ebp - 0x44]
mov edx, 0x80
mov ecx, dword [esi + 0x48]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebp - 0x44]
mov edi, dword [ecx + 0x50]
mov al, byte [edi]
cmp al, dl
jae 0x42326d
movzx eax, al
mov dword [ebp - 0xc4], eax
mov al, 1
jmp 0x42327d
lea edx, [ebp - 0xc4]
mov ecx, edi
call fcn.0040966d
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x24]
movzx eax, al
mov dword [ecx + 0x4c], eax
xor ecx, ecx
mov eax, dword [ebp - 0x44]
mov word [eax + 0x12], cx
mov eax, dword [ebp - 0xc4]
mov dword [edx], eax
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0xc4]
jae 0x4232ef
mov eax, dword [ebp - 0x44]
and dword [eax + 0x50], ecx
mov eax, dword [ebp - 0x44]
and dword [eax + 0x48], ecx
mov eax, dword [ebp - 0xc4]
cmp eax, 0x18003
ja 0x4232c9
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x20], edi
cmp eax, dword [edi + 0x44]
jbe 0x42330a
push 0x494084
push 0x1286a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0040806f
add esp, 0x14
push 0xb
pop ebx
jmp 0x422be7
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x20], edi
jmp 0x42330a
movzx eax, word [edi + 0x12]
cmp eax, dword [ebp - 0x8c]
jg 0x42352c
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
cmp dword [edi + 0x4c], eax
jae 0x4234e1
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x74], ecx
test ecx, ecx
jne 0x42336c
push 0xa
xor eax, eax
lea edi, [ebp - 0x1c0]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x1c0]
push eax
xor eax, eax
cmp byte [ecx + 4], al
mov ecx, dword [ebp - 0x2c]
sete al
push eax
push dword [edx]
xor edx, edx
call fcn.0041c956
mov ecx, eax
add esp, 0xc
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1b0]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x74], ecx
mov eax, dword [eax]
movzx edx, word [edi + 0x12]
add eax, ecx
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x54], eax
push 0x58
lea edx, [ebx + edx*4]
xor ebx, ebx
mov esi, dword [edx]
mov dword [ebp - 0x48], edx
mov edx, dword [edi + 0x4c]
add edx, ecx
pop eax
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x34], eax
movzx ecx, byte [edx]
mov dword [ebp - 0x6c], ebx
mov ebx, 0x80
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x84], ecx
cmp ecx, ebx
jae 0x4233c6
movzx eax, byte [ecx + 0x49a5d8]
cdq
mov dword [ebp - 0x3c], 1
mov esi, eax
mov eax, dword [ebp - 0x3c]
mov ebx, edx
jmp 0x4233f4
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x84]
call fcn.0040966d
mov ecx, dword [ebp - 0x84]
movzx eax, al
cmp ecx, ebx
jb 0x4233e8
lea esi, [ecx - 0xc]
shr esi, 1
jmp 0x4233ef
movzx esi, byte [ecx + 0x49a5d8]
mov edi, dword [ebp - 0x44]
xor ebx, ebx
add esi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x20]
adc ebx, dword [ebp - 0x6c]
add edx, eax
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x6c], ebx
push 4
pop ebx
mov dword [eax + edi], ecx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
add eax, ebx
mov ebx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x4c], ecx
mov dword [eax], esi
mov dword [ebp - 0x48], eax
cmp ecx, dword [ebp - 0x8c]
jg 0x42343a
cmp edx, dword [ebp - 0x54]
jae 0x42343a
mov edi, dword [ebp - 0x44]
jmp 0x423396
mov eax, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp - 0x1c]
mov word [eax + 0x12], cx
mov ecx, edx
mov eax, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x74]
mov dword [eax + 0x4c], ecx
mov edi, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x54]
jb 0x4234a4
ja 0x42346e
mov eax, dword [ebp - 0x4c]
cmp eax, dword [edi + 0x44]
jne 0x42346e
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x4234aa
cmp dword [edi + 0x50], 0
jne 0x423495
mov eax, 0x2460
test dword [ebp - 0x1b8], eax
jne 0x42348a
cmp dword [ebp - 0x1a8], 0
je 0x423495
lea ecx, [ebp - 0x1c0]
call fcn.0041c0f5
push 0x494084
push 0x128a7
jmp 0x4232d3
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
ja 0x42346e
jb 0x4234b5
cmp eax, dword [edi + 0x44]
ja 0x42346e
cmp dword [edi + 0x50], 0
jne 0x4234e8
mov eax, 0x2460
test dword [ebp - 0x1b8], eax
jne 0x4234d1
cmp dword [ebp - 0x1a8], 0
je 0x4234e8
lea ecx, [ebp - 0x1c0]
call fcn.0041c0f5
mov edi, dword [ebp - 0x44]
jmp 0x4234e8
and dword [ebp - 0x84], 0
movzx eax, word [edi + 0x12]
cmp eax, dword [ebp - 0x8c]
jg 0x42353c
cmp byte [ebx + 1], 0xf8
jne 0x42350b
mov edx, dword [ebx + 0x10]
mov eax, 0x800
mov ecx, dword [ebp - 0x28]
push eax
jmp 0x42223b
mov eax, dword [ebp - 0x28]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x423520
mov ecx, eax
jmp 0x422387
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x4221c0
mov eax, dword [ebp - 0x8c]
mov eax, dword [edi + eax*4 + 0x58]
mov dword [ebp - 0x84], eax
mov edi, dword [ebp - 0x28]
mov eax, 0x2460
test word [edi + 8], ax
je 0x423551
mov ecx, edi
call fcn.0041c098
mov al, byte [ebp - 0x5c]
mov esi, dword [ebp - 0x24]
mov byte [edi + 0xa], al
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ecx + 0x48]
cmp eax, dword [esi + edx*4 + 4]
mov esi, dword [ebp - 0x1c]
jb 0x42360a
mov eax, dword [ebp - 0x24]
mov ecx, dword [ecx + 0x50]
add ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x34], ecx
cmp eax, 0xc
jae 0x423597
mov edx, eax
push edi
call fcn.0041f1d1
jmp 0x422240
add eax, 0xfffffff4
shr eax, 1
mov dword [ebp - 0x54], eax
mov dword [edi + 0xc], eax
lea edx, [eax + 2]
cmp dword [edi + 0x18], edx
jge 0x4235cb
xor eax, eax
mov ecx, edi
inc eax
push 0
mov word [edi + 8], ax
call fcn.0041bd5d
pop ecx
test eax, eax
jne 0x4264c8
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0x54]
jmp 0x4235d1
mov ecx, dword [edi + 0x14]
mov dword [edi + 0x10], ecx
push eax
push dword [ebp - 0x34]
push ecx
call fcn.00469930
mov eax, dword [edi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x54]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, dword [ebp - 0x84]
and eax, 1
mov ax, word [eax*2 + 0x49a5d4]
mov word [edi + 8], ax
jmp 0x4221c0
mov al, byte [ebx + 3]
mov edx, dword [ebp - 0x84]
test al, 0xc0
je 0x423625
cmp edx, 0xc
jb 0x423621
test dl, 1
je 0x423640
test al, al
js 0x423640
mov eax, 0x80
cmp edx, eax
jb 0x423635
lea ecx, [edx - 0xc]
shr ecx, 1
jmp 0x42363c
movzx ecx, byte [edx + 0x49a5d8]
test ecx, ecx
jne 0x42364a
mov ecx, 0x4a3e64
jmp 0x42358c
mov edx, dword [ebp - 0x44]
xor eax, eax
push edi
cmp byte [edx + 4], al
mov edx, dword [ebp - 0x8c]
sete al
push eax
mov eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [eax + edx*4]
call fcn.0041c956
mov esi, eax
add esp, 0xc
mov dword [ebp - 8], esi
test esi, esi
jne 0x4264e6
mov edx, dword [ebp - 0x84]
mov ecx, dword [edi + 0x10]
push edi
call fcn.0041f1d1
mov eax, 0xefff
and word [edi + 8], ax
pop ecx
mov esi, dword [ebp - 0x1c]
jmp 0x4221c0
mov eax, dword [ebx + 0x10]
imul edi, dword [ebx + 4], 0x28
mov dword [ebp - 0x34], eax
mov al, byte [eax]
add edi, dword [ebp - 0x14]
test al, al
je 0x4221c0
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x5c]
push ebx
mov dl, al
mov ecx, edi
inc esi
call fcn.00421c6e
mov al, byte [esi]
add edi, 0x28
pop ecx
test al, al
jne 0x4236ba
mov ebx, dword [ebp - 0x10]
jmp 0x423695
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
movzx edx, byte [esi + 0x5c]
xorps xmm0, xmm0
mov edi, dword [ebx + 0x10]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
imul eax, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x14]
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x50], xmm0
mov dword [ebp - 0x74], ecx
add eax, 0xffffffd8
mov dword [ebp - 0x54], edx
add eax, ecx
mov dword [ebp - 0x64], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
test edi, edi
je 0x423739
mov al, byte [edi]
mov esi, ecx
mov ebx, dword [ebp - 0x5c]
push ebx
mov dl, al
mov ecx, esi
call fcn.00421c6e
add esi, 0x28
inc edi
pop ecx
mov al, byte [edi]
test al, al
jne 0x42371e
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0xc8]
push eax
call fcn.0041ef97
mov edx, dword [ebp - 0x2c]
mov edi, eax
mov eax, 0x4000
pop ecx
mov dword [edx + 0x1c], edi
test word [edx + 8], ax
je 0x4237a4
mov ecx, dword [ebp - 0x24]
or ecx, dword [ebp - 0x6c]
je 0x423790
mov ecx, edx
call fcn.0041bef2
test eax, eax
jne 0x4264c8
jmp 0x4237a1
mov ecx, dword [edx]
mov eax, ecx
cdq
add dword [ebp - 0x48], eax
adc dword [ebp - 0x20], edx
sub dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0xc8]
mov dword [ebp - 0x24], eax
adc dword [ebp - 0x6c], 0
cmp edi, 0x7f
ja 0x4237be
xor eax, eax
inc eax
jmp 0x4237ea
shr edi, 7
xor ecx, ecx
mov eax, edi
mov dword [ebp - 0x2c], 1
or eax, ecx
je 0x4237e7
mov esi, dword [ebp - 0x2c]
shrd edi, ecx, 7
inc esi
shr ecx, 7
mov eax, edi
or eax, ecx
jne 0x4237d3
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x28], ecx
cmp edx, dword [ebp - 0x74]
je 0x423807
sub edx, 0x28
mov dword [ebp - 0x2c], edx
mov ecx, edx
mov edx, dword [ebp - 0x54]
jmp 0x423757
cmp ecx, 0x7e
jle 0x42387e
mov eax, ecx
mov dword [ebp - 0x2c], 1
cdq
mov edi, eax
shrd edi, edx, 7
shr edx, 7
mov ecx, edi
or ecx, edx
je 0x42383c
mov esi, dword [ebp - 0x2c]
shrd edi, edx, 7
inc esi
shr edx, 7
mov eax, edi
or eax, edx
jne 0x423828
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
cdq
mov edi, eax
mov dword [ebp - 0x4c], 1
shrd edi, edx, 7
shr edx, 7
mov ecx, edi
or ecx, edx
je 0x423873
mov esi, dword [ebp - 0x4c]
shrd edi, edx, 7
inc esi
shr edx, 7
mov eax, edi
or eax, edx
jne 0x42385f
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x4c]
jge 0x423882
inc ecx
mov dword [ebp - 0x28], ecx
mov eax, ecx
cdq
mov dword [ebp - 0x4c], eax
mov ecx, edx
add eax, dword [ebp - 0x24]
mov edi, eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x34], ecx
adc ecx, dword [ebp - 0x6c]
add edi, dword [ebp - 0x48]
mov eax, dword [eax + 0x5c]
adc ecx, dword [ebp - 0x20]
cdq
cmp ecx, edx
jg 0x42299c
jl 0x4238b7
cmp edi, eax
ja 0x42299c
mov edi, dword [ebp - 0x3c]
mov ecx, edi
mov edx, dword [ebp - 0x54]
call fcn.0041be5b
test eax, eax
jne 0x4264c8
mov edx, dword [ebp - 0x28]
mov eax, 0x80
mov edi, dword [edi + 0x10]
cmp edx, eax
jae 0x4238e2
xor eax, eax
mov byte [edi], dl
inc eax
jmp 0x4238f1
push dword [ebp - 0x34]
mov ecx, edi
push dword [ebp - 0x4c]
call fcn.004094ae
pop ecx
pop ecx
mov ebx, dword [ebp - 0x74]
movzx esi, al
mov eax, dword [ebx + 0x1c]
lea ecx, [esi + edi]
mov edx, 0x80
mov dword [ebp - 0x34], eax
cmp eax, edx
jae 0x423910
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x42391a
push 0
push eax
call fcn.004094ae
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
mov edx, ebx
push dword [ebp - 0x34]
movzx eax, al
add esi, eax
lea ecx, [ecx + edi]
call fcn.0041f0a0
add dword [ebp - 0x28], eax
add ebx, 0x28
pop ecx
cmp ebx, dword [ebp - 0x64]
jbe 0x4238f7
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov dword [ecx + 0xc], eax
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [ebp - 0x20]
je 0x423966
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
xor eax, eax
inc eax
mov byte [ecx + 0xa], al
jmp 0x422398
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x130]
mov eax, dword [esi + 0x38]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x14]
movlpd qword [ebp - 0x130], xmm0
call fcn.0041a5bf
mov esi, eax
mov dword [ebp - 8], esi
test esi, esi
mov esi, dword [ebp - 0x1c]
jne 0x422be4
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, dword [ebp - 0x130]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x12c]
jmp 0x422015
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x4c], eax
test ecx, ecx
jne 0x423a9f
cmp dword [edi + 0xa0], ecx
jg 0x4261d1
test eax, eax
jne 0x4239e7
xor edi, edi
jmp 0x4239fb
mov edi, eax
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4239ec
sub edi, ecx
and edi, 0x3fffffff
mov ecx, dword [ebp - 4]
xor edx, edx
mov eax, dword [ecx + 0x1b4]
add eax, dword [ecx + 0x1b0]
push eax
call fcn.00449bad
mov esi, eax
mov dword [ebp - 8], esi
pop ecx
test esi, esi
jne 0x4264e6
mov ecx, dword [ebp - 4]
lea eax, [edi + 0x21]
push esi
push eax
call fcn.00406b1f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x423695
lea ecx, [edi + 1]
push ecx
push dword [ebp - 0x4c]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call fcn.00469930
mov edi, dword [ebp - 4]
add esp, 0xc
cmp byte [edi + 0x43], 0
je 0x423a61
mov byte [edi + 0x43], 0
mov byte [edi + 0x4b], 1
jmp 0x423a67
inc dword [edi + 0x1b0]
mov eax, dword [edi + 0x1a8]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1b8]
mov dword [edi + 0x1a8], esi
mov dword [esi + 8], eax
mov eax, dword [edi + 0x1bc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x1c0]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1c4]
mov dword [esi + 0x14], eax
jmp 0x421f52
and dword [ebp - 0x28], 0
mov edi, dword [edi + 0x1a8]
test edi, edi
je 0x426207
mov esi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [edi]
mov edx, esi
call fcn.00408b3b
test eax, eax
je 0x423acc
mov edi, dword [edi + 0x18]
inc ebx
test edi, edi
jne 0x423ab7
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x10]
test edi, edi
je 0x426204
mov ecx, dword [ebp - 4]
xor eax, eax
mov edx, dword [ebp - 0x24]
inc eax
cmp dword [ecx + 0xa0], 0
jle 0x423af7
cmp edx, eax
je 0x4261db
cmp dword [edi + 0x18], 0
jne 0x423b49
cmp byte [ecx + 0x4b], 0
je 0x423b49
mov dword [ebp - 0x48], eax
cmp edx, eax
jne 0x423b4d
mov edx, eax
mov ecx, esi
call fcn.0041e931
mov dword [ebp - 8], eax
test eax, eax
jne 0x4264ee
mov eax, dword [ebp - 4]
mov ecx, esi
mov byte [eax + 0x43], 1
call fcn.0041e98f
push 5
pop ecx
cmp eax, ecx
je 0x4261e5
mov edx, dword [ebp - 4]
mov byte [edx + 0x4b], 0
mov eax, dword [esi + 0x50]
mov dword [ebp - 8], eax
jmp 0x423c42
and dword [ebp - 0x48], 0
mov eax, dword [ecx + 0x1b0]
sub eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x14]
cmp edx, 2
jne 0x423bc8
mov ecx, dword [ecx + 0x18]
and dword [ebp - 0x3c], 0
shr ecx, 1
and ecx, 1
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x423bcd
xor ecx, 1
xor eax, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x4c], eax
jmp 0x423b85
mov eax, dword [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 4]
mov edx, 0x204
mov ecx, dword [ecx + 0x10]
mov ecx, dword [eax + ecx + 4]
call fcn.00416233
mov dword [ebp - 8], eax
pop ecx
test eax, eax
jne 0x422be4
mov ecx, dword [ebp - 0x3c]
push 0x10
pop eax
add dword [ebp - 0x4c], eax
inc ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov ecx, dword [ebp - 0x34]
jl 0x423b82
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jmp 0x423bcd
xor ecx, ecx
mov dword [ebp - 0x20], ecx
and dword [ebp - 0x3c], 0
test eax, eax
jle 0x423c18
xor eax, eax
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 4]
push dword [ebp - 0x28]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [eax + ecx + 4]
call fcn.004163e3
mov dword [ebp - 8], eax
pop ecx
test eax, eax
jne 0x422be4
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x3c]
push 0x10
pop edx
add eax, edx
inc ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x64], eax
cmp ecx, dword [edx + 0x14]
mov edx, dword [ebp - 0x24]
jl 0x423bda
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x423c3f
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
jmp 0x423c2b
or dword [eax + 0x58], 1
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x423c24
call fcn.0043185e
mov edx, dword [ebp - 4]
push 2
pop eax
or dword [edx + 0x18], eax
jmp 0x423c42
mov edx, dword [ebp - 4]
cmp dword [edx + 0x1a8], edi
je 0x423c77
mov esi, dword [ebp - 4]
mov edx, dword [esi + 0x1a8]
mov ecx, esi
mov eax, dword [edx + 0x18]
mov dword [esi + 0x1a8], eax
call fcn.0040690a
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], edi
jne 0x423c4d
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
cmp ecx, 1
jne 0x423ca5
mov eax, dword [edi + 0x18]
mov dword [edx + 0x1a8], eax
mov edx, edi
mov edi, dword [ebp - 4]
mov ecx, edi
call fcn.0040690a
cmp dword [ebp - 0x48], 0
jne 0x423cf5
dec dword [edi + 0x1b0]
mov ecx, dword [ebp - 0x24]
jmp 0x423cd9
cmp dword [ebp - 0x48], 0
mov eax, dword [edi + 8]
mov dword [edx + 0x1b8], eax
mov eax, dword [edi + 0xc]
mov dword [edx + 0x1bc], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0x1c0], eax
mov eax, dword [edi + 0x14]
mov edi, dword [ebp - 4]
mov dword [edi + 0x1c4], eax
je 0x423cd9
push 2
pop eax
cmp ecx, eax
jne 0x423cf5
push dword [ebp - 0x28]
mov edx, ecx
mov ecx, edi
call fcn.00449bad
pop ecx
mov ecx, eax
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
jmp 0x423cf8
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x422be4
jmp 0x421ed8
mov edx, dword [ebx + 8]
test edx, edx
je 0x423d19
test dword [edi + 0x18], 0x4000000
jne 0x42621b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 4]
test edi, edi
je 0x423e0c
mov ecx, edi
call fcn.00415765
mov dword [ebp - 8], eax
cmp al, 5
je 0x42621f
test eax, eax
jne 0x422be4
cmp dword [ebx + 8], eax
je 0x423de0
push 0x10
pop eax
test byte [esi + 0x60], al
je 0x423de0
mov edx, dword [ebp - 4]
cmp byte [edx + 0x43], 0
je 0x423d6e
cmp dword [edx + 0x9c], 1
jle 0x423de0
mov eax, dword [esi + 0x70]
test eax, eax
jne 0x423d8a
mov eax, dword [edx + 0x1b0]
inc dword [edx + 0x1b4]
add eax, dword [edx + 0x1b4]
mov dword [esi + 0x70], eax
mov ecx, dword [ebp - 4]
dec eax
push eax
xor edx, edx
call fcn.00449bad
pop ecx
mov ecx, eax
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x423dad
mov edx, dword [esi + 0x70]
mov ecx, edi
call fcn.004163ad
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x1b8]
mov dword [esi + 0xa0], eax
mov eax, dword [ecx + 0x1bc]
mov dword [esi + 0xa4], eax
mov eax, dword [ecx + 0x1c0]
mov dword [esi + 0xa8], eax
mov eax, dword [ecx + 0x1c4]
mov dword [esi + 0xac], eax
lea eax, [ebp - 0xcc]
xor edx, edx
push eax
inc edx
mov ecx, edi
call fcn.0041a52c
mov edi, dword [ebp - 4]
pop ecx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xcc]
jmp 0x423e19
mov edi, dword [ebp - 4]
xor eax, eax
mov dword [ebp - 0xcc], eax
xor ecx, ecx
cmp byte [ebx + 3], 0
je 0x423e6f
cmp eax, dword [ebx + 0xc]
jne 0x423e29
cmp ecx, dword [ebx + 0x10]
je 0x423e6f
mov edx, dword [esi + 0x2c]
mov ecx, edi
call fcn.0040690a
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.00406c95
mov dword [esi + 0x2c], eax
mov edx, dword [ebx + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xcc]
je 0x423e61
mov ecx, edi
call fcn.00431831
xor eax, eax
push 0x11
inc eax
or dword [esi + 0x58], eax
pop ecx
mov dword [ebp - 8], ecx
jmp 0x423e75
mov ecx, dword [ebp - 8]
xor eax, eax
inc eax
test ecx, ecx
jne 0x422be4
jmp case.0x421e97.110
mov ecx, dword [edi + 0x10]
lea eax, [ebp - 0x118]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0041a52c
pop ecx
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, eax
mov eax, dword [ebp - 0x118]
jmp 0x421ff7
mov eax, dword [ebp - 4]
mov edi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl edi, 4
add edi, dword [eax + 0x10]
mov ecx, dword [edi + 4]
call fcn.0041a56e
xor edx, edx
pop ecx
inc edx
mov ecx, eax
mov dword [ebp - 8], ecx
push 2
cmp dword [ebx + 8], edx
jne 0x423ef2
mov ecx, dword [edi + 0xc]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 4]
mov dword [ecx], eax
mov ecx, dword [ebp - 8]
pop eax
or dword [edi + 0x18], eax
jmp 0x423f07
pop eax
cmp dword [ebx + 8], eax
jne 0x423f04
mov ecx, dword [edi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 4]
cmp dword [ebx + 4], edx
jne 0x423cf8
mov eax, dword [edi + 4]
jmp 0x423f1b
or dword [eax + 0x58], edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x423f15
and dword [esi + 0x58], 0xfffffffe
jmp 0x423cf8
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x423f41
mov eax, dword [edi + 0xc]
cmp eax, dword [ebx + 8]
je 0x424029
mov cl, byte [ebp - 0x15]
test byte [esi + 0x58], 1
jne 0x42623b
mov edx, dword [ebx + 8]
xor edi, edi
mov eax, dword [ebx + 0xc]
and dword [ebp - 0x20], edi
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x34], eax
shl eax, 4
add eax, dword [edx + 0x10]
mov edx, dword [eax + 4]
mov dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x4c]
cmp cl, 0x67
jne 0x423f93
mov eax, dword [eax + 0xc]
movzx ecx, byte [ebx + 3]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x3c], ecx
cmp al, byte [esi + 0x5c]
jae 0x423f96
mov byte [esi + 0x5c], al
jmp 0x423f96
and dword [ebp - 0x3c], edi
push 0x10
pop eax
test byte [ebx + 3], al
je 0x423fb3
imul esi, edx, 0x28
add esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.0041c2b9
mov eax, dword [esi]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x423fcc
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x20], eax
movzx edi, word [eax + 8]
movzx eax, word [eax + 6]
add edi, eax
jmp 0x423fd3
cmp al, 0xf2
jne 0x423fd3
mov edi, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
push 0
push dword [ebp - 0x34]
push edi
call fcn.00421b27
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4264c8
mov ecx, dword [ebp - 0x64]
push 4
pop eax
push dword [edi + 0x14]
or dword [edi + 8], eax
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
mov edx, eax
push dword [ebp - 0x3c]
mov byte [edi + 2], 1
mov dword [edi + 0xc], eax
call fcn.004164f8
mov dword [ebp - 8], eax
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x1c], eax
cmp byte [ebx + 1], 0xfa
setne al
mov byte [edi + 4], al
mov cl, byte [ebx + 3]
mov eax, dword [edi + 0x14]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x422bda
mov edx, dword [ebx + 4]
mov ecx, esi
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
call fcn.00421b27
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x3c], edi
test edi, edi
je 0x4264c8
xor ecx, ecx
lea eax, [edi + 8]
inc ecx
mov dword [ebp - 0x54], eax
or dword [eax], ecx
xor edx, edx
mov byte [edi + 2], cl
lea ecx, [edi + 0x18]
movzx eax, byte [ebx + 3]
push 0x41e
or eax, 5
mov dword [ebp - 0x34], ecx
push eax
mov eax, dword [ebp - 4]
push ecx
push eax
mov ecx, dword [eax]
call fcn.00414ac0
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
mov ecx, dword [edi + 0x18]
xor edx, edx
inc edx
call fcn.00415765
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x64], eax
test eax, eax
je 0x42411b
movzx esi, byte [ebx + 3]
push 2
pop eax
or esi, eax
mov eax, dword [ebp - 0x34]
mov edi, dword [eax]
mov ecx, edi
call fcn.004134b8
push esi
lea edx, [ebp - 0x11c]
mov ecx, edi
call fcn.00419f5f
pop ecx
mov ecx, edi
mov dword [ebp - 8], eax
call fcn.00413535
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x3c]
test edx, edx
jne 0x424114
push dword [edi + 0x14]
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [edi + 0x18]
push eax
push 4
mov dword [edi + 0x1c], eax
pop eax
push eax
call fcn.004164f8
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
mov esi, dword [ebp - 0x1c]
xor al, al
jmp 0x424139
push dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
xor edx, edx
push 0
push 4
pop eax
push eax
inc edx
call fcn.004164f8
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
mov al, 1
mov byte [edi + 4], al
test edx, edx
jne 0x422be4
mov edx, dword [ebp - 0x54]
xor ecx, ecx
cmp byte [ebx + 3], 8
push 4
pop eax
cmovne ecx, eax
mov eax, dword [edx]
and eax, 0xfffffffb
or ecx, eax
mov dword [edx], ecx
jmp 0x4221c0
mov edx, dword [ebx + 4]
mov ecx, esi
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
call fcn.00421b27
add esp, 0xc
test eax, eax
je 0x4264cb
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x1c], ecx
mov ecx, edi
mov edx, dword [ebx + 0xc]
push eax
call fcn.004275c6
pop ecx
mov ecx, eax
mov dword [ebp - 8], ecx
jmp 0x423cf8
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 4]
mov dword [edx + 0x2c], eax
je 0x422b67
jmp 0x421f52
mov edx, dword [ebx + 4]
mov ecx, esi
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
call fcn.00421b27
add esp, 0xc
test eax, eax
je 0x4264cb
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], dl
jmp 0x421ed8
mov eax, dword [ebx + 4]
mov ecx, esi
mov edx, dword [esi + 0x38]
mov edx, dword [edx + eax*4]
call fcn.0041e021
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
and dword [eax + ecx*4], 0
jmp 0x421ed8
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
and dword [ebp - 0x20], 0
push 2
mov edi, dword [eax + ecx*4]
cmp byte [edi + 4], 0
mov byte [edi + 2], 0
je 0x4242e3
imul ecx, dword [ebx + 0xc], 0x28
pop edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x4c], ecx
mov al, byte [ecx + 8]
and al, 0xe
cmp al, dl
jne 0x424251
xor edx, edx
call fcn.00421bea
mov ecx, dword [ebp - 0x4c]
call fcn.0041c13c
mov ecx, dword [ebp - 0x4c]
push 4
mov dword [ebp - 0x48], eax
pop eax
movzx ecx, word [ecx + 8]
mov dword [ebp - 0x6c], edx
test al, cl
jne 0x4242ac
test cl, 8
je 0x422b64
mov ecx, dword [ebp - 0x48]
call fcn.00486f30
mov eax, dword [ebp - 0x4c]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x42429b
mov ecx, dword [ebp - 0x2c]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0x2c], ecx
jmp 0x4242ac
comisd xmm1, xmm0
jbe 0x4242ac
mov eax, dword [ebp - 0x2c]
test al, 1
je 0x4242ac
inc eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [edi + 0x14]
lea eax, [ebp - 0x78]
push eax
push 0
push dword [ebp - 0x6c]
xor edx, edx
push dword [ebp - 0x48]
call fcn.00416cfd
mov ecx, eax
add esp, 0x10
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 8], ecx
mov dword [edi + 0x34], eax
test ecx, ecx
jne 0x422be4
jmp 0x42437c
mov eax, dword [edi + 0x14]
pop ecx
push 0
mov al, byte [eax + 0x43]
and al, cl
mov byte [ebp - 0x15], al
pop eax
setne al
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x140], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x138], ax
lea eax, [edx - 1]
and al, 1
neg al
sbb al, al
imul ecx, dword [ebx + 0xc], 0x28
and al, 0xfe
inc al
mov byte [ebp - 0x136], al
mov eax, 0x4000
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x13c], ecx
test word [ecx + 8], ax
je 0x42433c
call fcn.0041bef2
xor ecx, ecx
lea eax, [ebp - 0x78]
push eax
push ecx
push ecx
mov byte [ebp - 0x132], cl
lea edx, [ebp - 0x140]
push ecx
mov ecx, dword [edi + 0x14]
call fcn.00416cfd
mov ecx, eax
add esp, 0x10
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
cmp byte [ebp - 0x15], al
je 0x42437c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
cmp byte [ebp - 0x132], cl
je 0x4243ed
and dword [edi + 0x40], 0
mov eax, dword [ebp - 0x2c]
mov byte [edi + 3], 0
mov ecx, dword [ebp - 0x78]
cmp eax, 0x19
jl 0x4243b2
test ecx, ecx
js 0x4243a0
jne 0x42439a
cmp eax, 0x1a
je 0x4243a0
and dword [ebp - 0x78], 0
jmp 0x4243f7
and dword [ebp - 0x78], 0
lea eax, [ebp - 0x78]
push eax
push dword [edi + 0x14]
call fcn.00417154
jmp 0x4243e0
test ecx, ecx
jg 0x4243d0
jne 0x4243bf
push 0x17
pop ecx
cmp eax, ecx
je 0x4243d0
mov eax, dword [edi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x78], ecx
jmp 0x4243ed
and dword [ebp - 0x78], 0
lea eax, [ebp - 0x78]
push eax
push dword [edi + 0x14]
call fcn.004172a4
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x422be4
cmp dword [ebp - 0x78], 0
jne 0x422b64
cmp dword [ebp - 0x20], 0
lea eax, [ebx + 0x14]
cmove eax, ebx
mov ebx, eax
jmp 0x4221c0
mov eax, dword [esi + 0x38]
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x10]
add edi, dword [ebp - 0x14]
and dword [ebp - 0xec], 0
mov dword [ebp - 0x3c], ecx
movzx edx, ax
test eax, eax
jle 0x42448e
mov eax, dword [ecx + 0x1c]
and dword [ebp - 0x34], 0
mov dword [ebp - 0x168], eax
xor eax, eax
mov word [ebp - 0x160], dx
mov dword [ebp - 0x164], edi
cmp ax, dx
jae 0x424483
mov ebx, dword [ebp - 0x34]
xor esi, esi
lea ecx, [esi + edi]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x424472
call fcn.0041bef2
mov dx, word [ebp - 0x160]
mov edi, dword [ebp - 0x164]
inc ebx
movzx eax, dx
add esi, 0x28
cmp ebx, eax
jl 0x424452
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x168]
jmp 0x4244e1
mov ecx, dword [ecx + 0x1c]
lea eax, [ebp - 0xec]
push eax
push 0xb7
lea edx, [ebp - 0x2e8]
call fcn.0041f345
mov dword [ebp - 0x64], eax
pop ecx
pop ecx
test eax, eax
je 0x4264c8
mov ecx, 0x4000
test word [edi + 8], cx
je 0x4244ca
mov ecx, edi
call fcn.0041bef2
mov eax, dword [ebp - 0x64]
mov edx, dword [edi + 0xc]
push eax
push dword [edi + 0x10]
mov edi, dword [ebp - 0x3c]
mov ecx, dword [edi + 0x1c]
call fcn.0041f3af
mov eax, dword [ebp - 0x64]
pop ecx
pop ecx
and dword [ebp - 0x3c], 0
mov byte [eax + 0xa], 0
cmp byte [ebx], 0x1d
jne 0x424518
movzx ecx, word [eax + 8]
xor edx, edx
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x424518
mov ecx, dword [eax + 4]
add ecx, 8
test byte [ecx], 1
jne 0x424511
inc edx
add ecx, 0x28
cmp edx, dword [ebp - 0x34]
jl 0x424501
jmp 0x424518
mov dword [ebp - 0x3c], 1
lea ecx, [ebp - 0xf0]
mov edx, eax
push ecx
xor ecx, ecx
push ecx
push ecx
push ecx
mov ecx, dword [edi + 0x14]
call fcn.00416cfd
mov edx, dword [ebp - 0xec]
add esp, 0x10
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], eax
call fcn.0040690a
cmp dword [ebp - 8], 0
jne 0x422be4
mov eax, dword [ebp - 0xf0]
xor ecx, ecx
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0xf0]
test eax, eax
mov byte [edi + 3], 0
sete cl
test eax, eax
setne al
and dword [edi + 0x40], 0
mov byte [edi + 2], al
cmp byte [ebx], 0x1f
jne 0x424581
mov edi, dword [ebp - 4]
test ecx, ecx
jmp 0x421f01
cmp dword [ebp - 0x3c], 0
jne 0x422b64
test ecx, ecx
je 0x422b64
jmp 0x4221c0
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x14]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebx + 0x14]
imul eax, dword [eax + 0xc], 0x28
and dword [ebp - 0xd0], 0
mov esi, dword [eax + edx]
mov edi, dword [eax + edx + 4]
lea eax, [ebp - 0xd0]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.00416cfd
mov dword [ebp - 8], eax
add esp, 0x10
xor eax, eax
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], edi
mov word [ebx + 2], ax
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x20], eax
cmp dword [ebp - 0xd0], 0
je 0x42462b
mov ebx, dword [ebp - 0x10]
cmp dword [ebx + 8], 0
jne 0x422b64
push 0x494084
push 0x12e9e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0040806f
add esp, 0x14
push 0xb
pop ebx
mov esi, dword [ebp - 0x1c]
jmp 0x422be7
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
test ebx, ebx
jne 0x422be7
jmp 0x4221bd
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, dword [esi + 0x38]
mov edx, dword [ebx + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x421ed8
and dword [ebp - 0xa8], 0
xorps xmm0, xmm0
mov edx, ebx
movlpd qword [ebp - 0x80], xmm0
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x38]
push 2
mov dword [ebp - 0x34], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [ebp - 0x20], edi
test byte [edi + 8], al
jne 0x42470d
mov ecx, dword [edi + 0x14]
lea edx, [ebp - 0xa8]
call fcn.00416cac
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
cmp dword [ebp - 0xa8], eax
je 0x4246cd
and dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], 1
jmp 0x42470d
mov esi, dword [edi + 0x14]
mov ecx, esi
call fcn.004165f2
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
and dword [ebp - 8], 0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
cmp ecx, 0x7fffffff
jl 0x4246fe
jg 0x4246f6
cmp eax, 0xffffffff
jb 0x4246fe
push 2
pop eax
or dword [edi + 8], eax
jmp 0x42470a
add eax, 1
mov dword [ebp - 0x80], eax
adc ecx, 0
mov dword [ebp - 0x7c], ecx
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x42478b
mov eax, dword [esi + 0xb8]
test eax, eax
jne 0x42476e
imul edi, edx, 0x28
add edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.0041c2b9
mov ecx, dword [edi]
mov edx, dword [edi + 4]
cmp ecx, 0xffffffff
jne 0x424741
cmp edx, 0x7fffffff
je 0x4247ef
mov eax, dword [ebp - 0x20]
test byte [eax + 8], 2
jne 0x4247ef
add ecx, 1
adc edx, 0
cmp dword [ebp - 0x7c], edx
jg 0x42477d
jl 0x424762
mov eax, dword [ebp - 0x80]
cmp eax, ecx
jae 0x424780
mov eax, ecx
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x80], eax
jmp 0x424780
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x42476c
imul edi, edx, 0x28
add edi, dword [eax + 0x10]
jmp 0x424724
mov eax, dword [ebp - 0x80]
mov dword [edi], eax
mov eax, dword [ebp - 0x7c]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x20]
push 2
pop eax
test byte [edi + 8], al
je 0x4247f9
xor edi, edi
lea eax, [ebp - 0x80]
push eax
push 8
pop eax
push eax
call fcn.004080e5
mov eax, dword [ebp - 0x7c]
lea edx, [ebp - 0xa8]
mov ecx, dword [ebp - 0x80]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x80], ecx
push 0
mov dword [ebp - 0x7c], eax
xor edx, edx
push eax
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [eax + 0x14]
call fcn.00416cfd
mov edx, eax
add esp, 0x18
mov dword [ebp - 8], edx
test edx, edx
jne 0x422be4
cmp dword [ebp - 0xa8], eax
jne 0x4247f6
inc edi
cmp edi, 0x64
jl 0x424795
push 0xd
jmp 0x4232e9
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
and dword [edi + 0x40], 0
mov byte [edi + 3], 0
mov eax, dword [ebp - 0x80]
mov dword [ecx], eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 4], eax
jmp 0x4221c0
imul edi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [ebp - 0x14]
and dword [ebp - 0x3c], 0
add edi, edx
cmp byte [ebp - 0x15], 0x71
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x48], ecx
jne 0x42484c
imul eax, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x14]
mov edx, dword [eax + edx]
mov eax, dword [eax + esi + 4]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x20], eax
jmp 0x424858
mov eax, dword [ebx + 0xc]
cdq
mov dword [ebp - 0x20], edx
mov edx, eax
mov dword [ebp - 0x4c], eax
cmp byte [ebx + 1], 0xec
jne 0x424896
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd8], 0
je 0x424896
movsx ecx, byte [ecx + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 4
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 0x10]
pop ecx
mov dword [ebp - 0x64], eax
mov al, byte [ebx + 3]
test cl, al
push 0x12
pop ecx
cmovne ecx, dword [ebp - 0x120]
mov dword [ebp - 0x3c], ecx
jmp 0x4248a1
and dword [ebp - 0x64], 0
and dword [ebp - 0x54], 0
mov al, byte [ebx + 3]
test al, 1
je 0x4248ab
inc dword [esi + 0x64]
mov al, byte [ebx + 3]
push 2
pop ecx
test cl, al
je 0x4248ca
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x94], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
movzx ecx, word [edi + 8]
test cl, 1
je 0x4248db
and dword [edi + 0x10], 0
and dword [edi + 0xc], 0
mov dl, byte [ebx + 3]
push 0x10
pop eax
test al, dl
je 0x4248ed
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x20]
jmp 0x4248ef
xor eax, eax
test ecx, 0x4000
je 0x4248fb
mov ecx, dword [edi]
jmp 0x4248fd
xor ecx, ecx
push eax
movzx eax, dl
xor edx, edx
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp - 0x48]
push ecx
push dword [edi + 0xc]
push dword [edi + 0x10]
mov edi, dword [ebp - 0x4c]
push dword [ebp - 0x20]
mov ecx, dword [eax + 0x14]
push edi
call fcn.00419ac3
mov edx, eax
add esp, 0x1c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 8], edx
and dword [eax + 0x40], 0
mov byte [eax + 3], 0
test edx, edx
jne 0x422be4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd8]
test eax, eax
je 0x4221c0
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x4221c0
push dword [ebp - 0x20]
mov edx, dword [ebp - 0x64]
push edi
push dword [edx]
push dword [ebp - 0x54]
push ecx
mov edi, dword [ebp - 4]
push dword [edi + 0xd4]
call eax
add esp, 0x18
jmp 0x421ed8
cmp byte [ebx + 1], 0xec
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
jne 0x4249d9
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd8], 0
je 0x4249d9
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x64], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x3c], eax
pop eax
test byte [ebx + 3], al
je 0x4249e1
cmp byte [edi + 4], 0
je 0x4249e1
mov esi, dword [edi + 0x14]
mov ecx, esi
call fcn.004165f2
mov eax, dword [esi + 0x10]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0x1c]
mov dword [edi + 0x34], eax
jmp 0x4249e1
and dword [ebp - 0x64], 0
and dword [ebp - 0x3c], 0
mov dl, byte [ebx + 3]
mov ecx, dword [edi + 0x14]
call fcn.00419cc6
and dword [edi + 0x40], 0
mov edx, eax
mov dword [ebp - 8], edx
test edx, edx
jne 0x422be4
inc eax
test byte [ebp - 0x34], al
je 0x422398
mov eax, dword [ebp - 4]
inc dword [esi + 0x64]
mov eax, dword [eax + 0xd8]
test eax, eax
je 0x4221c0
mov ecx, dword [ebp - 0x3c]
test byte [ecx + 0x2a], 0x20
jne 0x4221c0
push dword [edi + 0x34]
push dword [edi + 0x30]
push dword [ecx]
push dword [ebp - 0x64]
push 9
jmp 0x424967
mov eax, dword [esi + 0x64]
add dword [edi + 0x58], eax
mov dword [edi + 0x54], eax
and dword [esi + 0x64], 0
jmp 0x421ed8
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
lea eax, [ebp - 0xf4]
and dword [ebp - 0xf4], 0
add edx, dword [ebp - 0x14]
push eax
push dword [ebx + 0x10]
call fcn.00428e47
mov edx, eax
mov dword [ebp - 8], edx
pop ecx
pop ecx
test edx, edx
jne 0x422be4
cmp dword [ebp - 0xf4], eax
jmp 0x421f01
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
add edx, dword [ebp - 0x14]
mov ecx, dword [eax + ecx*4]
call fcn.00428df1
mov edx, eax
mov dword [ebp - 8], edx
test edx, edx
jne 0x422be4
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], edx
jmp 0x421ed8
imul eax, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
cmp byte [eax + 4], 0
mov edi, dword [eax + 0x14]
mov ecx, edi
mov dword [ebp - 0x4c], edi
jne 0x424b04
call fcn.004165f2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [edi + 0x10]
mov eax, dword [eax + 0x5c]
cdq
cmp dword [ecx + 0x14], edx
jg 0x42299c
jl 0x424b18
cmp edi, eax
jmp 0x424b12
call fcn.004165f2
mov eax, dword [ebp - 4]
mov edi, dword [edi + 0x1c]
cmp edi, dword [eax + 0x5c]
ja 0x42299c
mov ecx, dword [ebp - 0x20]
push 0x20
pop edx
cmp edi, edx
cmova edx, edi
call fcn.0041be5b
test eax, eax
jne 0x4264c8
mov ecx, dword [ebp - 0x20]
mov edx, 0x3e00
push 0x10
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 0xc], edi
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x34]
cmp byte [ecx + 4], 0
jne 0x424b6b
mov ecx, dword [ebp - 0x4c]
xor edx, edx
push 0
push eax
push edi
call fcn.0041673c
add esp, 0xc
jmp 0x424b7a
push eax
push edi
push 0
push dword [ebp - 0x4c]
call fcn.004169e2
add esp, 0x10
mov ecx, eax
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
mov eax, dword [ebp - 0x20]
mov byte [eax + 0xa], 1
jmp 0x4221c0
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x3c], eax
mov edi, dword [ecx + edx*4]
cmp byte [edi + 2], 0
jne 0x423520
cmp byte [edi + 3], 0
je 0x424bc9
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0xe8], ecx
mov eax, dword [edi + 0x34]
jmp 0x424c57
push 2
pop eax
cmp byte [edi], al
jne 0x424c05
mov ecx, dword [edi + 0x14]
lea edx, [ebp - 0xe8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov edx, esi
mov dword [ebp - 8], eax
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042022d
cmp dword [ebp - 8], 0
jne 0x422be4
mov ecx, dword [ebp - 0xe8]
jmp 0x424c5d
mov eax, dword [edi + 0x14]
cmp byte [eax + 0x42], 1
je 0x424c19
mov ecx, edi
call fcn.0041ef10
mov ecx, eax
jmp 0x424c1b
xor ecx, ecx
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
cmp byte [edi + 2], cl
je 0x424c3a
mov edx, dword [ebp - 0x3c]
xor eax, eax
inc eax
mov word [edx + 8], ax
jmp 0x422398
mov esi, dword [edi + 0x14]
mov ecx, esi
call fcn.004165f2
mov ecx, dword [esi + 0x10]
and dword [ebp - 8], 0
mov dword [ebp - 0xe8], ecx
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0x3c]
mov dword [edx], ecx
mov eax, dword [ebp - 0xe4]
mov dword [edx + 4], eax
jmp 0x4221c0
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], 0
cmp byte [eax], 0
mov byte [eax + 2], 1
jne 0x421ed8
mov esi, dword [eax + 0x14]
push dword [esi + 0x30]
call fcn.0040689c
and dword [esi + 0x30], 0
pop ecx
mov byte [esi + 0x42], 0
jmp 0x421f52
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xd4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x14]
and dword [ebp - 0xd4], 0
call fcn.00416cac
mov dword [ebp - 8], eax
mov al, byte [ebp - 0xd4]
and dword [esi + 0x40], 0
cmp dword [ebp - 8], 0
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x20], eax
jne 0x4264e6
cmp dword [ebx + 8], 0
jle 0x421f52
cmp dword [ebp - 0xd4], 0
jne 0x422b67
jmp 0x421f52
inc dword [esi + 0x7c]
mov eax, dword [esi + 0x38]
lea edx, [ebp - 0xac]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0xac], eax
cmp byte [edi], al
jne 0x424d29
mov ecx, edi
call fcn.00428d00
jmp 0x424d39
mov ecx, dword [edi + 0x14]
call fcn.00416c81
and dword [edi + 0x40], 0
mov byte [edi + 3], 0
mov ecx, eax
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
mov al, byte [ebp - 0xac]
mov byte [edi + 2], al
mov edi, dword [ebp - 4]
cmp dword [ebp - 0xac], ecx
jmp 0x421f01
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
lea eax, [ebp - 0xb0]
mov ecx, dword [ebp - 4]
mov edx, edi
and dword [ebp - 0xb0], 0
push eax
call fcn.00428d50
jmp 0x424db0
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x421ed8
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xb0]
push eax
push dword [edi + 0x14]
call dword [ebx + 0x10]
pop ecx
mov dword [ebp - 8], eax
pop ecx
and dword [edi + 0x40], 0
test eax, eax
jne 0x422be4
cmp dword [ebp - 0xb0], eax
jne 0x424dd8
mov byte [edi + 2], al
movzx eax, byte [ebx + 3]
inc dword [esi + eax*4 + 0x74]
jmp 0x425f1c
xor eax, eax
inc eax
mov byte [edi + 2], al
jmp 0x42540a
imul edi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
add edi, dword [ebp - 0x14]
test byte [ebx + 3], 1
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x3c], ecx
je 0x424dff
inc dword [esi + 0x64]
mov eax, 0x4000
test word [edi + 8], ax
je 0x424e16
mov ecx, edi
call fcn.0041bef2
mov ecx, dword [ebp - 0x3c]
jmp 0x424e18
xor eax, eax
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
cmp byte [ebx], 0x7b
jne 0x424e33
mov edx, edi
call fcn.0042819a
mov ecx, eax
jmp 0x424e6c
push 0x10
pop eax
test byte [ebx + 3], al
je 0x424e40
mov eax, dword [ecx + 0x20]
jmp 0x424e42
xor eax, eax
mov ecx, dword [ecx + 0x14]
push eax
push dword [ebx + 0xc]
mov eax, dword [edi + 0xc]
push 0
push 0
cdq
push 0x494070
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.00419ac3
mov ecx, eax
add esp, 0x1c
mov eax, dword [ebp - 0x3c]
and dword [eax + 0x40], 0
mov dword [ebp - 8], ecx
test ecx, ecx
jmp 0x422bde
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x188], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x180], ax
imul eax, dword [ebx + 8], 0x28
mov byte [ebp - 0x17e], dl
mov dword [ebp - 0x34], ecx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0x124]
push eax
push edx
push edx
push edx
lea edx, [ebp - 0x188]
call fcn.00416cfd
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
cmp dword [ebp - 0x124], eax
jne 0x424ef3
mov ecx, dword [ebp - 0x34]
push 4
pop eax
mov dl, al
call fcn.00419cc6
mov edx, eax
mov dword [ebp - 8], edx
test edx, edx
jne 0x422be4
and dword [edi + 0x40], 0
jmp 0x4221c0
mov eax, dword [esi + 0x38]
xor edx, edx
mov ecx, dword [ebx + 4]
inc edx
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x14]
cmp byte [eax + 0x42], dl
je 0x424f1e
mov ecx, edi
call fcn.0041ef10
xor edx, edx
mov ecx, eax
inc edx
jmp 0x424f20
xor ecx, ecx
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x422be4
cmp byte [edi + 2], cl
jne 0x424fb6
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x108]
xorps xmm0, xmm0
movlpd qword [ebp - 0x108], xmm0
mov edx, dword [edi + 0x14]
push eax
call fcn.0041fff2
mov edx, eax
mov dword [ebp - 8], edx
pop ecx
test edx, edx
jne 0x422be4
cmp byte [ebx], 0x7e
jne 0x424f94
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
mov byte [ecx + 2], dl
mov eax, dword [ebp - 0x108]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x104]
mov dword [ecx + 0x34], eax
mov byte [ecx + 3], 1
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], edi
jmp 0x4221c0
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, dword [ebp - 0x108]
push 4
mov dword [eax], ecx
mov ecx, dword [ebp - 0x104]
mov dword [eax + 4], ecx
pop ecx
jmp 0x423523
imul eax, dword [ebx + 8], 0x28
mov ecx, 0x2460
add eax, dword [ebp - 0x14]
test word [eax + 8], cx
jne 0x423519
mov word [eax + 8], dx
jmp 0x4221c0
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, edi
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x198], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x190], ax
mov al, byte [ebp - 0x15]
cmp al, 0x3a
sbb al, al
and dword [ebp - 0xb4], 0
mov byte [ebp - 0x18e], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x194], eax
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x198]
push eax
call fcn.00420107
test byte [ebx], 1
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 8], ecx
jne 0x42503e
neg eax
jmp 0x42503f
inc eax
mov dword [ebp - 0xb4], eax
test ecx, ecx
jne 0x422be4
test eax, eax
jg 0x422b67
jmp 0x421ed8
mov edx, ebx
mov ecx, esi
call fcn.00421d81
xor ecx, ecx
mov dword [ebp - 0x34], eax
inc ecx
mov word [eax + 8], cx
mov ecx, dword [edi + 0xa8]
inc ecx
cmp dword [edi + 0x9c], ecx
jg 0x426245
mov eax, dword [ebx + 0xc]
mov ecx, eax
and dword [ebp - 0xb8], 0
add ecx, ecx
mov esi, dword [ebx + 4]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
call fcn.004134b8
lea eax, [ebp - 0xb8]
mov edx, esi
push eax
mov ecx, edi
call fcn.0041a350
pop ecx
mov ecx, edi
mov dword [ebp - 8], eax
call fcn.00413535
cmp dword [ebp - 8], 0
mov ecx, dword [ebp - 0x34]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xb8]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne 0x4264e6
cmp dword [ebp - 0xb8], 0
mov edi, dword [ebp - 4]
je 0x421f52
push dword [ebx + 4]
mov edx, dword [ebp - 0x3c]
mov ecx, edi
push dword [ebp - 0xb8]
call fcn.0043343e
mov al, byte [ebp - 0x3c]
pop ecx
inc al
pop ecx
mov byte [ebp - 0x6d], al
jmp 0x421f52
and dword [ebp - 0xf8], 0
lea eax, [ebp - 0xf8]
mov edx, dword [ebx + 4]
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0041a2fa
cmp dword [ebx + 0xc], 0
pop ecx
mov ecx, eax
mov dword [ebp - 8], ecx
je 0x423cf8
mov eax, dword [ebp - 0xf8]
add dword [esi + 0x64], eax
mov edx, dword [ebx + 0xc]
test edx, edx
jle 0x423cf8
mov edi, dword [ebp - 0x14]
imul ecx, edx, 0x28
cdq
add dword [ecx + edi], eax
mov eax, edi
mov edi, dword [ebp - 4]
adc dword [ecx + eax + 4], edx
jmp 0x423cf5
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x425192
mov edx, dword [ecx + 0x14]
mov ecx, edi
call fcn.004278d4
jmp 0x421ed8
mov ecx, dword [ecx + 0x14]
push 0
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx]
call fcn.0041a2fa
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jmp 0x423cfa
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edi, dword [ebp - 0x10]
and dword [ebp - 0xfc], 0
mov bl, byte [ebx]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov edx, dword [edi + 4]
add edx, edx
mov ecx, dword [eax + 0x10]
mov esi, dword [ecx + edx*8 + 4]
mov ecx, esi
call fcn.004134b8
xor edx, edx
mov ecx, esi
cmp bl, 0x84
setne dl
inc edx
push edx
lea edx, [ebp - 0xfc]
call fcn.00419f5f
pop ecx
mov ecx, esi
mov dword [ebp - 8], eax
call fcn.00413535
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
test ebx, ebx
jne 0x422bea
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x34]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4221bd
mov ecx, dword [ebx + 4]
lea eax, [esi + 0x2c]
push dword [ebx + 0x10]
mov dword [ebp - 0x174], eax
cmp ecx, 1
mov edx, str.sqlite_temp_master
mov dword [ebp - 0x170], ecx
mov eax, str.sqlite_master
mov dword [ebp - 0x178], edi
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.00407f87
mov edi, eax
add esp, 0x14
test edi, edi
je 0x426253
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x178]
and dword [ebp - 0x16c], 0
push 0
push ecx
push fcn.0043faa4
push edi
push eax
mov byte [eax + 0x95], 1
call fcn.0043c8cd
add esp, 0x14
mov edx, edi
mov edi, dword [ebp - 4]
test eax, eax
mov ecx, edi
cmove eax, dword [ebp - 0x16c]
mov dword [ebp - 8], eax
call fcn.0040690a
cmp dword [ebp - 8], 0
mov byte [edi + 0x95], 0
jne 0x42625c
jmp 0x421ed8
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.004305f8
jmp 0x4251a2
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.004319c5
jmp 0x42230c
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.0043171c
jmp 0x42230c
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.00447207
jmp 0x42230c
imul esi, dword [ebx + 0xc], 0x28
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 4]
imul edi, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0x10]
push eax
add esi, dword [ebp - 0x14]
movzx eax, byte [ebx + 3]
mov ecx, dword [ecx + 0x10]
add eax, eax
add edi, dword [ebp - 0x14]
push dword [esi]
push dword [ebx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0041aec5
mov dword [ebp - 0x34], eax
add esp, 0xc
mov eax, dword [ebp - 0x88]
mov ecx, edi
cdq
sub dword [esi], eax
sbb dword [esi + 4], edx
call fcn.0041c443
cmp dword [ebp - 0x88], 0
je 0x42537a
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x4264c5
push fcn.0040689c
push 1
push 0xffffffffffffffff
mov edx, eax
mov ecx, edi
call fcn.0041c716
add esp, 0xc
movzx edx, byte [ebp - 0x5c]
mov ecx, edi
call fcn.0041bd48
jmp 0x423695
imul edi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
add edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
test byte [edi + 8], 0x20
jne 0x4253b5
mov ecx, edi
call fcn.0041c55e
test byte [edi + 8], 0x20
je 0x4264c8
mov eax, dword [ebp - 0x34]
push dword [eax + 4]
mov ecx, dword [edi]
push dword [eax]
call fcn.0040d43f
pop ecx
jmp 0x422240
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
test byte [edi + 8], 0x20
je 0x42546e
mov ecx, dword [edi]
lea edx, [ebp - 0x150]
call fcn.0040d644
test eax, eax
je 0x42546e
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0x14c]
push dword [ebp - 0x150]
add ecx, dword [ebp - 0x14]
call fcn.0041c4d4
pop ecx
pop ecx
xor eax, eax
inc eax
mov edi, dword [ebp - 4]
cmp dword [edi + 0xf8], 0
jne 0x4264a6
mov edi, dword [edi + 0x130]
mov edx, dword [ebp - 0xc]
test edi, edi
je 0x426124
cmp edx, dword [ebp - 0xc0]
jb 0x426124
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x138]
mov eax, edx
xor edx, edx
div ecx
mov eax, dword [ebp - 0xc]
sub eax, edx
add eax, ecx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 4]
push dword [eax + 0x134]
call edi
pop ecx
test eax, eax
je 0x4221c0
push 9
jmp 0x4232e9
mov ecx, edi
call fcn.0041c443
jmp 0x425f1c
imul edi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x3c], ecx
add edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x64], eax
test byte [edi + 8], 0x20
jne 0x4254ae
mov ecx, edi
call fcn.0041c55e
test byte [edi + 8], 0x20
je 0x4264c8
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x4254cf
push dword [eax + 4]
mov edx, ecx
mov ecx, dword [edi]
push dword [eax]
call fcn.0040d69c
pop ecx
pop ecx
test eax, eax
jne 0x422b64
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
js 0x4221c0
mov eax, dword [ebp - 0x64]
jmp 0x4253b5
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x48], edi
add eax, dword [ebp - 0x14]
cmp byte [ebx + 3], 0
mov dword [ebp - 0x20], eax
je 0x425517
mov eax, dword [esi + 0xb8]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x425514
cmp dword [eax + 0x1c], ecx
je 0x42550c
mov eax, dword [eax + 4]
test eax, eax
jne 0x425500
test eax, eax
jne 0x4221c0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 0xc0]
cmp ecx, dword [edx + 0x84]
jge 0x426276
test byte [eax + 8], 0x40
jne 0x425613
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [ebp - 0x34], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [edi + 0x10]
add ecx, edx
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 4]
cdq
push edx
push eax
call fcn.00406ac6
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4264c8
mov ecx, dword [ebp - 0x20]
call fcn.0041c123
mov eax, dword [ebp - 0x20]
sub ebx, dword [ebp - 0x58]
push 0x40
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x34]
mov dword [eax], edi
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x40], ecx
mov dword [edi], esi
push 0x14
mov eax, dword [eax + 0xc]
mov dword [edi + 0x44], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ebx, dword [ebp - 0x48]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 8]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x24]
mov dword [edi + 0x2c], eax
mov eax, dword [esi + 4]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [esi + 0xd0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0xcc]
mov dword [edi + 0x3c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [edi + 0x50]
add ecx, edi
cmp eax, ecx
je 0x42560b
mov edx, dword [ebp - 4]
mov esi, 0x80
mov word [eax + 8], si
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x4255f7
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x48]
mov ecx, dword [esi + 0xc0]
jmp 0x425618
mov edi, dword [eax]
mov ebx, dword [ebp - 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0xc0], eax
lea ecx, [edi + 0x50]
mov eax, dword [esi + 0xb8]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x90]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x64]
mov dword [edi + 0x48], eax
mov eax, dword [esi]
mov dword [ebp - 0x14], ecx
mov eax, dword [eax + 0x54]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xd4]
mov dword [edi + 0x28], eax
and dword [esi + 0xd4], 0
and dword [esi + 0x64], 0
mov dword [esi + 8], ecx
mov dword [esi + 0xb8], edi
mov eax, dword [edi + 0x40]
mov dword [esi + 0x1c], eax
movzx edx, word [edi + 0x44]
imul eax, eax, 0x28
mov dword [esi + 0x24], edx
add ecx, eax
mov dword [esi + 0x38], ecx
mov edi, dword [ebx]
mov dword [esi + 4], edi
mov eax, dword [ebx + 4]
lea ecx, [ecx + edx*4]
mov dword [esi + 0x20], eax
mov dword [esi + 0xd0], ecx
mov eax, dword [ebx + 0x10]
lea ebx, [edi - 0x14]
push eax
push 0
push ecx
mov dword [ebp - 0x58], edi
mov dword [esi + 0xcc], eax
call fcn.004693e0
add esp, 0xc
jmp 0x4221c0
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov esi, dword [esi + 0xb8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
call fcn.0041c621
pop ecx
jmp 0x421f52
test dword [edi + 0x18], 0x2000000
mov eax, dword [ebx + 8]
cdq
je 0x42570a
add dword [edi + 0x1c0], eax
adc dword [edi + 0x1c4], edx
jmp 0x421ed8
cmp dword [ebx + 4], 0
je 0x425721
add dword [edi + 0x1b8], eax
adc dword [edi + 0x1bc], edx
jmp 0x421ed8
add dword [esi + 0x98], eax
adc dword [esi + 0x9c], edx
jmp 0x421ed8
cmp dword [ebx + 4], 0
je 0x42575b
mov eax, dword [edi + 0x1b8]
or eax, dword [edi + 0x1bc]
jne 0x421ed8
mov eax, dword [edi + 0x1c0]
or eax, dword [edi + 0x1c4]
jmp 0x423131
mov eax, dword [esi + 0x98]
or eax, dword [esi + 0x9c]
jmp 0x425744
mov eax, dword [esi + 0xb8]
test eax, eax
jne 0x4257b3
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.0041c2b9
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.0041c2b9
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x423695
jl 0x4257a7
cmp dword [edi], eax
jae 0x423695
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x423695
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4257b1
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x42577a
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
test eax, eax
jl 0x4221c0
jg 0x4257e1
test edi, edi
je 0x4221c0
mov eax, dword [ebx + 0xc]
cdq
sub edi, eax
mov eax, dword [ecx + 4]
mov dword [ecx], edi
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x422b64
imul esi, dword [ebx + 4], 0x28
mov edx, ebx
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x1c]
add esi, dword [ebp - 0x14]
add edi, dword [ebp - 0x14]
call fcn.00421d81
cmp dword [esi + 4], 0
mov edx, eax
jg 0x425824
jl 0x42581d
cmp dword [esi], 0
ja 0x425824
or eax, 0xffffffff
or ecx, eax
jmp 0x425846
mov ecx, dword [edi + 4]
mov eax, dword [edi]
test ecx, ecx
jl 0x425833
jg 0x425841
test eax, eax
jne 0x425841
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x423695
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
mov edi, dword [ecx]
mov eax, edi
or eax, dword [ecx + 4]
jmp 0x4257db
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
add dword [ecx], 0xffffffff
mov eax, dword [ecx]
adc dword [ecx + 4], 0xffffffff
or eax, dword [ecx + 4]
jmp 0x423131
mov al, byte [ebx + 3]
mov ecx, edi
mov byte [ebp - 0x15], al
movzx eax, al
cdq
add eax, 7
adc edx, 0
shld edx, eax, 2
shl eax, 2
push edx
push eax
call fcn.00406b1f
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4264c8
and dword [edi + 8], 0
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x58]
mov dword [edi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], eax
mov al, byte [ebp - 0x15]
mov byte [edi + 0x1a], al
mov word [ebx], 0xeb92
mov dword [ebx + 0x10], edi
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x34], edx
cmp dword [edi + 8], edx
je 0x425911
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], edx
js 0x425911
lea esi, [ecx + 7]
push 4
lea esi, [edi + esi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x14]
mov dword [esi], eax
sub esi, edx
sub ecx, 1
jns 0x4258f7
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x34]
inc dword [edx + 0xc]
lea ecx, [ebp - 0x230]
mov edx, dword [ebp - 4]
push 1
call fcn.0041c42f
lea eax, [ebp - 0x230]
mov word [edi + 0x18], 0
pop ecx
mov ecx, dword [edi + 4]
mov dword [edi], eax
lea eax, [edi + 0x1c]
push eax
movzx eax, byte [edi + 0x1a]
push eax
push edi
call dword [ecx + 0xc]
add esp, 0xc
cmp byte [edi + 0x19], 0
je 0x425989
cmp dword [edi + 0x14], 0
je 0x425974
mov dl, 1
lea ecx, [ebp - 0x230]
call fcn.0041ca46
push eax
push 0x494f44
push esi
call fcn.0041ce86
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x230]
call fcn.0041c123
cmp dword [ebp - 8], 0
jne 0x422be4
cmp byte [edi + 0x18], 0
je 0x4221c0
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x4221c0
imul ecx, eax, 0x28
push 0
push 1
add ecx, dword [ebp - 0x14]
call fcn.0041c4d4
jmp 0x4253c1
imul edi, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0x10]
add edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.0041c028
mov dword [ebp - 8], eax
mov ecx, edi
test eax, eax
jne 0x42628f
movzx edx, byte [ebp - 0x5c]
call fcn.0041bd48
mov ecx, edi
jmp 0x42298f
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x10c]
and dword [ebp - 0x114], 0
mov ecx, edi
or dword [ebp - 0x10c], 0xffffffff
or dword [ebp - 0x110], 0xffffffff
push eax
lea eax, [ebp - 0x110]
push eax
push dword [ebx + 8]
call fcn.00455cfb
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
je 0x425a31
cmp eax, 5
jne 0x422be4
and dword [ebp - 8], 0
mov dword [ebp - 0x114], 1
imul edi, dword [ebx + 0xc], 0x28
add edi, dword [ebp - 0x14]
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x114]
mov ecx, edi
cdq
push edx
push eax
call fcn.0041c4d4
inc esi
add edi, 0x28
pop ecx
pop ecx
cmp esi, 3
jl 0x425a3a
jmp 0x423695
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov ecx, dword [edi + 0x10]
mov edx, dword [ebx + 4]
add edx, edx
mov dword [ebp - 0x64], eax
cmp dword [ebx + 0xc], 0xffffffff
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x24], eax
movzx edx, byte [eax + 5]
mov edi, edx
mov dword [ebp - 0x20], edx
cmovne edi, dword [ebx + 0xc]
call fcn.004112dd
mov edx, dword [ebp - 0x20]
test eax, eax
mov eax, dword [ebp - 0x24]
mov ecx, 0x494070
cmove edi, edx
cmp byte [eax + 0x10], 0
jne 0x425ab2
mov ecx, dword [eax + 0xb0]
cmp edi, 5
jne 0x425ae4
test ecx, ecx
je 0x425ae2
lea eax, [ecx + 1]
mov dword [ebp - 0x34], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425ac1
sub ecx, dword [ebp - 0x34]
and ecx, 0x3fffffff
je 0x425ae2
mov ecx, dword [ebp - 0x24]
call fcn.004112ff
mov edx, dword [ebp - 0x20]
test eax, eax
jne 0x425ae4
mov edi, edx
cmp edi, edx
je 0x425b5d
cmp edx, 5
je 0x425af2
cmp edi, 5
jne 0x425b5d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x43], 0
je 0x4262aa
cmp dword [eax + 0x9c], 1
jg 0x4262aa
cmp edx, 5
jne 0x425b2c
mov ecx, dword [ebp - 0x24]
call fcn.004113d8
mov dword [ebp - 8], eax
test eax, eax
jne 0x425b62
mov ecx, dword [ebp - 0x24]
mov edx, edi
call fcn.00411211
jmp 0x425b47
push 4
pop eax
cmp edx, eax
jne 0x425b40
mov ecx, dword [ebp - 0x24]
push 2
pop eax
mov edx, eax
call fcn.00411211
mov eax, dword [ebp - 8]
test eax, eax
jne 0x425b62
mov ecx, dword [ebp - 0x3c]
xor edx, edx
cmp edi, 5
sete dl
inc edx
call fcn.0041b282
mov dword [ebp - 8], eax
jmp 0x425b60
mov eax, dword [ebp - 8]
test eax, eax
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
cmove edx, edi
call fcn.00411211
mov edi, dword [ebp - 0x64]
mov ecx, 0xa02
mov word [edi + 8], cx
mov ecx, eax
call fcn.0043d52c
mov ecx, eax
mov dword [edi + 0x10], ecx
test ecx, ecx
je 0x425b9e
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425b8f
sub ecx, edx
and ecx, 0x3fffffff
movzx edx, byte [ebp - 0x5c]
mov dword [edi + 0xc], ecx
mov ecx, edi
mov byte [edi + 0xa], 1
call fcn.0041bd48
jmp 0x422bda
lea ecx, [esi + 0x2c]
mov edx, edi
call fcn.00448b70
jmp 0x4251a2
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00415e9a
mov ecx, eax
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x421ed8
cmp ecx, 0x65
jne 0x422be4
and dword [ebp - 8], 0
jmp 0x422b67
cmp dword [ebx + 4], 0
jne 0x425c06
mov ecx, edi
call fcn.004201b7
jmp 0x421ed8
or dword [esi + 0x58], eax
jmp case.0x421e97.110
mov al, byte [ebx + 0xc]
mov byte [ebp - 0xd8], al
test al, al
jne 0x425c29
mov eax, 0x4000
test dword [edi + 0x18], eax
jne 0x421ed8
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add eax, eax
push dword [ebp - 0xd8]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0041b17c
pop ecx
mov ecx, eax
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x421ed8
cmp cl, 6
jne 0x422be4
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x42629c
mov edi, dword [ebx + 0x10]
mov edx, edi
mov ecx, dword [ebp - 4]
call fcn.00449aff
mov ecx, eax
mov dword [ebp - 8], ecx
test edi, edi
je 0x424e6f
mov edx, dword [edi + 8]
mov ecx, esi
call fcn.0042022d
mov ecx, dword [ebp - 8]
jmp 0x424e6f
imul edx, dword [ebx + 8], 0x28
lea edi, [ebp - 0x208]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 4]
lea ecx, [ebp - 0x208]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x1e8], edi
call fcn.0041c672
mov dl, 1
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x208]
call fcn.0041ca46
test eax, eax
je 0x425ce3
mov edx, dword [ebx + 4]
lea ecx, [esi + 0x2c]
push ecx
push eax
mov ecx, edi
call fcn.004497c8
pop ecx
pop ecx
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x208]
call fcn.0041c123
cmp dword [ebp - 8], 0
jmp 0x423cfa
inc dword [edi + 0xa8]
mov ecx, edi
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.00449a1e
dec dword [edi + 0xa8]
jmp 0x4251a1
mov eax, dword [ebx + 0x10]
and dword [ebp - 0xbc], 0
mov edi, dword [eax + 8]
test edi, edi
je 0x4262db
mov eax, dword [edi]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4262db
lea ecx, [ebp - 0xbc]
push ecx
push edi
call dword [eax + 0x18]
pop ecx
pop ecx
mov edx, edi
mov dword [ebp - 8], eax
mov ecx, esi
call fcn.0042022d
cmp dword [ebp - 8], 0
jne 0x422be4
mov eax, dword [ebp - 0xbc]
mov ecx, esi
push 2
mov dword [eax], edi
mov edx, dword [ebx + 4]
pop eax
push eax
push 0xffffffffffffffff
push 0
call fcn.00421b27
add esp, 0xc
test eax, eax
je 0x4262c9
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x14], ecx
inc dword [edi + 4]
jmp 0x4221c0
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x74], eax
add edx, dword [ebp - 0x14]
mov edi, dword [eax + 0x14]
mov ecx, dword [edx + 0x28]
mov eax, dword [edi]
mov dword [ebp - 0x54], eax
mov eax, dword [eax]
mov dword [ebp - 0x64], eax
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x3c], eax
xor eax, eax
test ecx, ecx
jle 0x425dd8
mov esi, dword [ebp - 0x3c]
add edx, 0x50
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x425dca
mov esi, dword [ebp - 0x1c]
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x64]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x34]
push edi
call dword [eax + 0x20]
mov edx, dword [ebp - 0x54]
add esp, 0x14
mov ecx, esi
mov dword [ebp - 8], eax
call fcn.0042022d
cmp dword [ebp - 8], 0
jne 0x422be4
mov eax, dword [ebp - 0x64]
push edi
call dword [eax + 0x28]
mov edi, dword [ebp - 4]
pop ecx
mov ecx, dword [ebp - 0x74]
mov byte [ecx + 2], 0
jmp 0x42310d
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x3c], ecx
add eax, dword [ebp - 0x14]
cmp byte [ecx + 2], 0
mov dword [ebp - 0x34], eax
je 0x425e42
mov ecx, eax
call fcn.0041c443
jmp 0x421ed8
mov eax, dword [ecx + 0x14]
lea edi, [ebp - 0x1e0]
push 8
mov esi, dword [eax]
pop eax
mov ecx, eax
xor eax, eax
mov edx, dword [esi]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
mov ecx, 0x3e00
mov dword [ebp - 0x1e0], edi
mov ax, word [edi + 8]
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edi + 8], ax
lea eax, [ebp - 0x1e0]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x14]
call dword [edx + 0x2c]
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042022d
cmp dword [ebp - 0x1cc], 0
mov ecx, edi
mov eax, dword [ebp - 8]
cmovne eax, dword [ebp - 0x1cc]
movzx edx, byte [ebp - 0x5c]
mov dword [ebp - 8], eax
call fcn.0041bd48
mov ecx, edi
call fcn.0041c5dd
test eax, eax
jne 0x42299c
jmp 0x422bda
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4221c0
mov eax, dword [edi + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x34], ecx
call dword [ecx + 0x24]
pop ecx
mov edx, esi
mov dword [ebp - 8], eax
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042022d
cmp dword [ebp - 8], 0
jne 0x422be4
mov eax, dword [ebp - 0x34]
push dword [edi + 0x14]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x425407
mov edi, dword [ebp - 4]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x58]
add ebx, 0xffffffec
add ebx, eax
xor eax, eax
mov dword [ebp - 0x10], ebx
inc eax
jmp 0x42540d
imul edi, dword [ebx + 4], 0x28
xor edx, edx
mov eax, dword [ebx + 0x10]
inc edx
add edi, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov ecx, edi
mov dword [ebp - 0x3c], eax
call fcn.0041bd48
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
mov ecx, dword [ebp - 0x3c]
push dword [edi + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x4c]
mov edx, dword [ebp - 0x3c]
pop ecx
pop ecx
mov ecx, esi
mov dword [ebp - 8], eax
call fcn.0042022d
and dword [esi + 0x58], 0xfffffffe
jmp 0x422bda
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4262db
mov eax, dword [edi]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4262db
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
je 0x4221c0
mov eax, dword [ebp - 4]
xor ecx, ecx
mov al, byte [eax + 0x4a]
mov byte [ebp - 0x15], al
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x3c], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
test edx, edx
jle 0x425fd4
mov esi, dword [ebp - 0x3c]
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x425fc6
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 4]
mov al, byte [ebx + 3]
mov byte [ecx + 0x4a], al
lea eax, [ebp - 0x158]
push eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
push edx
push edi
call dword [eax + 0x34]
mov ecx, dword [ebp - 4]
add esp, 0x10
mov dword [ebp - 8], eax
mov edx, edi
mov al, byte [ebp - 0x15]
mov byte [ecx + 0x4a], al
mov ecx, esi
call fcn.0042022d
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test eax, eax
jne 0x426034
cmp dword [ebx + 4], eax
je 0x426034
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x94], edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
cmp al, 0x13
jne 0x426068
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x426068
mov cl, byte [ebx + 3]
push 4
pop eax
cmp cl, al
jne 0x426054
and dword [ebp - 8], 0
jmp 0x421ed8
movzx eax, cl
cmp cl, 5
push 2
pop ecx
cmove eax, ecx
mov byte [esi + 0x56], al
jmp 0x425cee
inc dword [esi + 0x64]
jmp 0x425cee
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
and dword [eax + 4], 0
mov dword [eax], ecx
jmp 0x421ed8
mov edx, ebx
mov ecx, esi
call fcn.00421d81
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
mov edi, dword [ebx + 0xc]
mov dword [ebp - 0x34], eax
mov ecx, dword [ecx + edx*8 + 4]
xor edx, edx
test edi, edi
je 0x4260c2
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, edi
cmovb edx, edi
call fcn.00415386
mov ecx, dword [ebp - 0x34]
jmp 0x422e7d
cmp dword [edi + 0xb4], 0
je 0x426115
push 2
pop eax
test byte [esi + 0x58], al
jne 0x426115
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x4260f1
mov edx, dword [esi + 0xb0]
test edx, edx
je 0x426115
mov ecx, esi
call fcn.0042188a
mov esi, eax
push esi
push dword [edi + 0xb8]
call dword [edi + 0xb4]
pop ecx
pop ecx
mov edx, esi
mov ecx, edi
call fcn.0040690a
mov esi, dword [ebp - 0x1c]
cmp dword [ebx + 8], 0
je 0x421ed8
jmp 0x422b67
mov edi, dword [ebp - 4]
jmp 0x421ede
mov dword [esi + 0x50], ecx
mov al, byte [ebx + 8]
mov byte [esi + 0x56], al
mov dword [esi + 0x4c], edi
test ecx, ecx
je 0x4261a7
mov al, byte [ebx + 3]
test al, al
je 0x42617c
movzx eax, al
push dword [eax*4 + 0x49c640]
push str._s_constraint_failed
push esi
call fcn.0041ce86
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x42618d
push dword [ebx + 0x10]
push dword [esi + 0x2c]
push str._z:__s
push dword [ebp - 4]
call fcn.00407f87
add esp, 0x10
mov dword [esi + 0x2c], eax
jmp 0x42618d
push dword [ebx + 0x10]
push 0x494f44
push esi
call fcn.0041ce86
add esp, 0xc
push dword [esi + 0x2c]
push dword [esi + 0xb0]
push edi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0040806f
add esp, 0x14
mov ecx, esi
call fcn.0041e98f
mov edi, dword [ebp - 4]
push 5
pop ecx
mov dword [ebp - 8], eax
cmp eax, ecx
jne 0x42646a
mov dword [esi + 0x50], ecx
jmp 0x4264f1
push 0x14
pop eax
mov ebx, eax
jmp 0x422be7
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x4263fd
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x4263fd
sub ebx, dword [ebp - 0x58]
mov eax, ebx
mov edi, dword [ebp - 4]
push 0x14
cdq
pop ebx
idiv ebx
mov dword [esi + 0x4c], eax
mov byte [edi + 0x43], 0
mov ebx, ecx
mov dword [esi + 0x50], ecx
jmp 0x4264f4
mov eax, dword [ebp - 0x4c]
push eax
push str.no_such_savepoint:__s
push esi
call fcn.0041ce86
add esp, 0xc
jmp 0x42649e
push 8
jmp 0x4261c9
sub ebx, dword [ebp - 0x58]
mov eax, ebx
mov edi, dword [ebp - 4]
push 0x14
cdq
pop ecx
idiv ecx
mov ebx, dword [ebp - 8]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ebx
jmp 0x4264f4
mov ebx, 0x204
jmp 0x422be7
push 6
pop ebx
push 2
pop eax
mov byte [esi + 0x56], al
jmp 0x422be7
mov edi, dword [ebp - 4]
push 7
pop eax
mov dword [ebp - 8], eax
mov ecx, edi
call fcn.0043185e
mov ebx, dword [ebp - 8]
push 7
pop eax
cmp ebx, eax
je 0x4264cb
jmp 0x422be7
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [ebp - 8], 1
call fcn.0041ce86
pop ecx
pop ecx
jmp 0x422be4
mov dl, 1
call fcn.0041ca46
push eax
push 0x494f44
push esi
call fcn.0041ce86
add esp, 0xc
jmp 0x422be4
cmp edi, 5
mov dword [ebp - 8], 1
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x42629c
mov eax, dword [ebp - 0x34]
push dword [ebp - 0xbc]
call dword [eax + 0x1c]
pop ecx
jmp 0x4264c8
push 6
jmp 0x4232e9
mov eax, dword [edi + 0x130]
test eax, eax
je 0x426308
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0xc0]
jb 0x426308
push dword [edi + 0x134]
call eax
pop ecx
test eax, eax
jne 0x425467
xor edx, edx
mov ecx, esi
call fcn.0041e931
mov dword [ebp - 8], eax
test eax, eax
jne 0x422be4
xor edx, edx
mov ecx, esi
inc edx
call fcn.0041e827
mov eax, dword [esi + 0x48]
and dword [ebp - 0x88], 0
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [esi + 0x48], eax
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
mov dword [esi + 0x14], edi
cmp dword [ebx + 8], 0
jle 0x426395
mov eax, 0x1000
test word [edi + 8], ax
je 0x426365
mov ecx, edi
call fcn.0041be77
test eax, eax
jne 0x4264c8
mov ax, word [edi + 8]
mov ecx, 0x202
and ax, cx
push 2
pop ecx
cmp ax, cx
jne 0x426380
mov ecx, edi
call fcn.0041bf42
mov eax, dword [ebp - 0x88]
add edi, 0x28
inc eax
mov dword [ebp - 0x88], eax
cmp eax, dword [ebx + 8]
jl 0x42634b
mov edi, dword [ebp - 4]
cmp byte [edi + 0x45], 0
jne 0x4264cb
sub ebx, dword [ebp - 0x58]
push 0x14
mov eax, ebx
pop ecx
cdq
idiv ecx
push 0x64
inc eax
mov dword [esi + 0x4c], eax
pop ebx
jmp 0x4264f4
mov eax, dword [ebp - 4]
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x88], edx
movzx eax, byte [eax + 0x43]
cmp edx, eax
je 0x42647c
test edi, edi
mov edi, dword [ebp - 4]
je 0x4263eb
mov edx, 0x204
mov ecx, edi
call fcn.0045542f
mov al, 1
jmp 0x426433
test edx, edx
je 0x42640c
cmp dword [edi + 0xa0], 0
jle 0x42640c
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.0041ce86
pop ecx
pop ecx
push 5
jmp 0x4232e9
mov dword [ebp - 0xd8], edx
mov ecx, esi
xor edx, edx
inc edx
call fcn.0041e931
mov dword [ebp - 8], eax
test eax, eax
jne 0x4264f1
mov eax, dword [ebp - 0xd8]
mov byte [ebp - 0x88], al
mov ecx, esi
mov byte [edi + 0x43], al
call fcn.0041e98f
push 5
pop ecx
cmp eax, ecx
jne 0x426463
sub ebx, dword [ebp - 0x58]
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
mov dword [esi + 0x4c], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x88]
mov byte [edi + 0x43], al
jmp 0x4261fa
mov ecx, edi
call fcn.00454fe9
cmp dword [esi + 0x50], 0
push 0x65
pop eax
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 8], eax
jmp 0x4264f1
test edi, edi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push esi
call fcn.0041ce86
pop ecx
pop ecx
xor ebx, ebx
inc ebx
jmp 0x422be7
push 7
pop ecx
cmp byte [edi + 0x45], 0
push 9
pop eax
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 8], eax
mov dword [esi + 0x50], eax
call fcn.0045552d
jmp 0x426296
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 4]
mov ecx, edi
call fcn.00406d32
push 0x4954d4
push esi
call fcn.0041ce86
pop ecx
pop ecx
push 7
jmp 0x4261c9
mov ebx, dword [ebp - 8]
jmp 0x424623
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x90]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0xc]
add dword [esi + 0x84], eax
cmp dword [esi + 0x6c], 0
je 0x42651c
mov ecx, esi
call fcn.0041d99f
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret