Function at 0x4528c0
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x120
push ebx
push ebp
mov ebp, dword [esp + 0x12c]
push esi
push edi
xor ebx, ebx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 8]
mov dword [esp + 0x10c], eax
mov ecx, dword [esi + 0x10]
push ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
mov edx, dword [ecx + 0xc]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x20], esi
mov byte [esp + 0x10c], bl
mov al, byte [edx + 0x4d]
mov edx, dword [esi + 0x24]
mov byte [esp + 0xec], al
mov dword [esp + 0x108], ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], edx
call fcn.0044e860
mov eax, dword [ebp + 0x58]
add esp, 4
cmp eax, 7
je 0x4578a3
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x14], ebx
mov dword [esi + 0x1b4], ebx
mov eax, dword [esi + 0xe0]
cmp eax, ebx
jne 0x4579e7
mov ecx, dword [esi + 0x114]
xor eax, eax
cmp ecx, ebx
mov ecx, dword [ebp + 0x54]
setne al
mov dword [esp + 0x118], eax
mov dword [esp + 0x18], ecx
jmp 0x452994
mov edi, dword [esp + 0xec]
mov ebp, dword [esp + 0x134]
mov edx, dword [esp + 0x1c]
mov al, byte [edx + 0x38]
test al, al
jne 0x4578a3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10c]
mov ebx, edx
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x118]
test eax, eax
je 0x4529f8
mov edx, dword [ebx + 0x11c]
mov eax, dword [esp + 0x104]
cmp edx, eax
jne 0x4529f1
mov eax, dword [ebx + 0x118]
push eax
call dword [ebx + 0x114]
add esp, 4
test eax, eax
jne 0x457754
mov dword [esp + 0x104], eax
inc dword [esp + 0x104]
test byte [esi + 2], 2
je 0x452a29
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
test word [edi + ecx*8 + 0x1c], 0x2460
lea eax, [edi + ecx*8]
mov dword [esp + 0x14], eax
je 0x452a23
mov edx, eax
push edx
call fcn.0044deb0
mov eax, dword [esp + 0x18]
add esp, 4
mov word [eax + 0x1c], 4
xor eax, eax
mov al, byte [esi]
dec eax
cmp eax, 0x93
ja case.default.0x452a39
jmp dword [eax*4 + 0x457adc]
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x4579e7
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 0x18]
cdq
mov dword [ecx + 0x10], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 0x14], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 0x18], ecx
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [esp + 0x18], eax
jmp case.default.0x452a39
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x18]
lea ecx, [esi + esi*4]
mov edx, dword [edi + ecx*8 + 0x10]
lea ecx, [edi + ecx*8]
mov word [ecx + 0x1c], 4
mov dword [esp + 0x20], edx
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
jmp case.default.0x452a39
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
je case.default.0x452a39
mov eax, dword [esi + 4]
test eax, eax
jne 0x457761
mov edi, dword [ebp + 0xa0]
test edi, edi
je 0x457761
mov edx, dword [edi + 4]
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0xa0], edx
mov edx, dword [ebp + 0xa8]
dec edx
push eax
push ebx
mov dword [ebp + 0xa8], edx
call fcn.00450240
push edi
call fcn.0044f8f0
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esi + 8]
add esp, 0xc
cmp ecx, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0xf4], edx
jne 0x452b46
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 + 8]
dec edx
mov dword [esp + 0x18], edx
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x10c], eax
mov dword [esp + 0xec], ecx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x452a39
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx]
mov dword [eax + 0x10], ecx
mov edx, dword [edx + 4]
mov dword [eax + 0x14], edx
jmp case.default.0x452a39
mov eax, dword [esp + 0x14]
mov word [eax + 0x1c], 8
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0xc], ecx
jmp case.default.0x452a39
mov edx, dword [esi + 0x10]
mov byte [esi], 9
push edx
call fcn.00440f10
mov dword [esi + 4], eax
mov al, byte [esp + 0xec]
add esp, 4
cmp al, 1
je 0x452c4d
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
push 0
push 1
push 0xffffffffffffffff
push eax
push ecx
call fcn.0044da60
add esp, 0x14
cmp eax, 0x12
mov dword [esp + 0x10], eax
je 0x457a16
mov edx, dword [esp + 0xe8]
mov edi, dword [esp + 0x14]
and edx, 0xff
push edx
push edi
call fcn.004504d0
add esp, 8
test eax, eax
jne 0x4578a3
mov dword [edi + 0x24], eax
mov ax, word [edi + 0x1c]
and eax, 0xfbff
or ah, 8
mov word [edi + 0x1c], ax
mov al, byte [esi + 1]
cmp al, 0xff
jne 0x452c39
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.0043f7f0
add esp, 8
mov ebx, dword [esp + 0x1c]
mov byte [esi + 1], 0xff
mov eax, dword [edi + 4]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x18]
mov dword [esi + 4], ecx
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x50]
cmp edx, eax
jg 0x457a16
mov eax, dword [esp + 0x14]
mov word [eax + 0x1c], 0xa02
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov edx, dword [esi + 4]
mov cl, byte [esp + 0xe8]
mov dword [eax + 0x18], edx
mov byte [eax + 0x1f], cl
jmp case.default.0x452a39
mov edx, dword [esi + 0xc]
mov ebp, dword [esi + 8]
sub edx, ebp
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov esi, dword [esi + 4]
neg esi
sbb esi, esi
and esi, 0x100
inc esi
mov word [esp + 0x24], si
mov word [eax + 0x1c], si
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle case.default.0x452a39
add eax, 0x28
mov dword [esp + 0x14], eax
test word [eax + 0x1c], 0x2460
je 0x452ccf
push eax
call fcn.0044deb0
mov eax, dword [esp + 0x18]
add esp, 4
mov cx, word [esp + 0x24]
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x20]
dec ecx
test ecx, ecx
mov dword [esp + 0x20], ecx
jg 0x452cb3
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x14]
push 0
push 0
push edx
push eax
push esi
call fcn.0044da60
mov cl, byte [esp + 0xfc]
add esp, 0x14
mov byte [esi + 0x1f], cl
jmp case.default.0x452a39
mov esi, dword [esi + 4]
mov eax, dword [ebp + 0x44]
lea edx, [esi + esi*4]
lea eax, [eax + edx*8 - 0x28]
push eax
mov dword [esp + 0x24], eax
call fcn.0045e260
add esp, 4
test eax, eax
jne 0x457a16
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
push 0x800
push ecx
push edx
call fcn.0045e290
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [esi + 0xc]
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], ecx
mov esi, dword [esi + 8]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x2c], esi
lea edx, [esi + esi*4]
lea ebx, [edi + ecx*8]
mov ecx, eax
lea edi, [edi + edx*8]
dec eax
test ecx, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], eax
je case.default.0x452a39
xor esi, esi
mov edx, dword [edi + 0x24]
push ebx
mov dword [esp + 0x24], edx
push edi
mov dword [edi + 0x24], esi
call fcn.00452710
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x24]
add ebx, 0x28
add edi, 0x28
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x452d87
mov dword [esp + 0x14], edi
jmp case.default.0x452a39
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], edx
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
lea ebx, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x14], esi
push 0x1000
push ebx
push esi
call fcn.0045e290
add esp, 0xc
test byte [esi + 0x1d], 0x10
je 0x452e03
push esi
call fcn.0044dda0
add esp, 4
test eax, eax
jne 0x4578a3
mov eax, dword [esp + 0x20]
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x20], eax
je case.default.0x452a39
add esi, 0x28
add ebx, 0x28
mov dword [esp + 0x14], esi
jmp 0x452ddd
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea ecx, [esi + esi*4]
lea eax, [eax + eax*4]
lea edx, [edi + ecx*8]
lea eax, [edi + eax*8]
push edx
push eax
mov dword [esp + 0x20], eax
call fcn.0045e290
add esp, 0xc
jmp case.default.0x452a39
push 0
push ebp
call fcn.004500f0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x452a39
push 1
push ebp
call fcn.0044ff70
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4577f0
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
lea ecx, [eax + eax*4]
mov ax, word [ebx + 0x1c]
lea edx, [esi + esi*4]
lea ebp, [edi + ecx*8]
lea esi, [edi + edx*8]
mov cl, byte [ebp + 0x1c]
mov dword [esp + 0x14], esi
or cl, al
test cl, 1
je 0x452eba
push esi
call fcn.0044dfd0
add esp, 4
jmp case.default.0x452a39
test ah, 0x40
je 0x452ed0
push ebx
call fcn.0044de00
add esp, 4
test eax, eax
jne 0x4578a3
test byte [ebp + 0x1d], 0x40
je 0x452ee7
push ebp
call fcn.0044de00
add esp, 4
test eax, eax
jne 0x4578a3
test byte [ebx + 0x1c], 0x12
jne 0x452f0c
mov edx, dword [esp + 0xe8]
and edx, 0xff
push edx
push ebx
call fcn.004509a0
add esp, 8
test eax, eax
jne 0x4578a3
test byte [ebp + 0x1c], 0x12
jne 0x452f30
mov eax, dword [esp + 0xe8]
and eax, 0xff
push eax
push ebp
call fcn.004509a0
add esp, 8
test eax, eax
jne 0x4578a3
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x18]
add eax, ecx
cdq
mov ecx, edx
mov edx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
jg 0x457a16
jl 0x452f5f
cmp esi, eax
ja 0x457a16
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov ax, word [esi + 0x1c]
and eax, 0xbe02
or al, 2
cmp esi, ebp
mov word [esi + 0x1c], ax
mov edx, dword [esp + 0x20]
sete cl
add edx, 2
push ecx
push edx
push esi
call fcn.0044dc80
add esp, 0xc
test eax, eax
jne 0x4578a3
cmp esi, ebp
je 0x452fb4
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 4]
mov edx, ecx
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x452fb8
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x18]
mov edi, dword [ebp + 0x18]
mov ebp, dword [eax + 4]
mov esi, dword [ebx + 4]
mov edx, ecx
add edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
mov byte [edx + ecx], 0
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
mov byte [edx + ecx + 1], 0
or byte [eax + 0x1d], 2
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0xe8]
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1f], dl
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0xec]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.00452830
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
lea ebp, [ebx + ecx*8]
push ebp
call fcn.00452830
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov cx, word [ebp + 0x1c]
add esp, 8
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
xor edx, edx
mov dx, word [edi + 0x1c]
mov dword [esp + 0x14], eax
or ecx, edx
mov al, cl
mov dword [esp + 0x24], ecx
test al, 1
jne 0x453271
mov al, byte [edi + 0x1c]
mov bl, byte [ebp + 0x1c]
and al, bl
and al, 4
cmp al, 4
jne 0x453180
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x2c], ecx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x30], ebx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x34], edx
xor edx, edx
mov byte [esp + 0x20], 1
mov dl, byte [esi]
add edx, 0xffffffaa
cmp edx, 3
ja case.default.0x453099
jmp dword [edx*4 + 0x457d2c]
push ecx
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00457e70
add esp, 0xc
test eax, eax
jne 0x453185
jmp 0x453158
push ecx
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.00457f10
add esp, 0xc
test eax, eax
jne 0x453185
jmp 0x453158
push ecx
lea edx, [esp + 0x34]
push eax
push edx
call fcn.00457f70
add esp, 0xc
test eax, eax
jne 0x453185
jmp 0x453158
mov edx, eax
or edx, ecx
je 0x453271
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x453112
test ebx, ebx
jne 0x453112
cmp dword [esp + 0x34], 0x80000000
je 0x453185
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.004b04d0
jmp 0x453150
mov edx, eax
or edx, ecx
je 0x453271
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x453143
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.004b0410
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x34]
and ecx, 0xbe04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.default.0x452a39
mov byte [esp + 0x20], 0
push edi
call fcn.00450a40
fstp qword [esp + 0x3c]
push ebp
call fcn.00450a40
fstp qword [esp + 0x48]
xor eax, eax
add esp, 8
mov al, byte [esi]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4531a8
jmp dword [eax*4 + 0x457d3c]
fld qword [esp + 0x40]
fadd qword [esp + 0x38]
jmp 0x453257
fld qword [esp + 0x40]
fsub qword [esp + 0x38]
jmp 0x453257
fld qword [esp + 0x40]
fmul qword [esp + 0x38]
jmp 0x453257
fld qword [esp + 0x38]
fcomp qword [0x4f11c8]
fnstsw ax
test ah, 0x40
jne 0x453271
fld qword [esp + 0x40]
fdiv qword [esp + 0x38]
jmp 0x453257
fld qword [esp + 0x38]
call fcn.004af8cc
fld qword [esp + 0x40]
mov esi, eax
mov edi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
call fcn.004af8cc
mov ecx, esi
mov dword [esp + 0x30], eax
or ecx, edi
mov dword [esp + 0x34], edx
je 0x453271
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x453239
mov esi, 1
xor edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
push edi
push esi
push edx
push eax
call fcn.004b0410
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
fild qword [esp + 0x120]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.00440ec0
add esp, 8
test eax, eax
je 0x453283
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0044dfd0
add esp, 4
jmp case.default.0x452a39
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov dx, word [eax + 0x1c]
and edx, 0xbe08
mov dword [eax + 0xc], ecx
or edx, 8
mov word [eax + 0x1c], dx
mov al, byte [esp + 0x24]
test al, 8
jne case.default.0x452a39
mov al, byte [esp + 0x20]
test al, al
jne case.default.0x452a39
mov eax, dword [esp + 0x14]
push eax
call fcn.0045e0a0
add esp, 4
jmp case.default.0x452a39
mov esi, dword [esi + 4]
test esi, esi
je case.default.0x452a39
lea ecx, [esi + esi*4]
push 0
push 0
lea edx, [edi + ecx*8]
push edx
call fcn.00450f00
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
xor eax, eax
test ecx, ecx
lea edi, [edi + edx*8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
jle 0x453372
mov ecx, dword [esp + 0x68]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x24]
test byte [eax + 0x1d], 0x10
je 0x45334d
push eax
call fcn.0044dda0
add esp, 4
test eax, eax
jne 0x4578a3
mov eax, dword [esp + 0x24]
push eax
call fcn.004527f0
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x70]
add esp, 4
inc eax
add edi, 0x28
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
jl 0x453327
cmp byte [esi + 1], 0xfb
jne 0x453387
mov edx, dword [esi + 0x10]
xor ebx, ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
jmp 0x453396
mov eax, dword [esi + 0x10]
xor ebx, ebx
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push ebp
push ecx
mov word [esp + 0x54], 1
mov dword [esp + 0x38], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
call fcn.00452710
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
and edx, 0xbe01
mov dword [esp + 0x68], ebx
or edx, 1
add esp, 8
mov word [esp + 0x4c], dx
mov cl, byte [eax + 3]
test cl, 8
je 0x4533e8
mov ecx, dword [esi - 4]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x2c]
push edx
push eax
call dword [ecx + 0xc]
mov eax, dword [edi + 0x24]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0xf0], edx
je 0x453449
mov ecx, dword [esi + 4]
push ecx
push eax
call fcn.0044e370
mov edx, dword [esp + 0x34]
add esp, 8
mov dword [esi + 0x10], edx
mov byte [esi + 1], 0xf9
mov al, byte [edi + 0x38]
test al, al
jne 0x457896
cmp dword [esp + 0x60], ebx
je 0x453486
lea eax, [esp + 0x30]
push eax
call fcn.00450d60
mov ecx, dword [esp + 0x138]
push eax
push 0x508bd4
add ecx, 0x34
push edi
push ecx
call fcn.00450150
mov edx, dword [esp + 0x74]
add esp, 0x14
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0x30]
and eax, 0xff
push eax
push ecx
call fcn.004504d0
lea edx, [esp + 0x38]
push edx
push ebp
call fcn.00452710
push ebp
jmp 0x45744a
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
lea ecx, [edi + ecx*8]
lea edi, [edi + edx*8]
mov dl, byte [ebx + 0x1c]
or al, dl
mov dword [esp + 0x14], edi
test al, 1
je 0x4534e8
push edi
call fcn.0044dfd0
add esp, 4
jmp case.default.0x452a39
push ecx
call fcn.00450ac0
push ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
call fcn.00450ac0
mov ebx, eax
mov ebp, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
mov al, byte [esi]
add esp, 8
cmp al, 0x52
mov byte [esp + 0x38], al
jne 0x45352e
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
and ecx, ebx
and eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x45363d
cmp al, 0x53
jne 0x45354b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
or ecx, ebx
or eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x45363d
mov ecx, ebx
or ecx, ebp
je 0x45363d
test ebp, ebp
jg 0x45358f
jl 0x45355f
test ebx, ebx
jae 0x453584
mov dl, 0xa9
sub dl, al
cmp ebp, 0xffffffff
mov al, dl
mov byte [esp + 0x38], al
jl 0x4535b6
jg 0x453575
cmp ebx, 0xffffffc0
jbe 0x4535b6
neg ebx
adc ebp, 0
mov dword [esp + 0x30], ebx
neg ebp
mov dword [esp + 0x34], ebp
test ebp, ebp
jl 0x4535d5
jg 0x45358f
cmp ebx, 0x40
jb 0x4535d5
mov ecx, dword [esp + 0x24]
test ecx, ecx
jg 0x4535c8
jl 0x4535a1
mov ecx, dword [esp + 0x20]
test ecx, ecx
jae 0x4535c8
cmp al, 0x54
je 0x4535c8
or eax, 0xffffffff
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x45363d
mov dword [esp + 0x30], 0x40
mov dword [esp + 0x34], 0
jmp 0x45358f
xor eax, eax
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x45363d
cmp al, 0x54
mov eax, dword [esp + 0x20]
mov ecx, ebx
jne 0x4535f2
mov edx, dword [esp + 0x24]
call fcn.004b0690
mov esi, eax
mov ebp, edx
mov dword [esp + 0x28], esi
jmp 0x453631
mov edi, dword [esp + 0x24]
mov edx, edi
call fcn.004b0670
mov esi, eax
mov ebp, edx
test edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
jg 0x453635
jl 0x453617
mov eax, dword [esp + 0x20]
test eax, eax
jae 0x453635
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.004b0690
or esi, eax
or ebp, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x24]
and ecx, 0xbe04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.0045e100
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x10]
cdq
add esp, 4
add ecx, eax
mov dword [edi + 0x10], ecx
mov eax, dword [edi + 0x14]
adc eax, edx
mov dword [edi + 0x14], eax
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xe8]
push ecx
push 0x63
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push edi
call fcn.0045f5b0
mov ax, word [edi + 0x1c]
add esp, 0xc
test al, 4
jne 0x453be2
mov esi, dword [esi + 8]
test esi, esi
je 0x4578d5
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 4
je case.default.0x452a39
push eax
call fcn.0045e130
add esp, 4
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea edi, [edi + eax*8]
mov ax, word [edi + 0x1c]
test al, 1
jne case.default.0x452a39
mov edx, dword [esp + 0xe8]
mov cl, al
shr cl, 3
and ecx, 2
push edx
or ecx, eax
push 0x61
push edi
mov word [edi + 0x1c], cx
call fcn.0045f5b0
add esp, 0xc
test byte [edi + 0x1d], 0x40
je 0x453745
push edi
call fcn.0044de00
add esp, 4
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea esi, [edi + eax*8]
mov ax, word [edi + eax*8 + 0x1c]
test al, 1
jne case.default.0x452a39
test al, 0x10
jne 0x45379b
mov ecx, dword [esp + 0xe8]
push ecx
push 0x61
push esi
call fcn.0045f5b0
mov dx, word [esi + 0x1c]
add esp, 0xc
and edx, 0xbe10
or edx, 0x10
mov word [esi + 0x1c], dx
jmp case.default.0x452a39
and eax, 0xfe10
mov word [esi + 0x1c], ax
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.0045e160
add esp, 4
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
jne case.default.0x452a39
push eax
call fcn.0045e100
add esp, 4
jmp case.default.0x452a39
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 1
jne case.default.0x452a39
push eax
call fcn.0045e130
add esp, 4
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea ebp, [edi + ecx*8]
lea edx, [eax + eax*4]
mov ax, word [ebp + 0x1c]
lea ecx, [edi + edx*8]
mov word [esp + 0x26], ax
mov dword [esp + 0xfc], ecx
mov dx, word [ecx + 0x1c]
mov word [esp + 0x28], dx
mov al, dl
mov dl, byte [esp + 0x26]
or al, dl
test al, 1
mov al, byte [esi + 3]
je 0x4538a3
test al, 0x80
je 0x453874
test dl, 1
je 0x453866
test byte [esp + 0x28], 1
je 0x453866
mov eax, dword [esp + 0x28]
test ah, 1
jne 0x453866
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x453937
mov eax, 1
mov dword [esp + 0x20], eax
jmp 0x453937
test al, 0x10
je 0x45389c
mov esi, dword [esi + 8]
lea ecx, [esi + esi*4]
mov dx, word [edi + ecx*8 + 0x1c]
lea eax, [edi + ecx*8]
and edx, 0xbe01
mov dword [esp + 0x14], eax
or edx, 1
mov word [eax + 0x1c], dx
jmp case.default.0x452a39
test al, 8
jmp 0x455fec
and al, 0x67
mov byte [esp + 0x24], al
je 0x4538ed
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
push ecx
push edx
push ebp
call fcn.0045f5b0
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x108]
push eax
push ecx
push edx
call fcn.0045f5b0
mov al, byte [ebx + 0x38]
add esp, 0x18
test al, al
jne 0x4578a3
mov ecx, dword [esp + 0xfc]
mov ebx, 0x4000
test word [ebp + 0x1c], bx
je 0x453908
push ebp
call fcn.0044de00
mov ecx, dword [esp + 0x100]
add esp, 4
test word [ecx + 0x1c], bx
je 0x45391e
push ecx
call fcn.0044de00
mov ecx, dword [esp + 0x100]
add esp, 4
mov eax, dword [esi + 0x10]
push eax
push ebp
push ecx
call fcn.0045e2e0
mov ecx, dword [esp + 0x108]
add esp, 0xc
mov dword [esp + 0x20], eax
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffb5
cmp edx, 4
ja case.default.0x453943
jmp dword [edx*4 + 0x457d4c]
xor edx, edx
test eax, eax
sete dl
jmp 0x45397e
xor edx, edx
test eax, eax
setne dl
jmp 0x45397e
xor edx, edx
test eax, eax
setl dl
jmp 0x45397e
xor edx, edx
test eax, eax
setle dl
jmp 0x45397e
xor edx, edx
test eax, eax
setg dl
jmp 0x45397e
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x20], eax
mov dl, byte [esi + 3]
test dl, 0x10
je 0x4539b8
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
mov dx, word [edi + eax*8 + 0x1c]
lea edi, [edi + eax*8]
and edx, 0xbe04
mov dword [esp + 0x14], edi
or edx, 4
mov word [edi + 0x1c], dx
mov eax, dword [esp + 0x20]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp 0x4539c4
test eax, eax
je 0x4539c4
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov ax, word [ebp + 0x1c]
mov edx, dword [esp + 0x26]
xor edx, eax
and edx, 0x1ff
xor edx, eax
mov word [ebp + 0x1c], dx
mov ax, word [ecx + 0x1c]
mov edx, dword [esp + 0x28]
xor edx, eax
and edx, 0x1ff
xor edx, eax
mov word [ecx + 0x1c], dx
jmp case.default.0x452a39
mov eax, dword [esi + 0x10]
mov dword [esp + 0x100], eax
jmp case.default.0x452a39
test byte [esi + 3], 1
jne 0x453a15
mov dword [esp + 0x100], 0
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x30], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x2c], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x453ad8
mov ebp, dword [esp + 0x100]
mov edi, dword [esp + 0xec]
jmp 0x453a53
mov edx, dword [esp + 0x30]
test ebp, ebp
je 0x453a5d
mov ecx, dword [ebp + eax*4]
jmp 0x453a5f
mov ecx, eax
mov dword [esp + 0x34], ecx
mov esi, dword [edx + eax*4 + 0xc]
mov dword [esp + 0x38], esi
mov edx, dword [edx + 8]
xor ebx, ebx
push esi
mov bl, byte [edx + eax]
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x40], ebx
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0x2c]
push eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.0045e2e0
add esp, 0xc
mov dword [esp + 0x110], eax
test eax, eax
jne 0x453ac7
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x453a4f
mov dword [esp + 0x100], 0
jmp case.default.0x452a39
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x453ad8
neg eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x100], 0
jmp case.default.0x452a39
mov eax, dword [esp + 0x110]
test eax, eax
jge 0x453b00
mov esi, dword [esi + 4]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
jne 0x453b0f
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov esi, dword [esi + 0xc]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
je 0x453b35
mov ecx, 2
jmp 0x453b4b
push eax
call fcn.00450ac0
add esp, 4
or eax, edx
je 0x453b49
mov ecx, 1
jmp 0x453b4b
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov dl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test dl, 1
je 0x453b6c
mov eax, 2
mov dword [esp + 0x24], eax
jmp 0x453b8a
push eax
call fcn.00450ac0
add esp, 4
or eax, edx
je 0x453b80
mov eax, 1
jmp 0x453b82
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp byte [esi], 0x45
jne 0x453b9d
lea edx, [eax + ecx*2]
xor eax, eax
mov al, byte [ecx + edx + 0x4ee3c8]
jmp 0x453bab
lea eax, [eax + ecx*2]
xor edx, edx
mov dl, byte [ecx + eax + 0x4ee3d4]
mov eax, edx
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0xc]
cmp eax, 2
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x14], edi
jne 0x453bd7
mov dx, word [edi + 0x1c]
and edx, 0xbe01
or edx, 1
mov word [edi + 0x1c], dx
jmp case.default.0x452a39
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
mov dword [edi + 0x14], edx
and eax, 0xbe04
or al, 4
mov word [edi + 0x1c], ax
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea ecx, [eax + eax*4]
lea edx, [esi + esi*4]
lea eax, [edi + ecx*8]
lea edi, [edi + edx*8]
mov dword [esp + 0x14], edi
test byte [eax + 0x1c], 1
je 0x453c1c
push edi
call fcn.0044dfd0
add esp, 4
jmp case.default.0x452a39
push eax
call fcn.00450ac0
add esp, 4
or eax, edx
jne 0x453c3f
mov eax, 1
cdq
push edx
push eax
push edi
call fcn.00450f00
add esp, 0xc
jmp case.default.0x452a39
xor eax, eax
cdq
push edx
push eax
push edi
call fcn.00450f00
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
lea eax, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x14], esi
test byte [eax + 0x1c], 1
je 0x453c7c
push esi
call fcn.0044dfd0
add esp, 4
jmp case.default.0x452a39
push eax
call fcn.00450ac0
not edx
not eax
push edx
push eax
push esi
call fcn.00450f00
add esp, 0x10
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0xb8]
add eax, edx
cmp byte [eax], 0
je 0x453cb3
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov byte [eax], 1
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
test al, 1
lea edi, [edi + ecx*8]
je 0x453cd8
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], eax
jmp 0x455fea
push edi
call fcn.00450a40
fcomp qword [0x4f11c8]
add esp, 4
fnstsw ax
test ah, 0x40
jne 0x453cf5
mov eax, 1
jmp 0x453cf7
xor eax, eax
mov dword [esp + 0x20], eax
mov cl, byte [esi]
cmp cl, 0x1c
jne 0x455fea
xor edx, edx
test eax, eax
sete dl
mov eax, edx
mov dword [esp + 0x20], eax
jmp 0x455fea
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
jmp 0x455fec
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
jne case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov edx, dword [esi + 4]
xor ebp, ebp
mov dword [esp + 0x30], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x134]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x60]
mov dword [esp + 0x38], ebp
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0xec]
mov dword [esp + 0x3c], ebp
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x40]
lea edx, [edi + ecx*8]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
cmp ecx, ebp
mov dword [esp + 0x40], ecx
je 0x453e44
push eax
call fcn.0045e600
add esp, 4
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x4579a2
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x453dc8
mov dword [esp + 0x20], ebp
jmp 0x453e18
mov ecx, dword [esp + 0x134]
mov edx, dword [eax + 0x50]
cmp edx, dword [ecx + 0x50]
jne 0x453de7
mov edx, dword [eax + 0x54]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x3c], ecx
jmp 0x453e0c
mov cl, byte [eax + 0x1f]
test cl, cl
je 0x453e30
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.0044d440
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x453ede
mov edx, dword [esp + 0x5c]
mov ax, word [edx + 0x1c]
and eax, 0xbe01
or al, 1
mov word [edx + 0x1c], ax
jmp case.default.0x452a39
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004595d0
add esp, 8
jmp 0x453e08
mov ecx, dword [eax + 0x10]
cmp ecx, ebp
jle 0x453ec6
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0xa4], ecx
cmp byte [eax + 0x22], 0
je 0x453e9b
mov eax, dword [esp + 0x34]
push 0x1000
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
push ecx
push edx
call fcn.0045e290
mov eax, dword [esp + 0x68]
add esp, 0xc
test byte [eax + 0x1d], 0x10
je case.default.0x452a39
push eax
call fcn.0044dda0
add esp, 4
test eax, eax
jne 0x4578a3
jmp case.default.0x452a39
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x20], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov cl, byte [esi + 3]
test cl, 0x20
je 0x453ebb
xor ecx, ecx
mov dword [eax + 0x50], ecx
jmp 0x453e08
mov ecx, dword [ebx + 0x50]
mov dword [eax + 0x50], ecx
jmp 0x453e08
mov dword [esp + 0x20], ebp
mov ax, word [edx + 0x1c]
and eax, 0xbe01
or al, 1
mov word [edx + 0x1c], ax
jmp case.default.0x452a39
mov edx, dword [esp + 0x1c]
cmp ecx, dword [edx + 0x50]
ja 0x457a16
mov edx, dword [eax + 0x14]
mov edi, dword [esp + 0x134]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 0x58]
mov ebp, dword [edi + 0x50]
mov dword [esp + 0x44], ecx
mov ebx, dword [eax + 0x50]
cmp ebx, ebp
jne 0x453f16
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x48], eax
jmp 0x4541c9
xor ebx, ebx
lea ecx, [ecx + edx*4]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x48], ecx
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x54], edx
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x50]
mov dword [ecx + 0x50], eax
mov edx, dword [esp + 0x3c]
cmp edx, ebx
je 0x453f4c
mov dword [esp + 0x58], edx
jmp 0x453fab
mov edx, dword [esp + 0x38]
mov al, byte [edx + 0x1f]
test al, al
je 0x453f6b
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.00459740
jmp 0x453f7d
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.004597d0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa4]
add esp, 8
cmp ecx, edx
mov dword [esp + 0x58], eax
ja 0x453fa0
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov dword [edx + 0x60], eax
jmp 0x453fa7
mov eax, dword [esp + 0x38]
mov dword [eax + 0x60], ebx
mov edx, dword [esp + 0x58]
mov cl, byte [edx]
cmp cl, 0x80
jae 0x453fc6
and ecx, 0xff
mov eax, 1
mov dword [esp + 0x90], ecx
jmp 0x453fe7
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.0044c080
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x60]
add esp, 8
and eax, 0xff
and eax, 0xff
cmp ecx, 0x18003
mov dword [esp + 0x98], eax
jbe 0x454011
push 0x102eb
call fcn.0048cc70
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov edi, dword [esp + 0x4c]
lea eax, [edi + edi*4 + 3]
cmp eax, ecx
mov dword [esp + 0x50], eax
jle 0x454027
mov eax, ecx
mov dword [esp + 0x50], eax
cmp dword [esp + 0x3c], ebx
jne 0x454083
cmp dword [esp + 0x9c], eax
jge 0x454083
lea edx, [esp + 0x60]
xor ecx, ecx
push edx
mov edx, dword [esp + 0x3c]
mov word [esp + 0x80], bx
mov dword [esp + 0x64], ebx
mov cl, byte [edx + 0x1f]
push ecx
push eax
mov eax, dword [esp + 0x4c]
push ebx
push eax
call fcn.0045e500
add esp, 0x14
cmp eax, ebx
mov dword [esp + 0x10], eax
jne case.default.0x452a39
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x58], edx
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x98]
add eax, edx
mov dword [esp + 0x88], eax
xor eax, eax
test edi, edi
mov dword [esp + 0x54], eax
jle 0x45417c
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
cmp edi, edx
mov edx, dword [esp + 0x48]
jae 0x454148
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x88]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4540e3
and eax, 0xff
inc ecx
mov dword [esp + 0xa0], eax
jmp 0x454102
lea eax, [esp + 0xa0]
push eax
push ecx
call fcn.0044c080
mov ecx, dword [esp + 0x90]
and eax, 0xff
add esp, 8
add ecx, eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.0045e7f0
mov ecx, dword [esp + 0x94]
add esp, 4
add ecx, eax
mov dword [esp + 0x94], eax
cmp ecx, eax
mov dword [esp + 0x90], ecx
jb 0x45416d
jmp 0x454156
mov dword [edx + eax*4], 0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
inc eax
cmp eax, edx
mov dword [esp + 0x54], eax
jl 0x4540aa
jmp 0x45417c
mov eax, dword [esp + 0x8c]
inc eax
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0044de70
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
add esp, 4
cmp eax, ecx
mov word [esp + 0x7c], 1
ja 0x45434f
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x20]
cmp edx, edi
ja 0x45434f
cmp eax, ecx
jne 0x4541c5
cmp edx, edi
jne 0x45434f
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
cmp dword [edx + eax*4], 0
je 0x4542d0
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x45421c
mov edx, dword [esp + 0x5c]
test word [edx + 0x1c], 0x2460
je 0x454204
push edx
call fcn.0044deb0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
add esp, 4
mov ecx, dword [ecx + eax*4]
push edx
mov edx, dword [esp + 0x4c]
push ecx
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x44]
add eax, edx
push eax
jmp 0x4542b8
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xa0], eax
mov cl, byte [esi + 3]
test cl, 0xc0
je 0x454250
cmp eax, 0xc
jb 0x45423a
mov dl, al
test dl, 1
je 0x45423f
test cl, 0x80
je 0x454250
cmp eax, 0xc
lea edx, [esp + 0x28]
sbb ecx, ecx
and ecx, edx
mov dword [esp + 0x58], ecx
jmp 0x4542b1
push eax
call fcn.0045e7f0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.00452710
mov ecx, dword [esp + 0x44]
xor eax, eax
lea edx, [esp + 0x6c]
mov al, byte [ecx + 0x1f]
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x5c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.0045e500
add esp, 0x20
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x452a39
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x5c]
push edx
push eax
push ecx
call fcn.0045e8e0
mov eax, dword [esp + 0x68]
mov cl, byte [esp + 0xf4]
add esp, 0xc
mov byte [eax + 0x1f], cl
jmp 0x454303
cmp byte [esi + 1], 0xf8
jne 0x4542ee
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x5c]
push 0x800
push edx
push eax
call fcn.0045e290
add esp, 0xc
jmp 0x454303
mov eax, dword [esp + 0x5c]
mov cx, word [eax + 0x1c]
and ecx, 0xbe01
or ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x84]
test eax, eax
je 0x454339
mov eax, dword [esp + 0x5c]
and word [eax + 0x1c], 0xe7ff
mov eax, dword [esp + 0x5c]
or byte [eax + 0x1d], 2
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov dword [edx + 0x24], ecx
mov eax, dword [esp + 0x5c]
push eax
call fcn.0044dda0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
push 0x1033b
call fcn.0048cc70
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 4]
inc eax
lea ecx, [esi + esi*4]
lea esi, [edi + ecx*8]
mov cl, byte [eax - 1]
test cl, cl
mov byte [esp + 0x24], cl
mov dword [esp + 0x20], eax
je case.default.0x452a39
mov edi, dword [esp + 0xe8]
mov ebx, 0x4000
test word [esi + 0x1c], bx
je 0x4543a4
push esi
call fcn.0044de00
add esp, 4
mov edx, dword [esp + 0x24]
push edi
push edx
push esi
call fcn.0045f5b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
add esi, 0x28
mov cl, byte [eax]
inc eax
test cl, cl
mov byte [esp + 0x24], cl
mov dword [esp + 0x20], eax
jne 0x454395
jmp case.default.0x452a39
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
mov ebx, dword [esi + 0x10]
lea eax, [eax + eax*4]
mov dword [esp + 0x58], ebx
lea eax, [edi + eax*8]
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x54], ecx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8 - 0x28]
xor ecx, ecx
mov cl, byte [ebp + 0x5d]
mov dword [esp + 0x50], edx
mov dword [esp + 0x5c], ecx
mov esi, dword [esi + 0xc]
cmp eax, edx
lea ecx, [esi + esi*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x14], ecx
mov ecx, eax
mov dword [esp + 0x24], ecx
ja 0x45450c
jmp 0x454438
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
test ebx, ebx
je 0x45446a
mov edx, dword [esp + 0xe8]
push edx
mov edx, ecx
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dl, byte [edx + ebx]
push edx
push ecx
call fcn.0045f5b0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, 0x4000
test word [ecx + 0x1c], si
je 0x454489
mov eax, dword [ecx + 0x18]
test eax, eax
jle 0x454489
push ecx
call fcn.0044de00
mov ecx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x5c]
push eax
push ecx
call fcn.0045e6f0
push eax
mov dword [esp + 0x54], eax
call fcn.0045e7f0
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x70], eax
push 0
cdq
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x58]
adc ebp, edx
push ecx
mov dword [esp + 0x40], ebp
call fcn.00457e40
mov ecx, dword [esp + 0x44]
add esp, 0x14
add ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
test word [ecx + 0x1c], si
je 0x4544e9
mov edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x40]
add eax, edx
mov dword [esp + 0x40], eax
jmp 0x4544f9
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4544f9
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x50]
add ecx, 0x28
cmp ecx, eax
mov dword [esp + 0x24], ecx
jbe 0x454430
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.00457e40
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
add ecx, eax
mov eax, ecx
mov dword [esp + 0x38], ecx
cdq
push edx
push eax
call fcn.00457e40
mov ecx, dword [esp + 0x54]
add esp, 0x10
cmp ecx, eax
jge 0x45453f
inc dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x28]
cdq
mov edi, eax
mov eax, dword [esp + 0x30]
mov ebx, edx
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
sub esi, edi
sbb ecx, ebx
mov ebx, dword [esp + 0x2c]
add esi, ebp
adc ecx, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x457a16
jl 0x454583
cmp esi, eax
ja 0x457a16
push 0
push esi
mov esi, dword [esp + 0x1c]
push esi
call fcn.0044dc80
add esp, 0xc
test eax, eax
jne 0x4578a3
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 4]
cmp ecx, 0x80
mov dword [esp + 0x20], eax
jae 0x4545b7
mov byte [eax], cl
mov eax, 1
jmp 0x4545c1
push ecx
push eax
call fcn.00457d60
add esp, 8
mov ecx, dword [esp + 0x50]
and eax, 0xff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x24], eax
ja 0x45463f
mov edx, dword [esp + 0x5c]
push edx
push eax
call fcn.0045e6f0
add esp, 8
cmp eax, 0x80
mov dword [esp + 0x48], eax
jae 0x454605
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx], al
mov eax, 1
jmp 0x454619
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x24]
add ecx, eax
push ecx
call fcn.00457d60
add esp, 8
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
and eax, 0xff
add ebx, eax
mov eax, dword [esp + 0x24]
add eax, 0x28
mov dword [esp + 0x60], ebx
cmp eax, ecx
mov dword [esp + 0x24], eax
jbe 0x4545da
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x24], eax
ja 0x454684
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x68]
sub ecx, eax
add eax, edx
push ecx
push eax
call fcn.0045e810
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
add edi, eax
mov eax, dword [esp + 0x34]
add eax, 0x28
add esp, 0x10
cmp eax, ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x24], eax
jbe 0x454647
mov eax, dword [esp + 0x38]
mov word [esi + 0x1c], 0x410
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4546a9
mov dword [esi + 0x10], eax
mov word [esi + 0x1c], 0x4410
mov byte [esi + 0x1f], 1
jmp case.default.0x452a39
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
mov eax, dword [edx + ecx*4]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ecx
mov dword [esp + 0x28], eax
je 0x4546db
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.0045d0f0
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x4546e3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x14], ecx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0x10]
test eax, eax
mov dword [esp + 0x24], esi
jne 0x4547e4
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x454724
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x454aae
push esi
call fcn.00440f10
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0x1e4]
add edx, dword [ebx + 0x1e0]
push edx
push 0
push ebx
call fcn.00467fe0
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov eax, dword [esp + 0x28]
add eax, 0x19
push eax
push ebx
call fcn.0043fa70
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je case.default.0x452a39
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
lea ecx, [edx + 1]
mov edi, dword [eax]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [eax + 0x36]
test cl, cl
je 0x4547a8
mov byte [eax + 0x36], 0
mov byte [eax + 0x3d], 1
jmp 0x4547ae
inc dword [eax + 0x1e0]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + 0x1d8]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0x1e8]
mov dword [eax + 0x1d8], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x1ec]
mov eax, dword [esp + 0x2c]
mov dword [eax + 0xc], edx
jmp case.default.0x452a39
mov dword [esp + 0x38], 0
mov ebx, dword [ebx + 0x1d8]
test ebx, ebx
mov dword [esp + 0x30], ebx
je 0x454830
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
push ecx
push edx
call fcn.00440f30
add esp, 8
test eax, eax
je 0x454828
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x38], ecx
mov ebx, dword [eax + 0x10]
test ebx, ebx
mov dword [esp + 0x30], ebx
jne 0x4547fa
jmp 0x454830
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x45485f
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x1c]
push ecx
push str.no_such_savepoint:__s
add eax, 0x34
push edx
push eax
call fcn.00450150
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.default.0x452a39
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x88]
test eax, eax
mov eax, dword [esp + 0x20]
jle 0x45488c
cmp eax, 1
jne 0x45488c
mov ecx, dword [esp + 0x134]
push str.cannot_release_savepoint___SQL_statements_in_progress
add ecx, 0x34
push esi
push ecx
jmp 0x454ab3
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x4548ee
mov cl, byte [esi + 0x3d]
test cl, cl
je 0x4548ee
mov ebx, 1
cmp eax, ebx
jne 0x4548f0
mov edx, dword [esp + 0x134]
push ebx
push edx
call fcn.004500f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x457aa5
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x134]
push edi
mov byte [esi + 0x36], bl
call fcn.0044e5a0
add esp, 4
cmp eax, 5
je 0x4578e2
mov byte [esi + 0x3d], 0
mov eax, dword [edi + 0x58]
mov dword [esp + 0x10], eax
jmp 0x4549bc
xor ebx, ebx
mov ecx, dword [esi + 0x1e0]
mov ebp, dword [esp + 0x38]
sub ecx, ebp
dec ecx
cmp eax, 2
mov dword [esp + 0x38], ecx
jne 0x45493c
xor eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [esi + 0x14]
test edx, edx
jle 0x45493c
mov ecx, dword [esi + 0x10]
push 4
shl eax, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.0044d3a0
mov eax, dword [esp + 0x44]
add esp, 8
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esi + 0x14]
cmp eax, ecx
jl 0x454913
mov ecx, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [esi + 0x14]
test edx, edx
jle 0x45498c
mov edx, dword [esp + 0x1c]
jmp 0x454953
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + 0x10]
push ecx
mov ecx, dword [esp + 0x24]
shl eax, 4
push ecx
mov eax, dword [eax + edx + 4]
push eax
call fcn.00450070
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [edx + 0x14]
cmp eax, ecx
jl 0x45494f
mov eax, dword [esp + 0x20]
mov edi, 2
cmp eax, edi
jne 0x4549bc
mov esi, dword [esp + 0x1c]
test byte [esi + 0x18], 2
je 0x4549c0
push esi
call fcn.0045f0b0
push esi
call fcn.00462c50
mov eax, dword [esi + 0x18]
add esp, 8
or eax, edi
mov dword [esi + 0x18], eax
jmp 0x4549c0
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x1d8]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
je 0x454a04
mov dword [esp + 0x34], eax
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x1d8], ecx
mov edx, dword [esp + 0x34]
push edx
push esi
call fcn.0043f7f0
mov edi, dword [esi + 0x1e0]
mov eax, dword [esi + 0x1d8]
add esp, 8
dec edi
mov dword [esi + 0x1e0], edi
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jne 0x4549ce
cmp dword [esp + 0x20], 1
jne 0x454a36
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1d8], eax
mov ecx, dword [esp + 0x30]
push ecx
push esi
call fcn.0043f7f0
add esp, 8
test ebx, ebx
jne case.default.0x452a39
mov eax, dword [esp + 0x1c]
dec dword [eax + 0x1e0]
jmp 0x454a56
add ecx, 8
test ebx, ebx
mov edx, dword [ecx]
mov dword [esi + 0x1e8], edx
mov eax, dword [ecx + 4]
mov dword [esi + 0x1ec], eax
jne case.default.0x452a39
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
push ecx
push edx
push eax
call fcn.00467fe0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 8]
test eax, eax
mov dword [esp + 0x24], esi
je 0x454ac8
mov cl, byte [ebx + 0x36]
test cl, cl
jne 0x454ac8
test esi, esi
mov dword [esp + 0x28], 1
jne 0x454ad0
mov ecx, dword [ebx + 0x88]
test ecx, ecx
jle 0x454ad0
push str.cannot_commit_transaction___SQL_statements_in_progress
add ebp, 0x34
push ebx
push ebp
call fcn.00450150
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.default.0x452a39
mov dword [esp + 0x28], 0
xor ecx, ecx
mov cl, byte [ebx + 0x36]
cmp eax, ecx
jne 0x4578fa
test eax, eax
jne 0x454ae8
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x454af6
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x454af6
mov eax, str.cannot_commit___no_transaction_is_active
push eax
add ebp, 0x34
push ebx
push ebp
call fcn.00450150
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
test eax, eax
mov dword [esp + 0x20], eax
je case.default.0x452a39
mov ecx, dword [esi + 8]
push ecx
push eax
call fcn.0044a0f0
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x457973
test eax, eax
jne 0x4579a2
mov eax, dword [esi + 8]
test eax, eax
je case.default.0x452a39
test byte [ebp + 0x60], 0x80
je case.default.0x452a39
mov al, byte [ebx + 0x36]
test al, al
je 0x454b75
cmp dword [ebx + 0x84], 1
jle case.default.0x452a39
mov eax, dword [ebp + 0x70]
test eax, eax
jne 0x454b96
mov edx, dword [ebx + 0x1e4]
inc edx
mov dword [ebx + 0x1e4], edx
mov eax, edx
mov edx, dword [ebx + 0x1e0]
add edx, eax
mov dword [ebp + 0x70], edx
mov eax, dword [ebp + 0x70]
dec eax
push eax
push 0
push ebx
call fcn.00467fe0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x454bc3
mov ecx, dword [ebp + 0x70]
mov edx, dword [esp + 0x20]
push ecx
push edx
call fcn.00459490
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1e8]
mov dword [ebp + 0x90], eax
mov ecx, dword [ebx + 0x1ec]
mov dword [ebp + 0x94], ecx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea edx, [esp + 0x20]
mov dword [esp + 0x24], eax
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], esi
mov ecx, dword [ebx + 0x10]
shl eax, 4
push edx
push esi
mov edx, dword [eax + ecx + 4]
push edx
call fcn.0044cd30
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
cdq
mov dword [ecx + 0x10], eax
add esp, 0xc
mov dword [ecx + 0x14], edx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x10]
shl eax, 4
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
push edi
call fcn.0045e100
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 8]
push edx
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.0044cd70
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
add esp, 0x10
cmp eax, 1
jne 0x454c73
mov eax, dword [esp + 0x20]
mov edx, dword [edi + 0x10]
mov ecx, dword [eax + 0xc]
mov dword [ecx], edx
mov eax, dword [ebx + 0x18]
or al, 2
mov dword [ebx + 0x18], eax
jmp 0x454c85
cmp eax, 2
jne 0x454c85
mov eax, dword [esp + 0x20]
mov dl, byte [edi + 0x10]
mov ecx, dword [eax + 0xc]
mov byte [ecx + 0x4c], dl
cmp dword [esi + 4], 1
jne case.default.0x452a39
push ebx
call fcn.0045f0b0
mov eax, dword [ebp + 0x60]
add esp, 4
and al, 0xdf
mov dword [ebp + 0x60], eax
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x454cdc
lea edx, [esp + 0x20]
push edx
push 1
push eax
call fcn.0044cd30
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x10]
add esp, 0xc
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x454ce6
mov dword [esp + 0x20], 0
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp ecx, dword [esi + 8]
jne 0x454cfc
cmp eax, dword [esi + 0xc]
je case.default.0x452a39
mov edx, dword [ebp + 0x34]
push edx
push ebx
call fcn.0043f7f0
push str.database_schema_has_changed
push ebx
call fcn.00451280
mov dword [ebp + 0x34], eax
mov esi, dword [esi + 4]
mov ecx, dword [ebx + 0x10]
mov eax, esi
shl eax, 4
add esp, 0x10
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx]
cmp eax, ecx
je 0x454d3a
push esi
push ebx
call fcn.00462c10
add esp, 8
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x10], 0x11
or al, 0x20
mov dword [ebp + 0x60], eax
jmp case.default.0x452a39
test byte [ebp + 0x60], 0x20
je 0x454d62
mov dword [esp + 0x10], 4
jmp case.default.0x452a39
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
shl eax, 4
add eax, dword [ebx + 0x10]
mov dword [esp + 0x3c], eax
mov ebx, dword [eax + 4]
mov dword [esp + 0x34], ebx
mov bl, byte [esi]
cmp bl, 0x28
jne 0x454dac
mov bl, byte [ebp + 0x5d]
mov dword [esp + 0x30], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
cmp al, bl
jae 0x454db4
mov byte [ebp + 0x5d], al
jmp 0x454db4
mov dword [esp + 0x30], 0
test byte [esi + 3], 2
je 0x454ddd
lea ecx, [edx + edx*4]
lea edi, [edi + ecx*8]
push edi
call fcn.0045e100
mov edi, dword [edi + 0x10]
add esp, 4
cmp edi, 2
mov dword [esp + 0x28], edi
jl 0x457987
mov ecx, dword [esp + 0x20]
mov al, byte [esi + 1]
cmp al, 0xfa
jne 0x454e07
mov eax, dword [esi + 0x10]
mov edx, dword [ebp]
mov dword [esp + 0x24], eax
mov ecx, dword [edx + 0x10]
mov edx, dword [ecx + 0xc]
mov cl, byte [edx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov cx, word [edx + 6]
inc ecx
jmp 0x454e0e
cmp al, 0xf2
jne 0x454e12
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x2c]
push 1
push eax
push ecx
mov ecx, dword [esi + 4]
push ecx
push ebp
call fcn.0045f4b0
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x4578a3
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x38]
mov byte [edx + 0x20], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
call fcn.004594c0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov dl, byte [esi + 3]
mov eax, dword [esp + 0x4c]
and edx, 1
push edx
mov ecx, dword [eax]
push ecx
call fcn.0045e090
mov dl, byte [esi + 1]
mov eax, dword [esp + 0x54]
add esp, 0x1c
cmp dl, 0xfa
setne dl
mov byte [eax + 0x1e], dl
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x1e]
test cl, cl
sete cl
mov byte [eax + 0x1f], cl
jmp case.default.0x452a39
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.0045f4b0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x4578a3
xor edx, edx
mov byte [eax + 0x1c], 1
mov dl, byte [esi + 3]
mov ecx, dword [0x4ee3e0]
mov eax, dword [esp + 0x20]
or edx, 5
push ecx
add eax, 4
push edx
push eax
mov eax, dword [esp + 0x28]
push eax
push 0
mov ecx, dword [eax]
push ecx
call fcn.004586c0
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x454fc5
mov edx, dword [esp + 0x20]
push 1
mov eax, dword [edx + 4]
push eax
call fcn.0044a0f0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x454fc5
mov eax, dword [esi + 0x10]
test eax, eax
je 0x454fa0
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov cl, byte [esi + 3]
lea edx, [esp + 0x11c]
or ecx, 2
push ecx
mov ecx, dword [eax + 4]
push edx
push ecx
call fcn.0045ca60
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x454f96
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
mov edx, dword [eax]
mov eax, dword [eax + 4]
push edx
mov edx, dword [esp + 0x120]
push ecx
push 1
push edx
push eax
call fcn.004594c0
mov edx, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x24], eax
add esp, 0x14
mov dword [edx + 8], ecx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
mov ecx, dword [eax + 8]
mov dl, byte [edx + 0x4d]
mov byte [ecx + 4], dl
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1e], 0
jmp 0x454fc5
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push ecx
push 0
push 1
push 1
push edx
call fcn.004594c0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add esp, 0x14
mov byte [eax + 0x1e], 1
mov dl, byte [esi + 3]
cmp dl, 8
mov edx, dword [esp + 0x20]
setne cl
mov byte [edx + 0x20], cl
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x1e]
test cl, cl
sete cl
mov byte [eax + 0x1f], cl
jmp case.default.0x452a39
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.0045f4b0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x4578a3
mov ecx, dword [esi + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov eax, dword [edx + 8]
mov cl, byte [ecx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov byte [edx + 0x21], 1
mov eax, dword [esp + 0x20]
push eax
push ecx
call fcn.00460760
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.0045f4b0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x4578a3
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x20]
mov ecx, dword [esi + 8]
mov dword [edx + 0x10], ecx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1e], 1
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x1f], 0
mov eax, dword [esp + 0x20]
mov dl, byte [esi + 3]
mov byte [eax + 0x22], dl
jmp case.default.0x452a39
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
mov eax, dword [edx + ecx*4]
push eax
push ebp
call fcn.0044ea40
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
add esp, 8
mov dword [edx + ecx*4], 0
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x40]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x28], eax
cmp dword [eax], 0
je 0x456b3a
xor edx, edx
mov dl, byte [esi]
mov dword [esp + 0x24], edx
mov byte [eax + 0x1c], 0
mov ecx, dword [esp + 0x28]
mov al, byte [ecx + 0x1e]
test al, al
je 0x4552ad
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push edi
call fcn.00452830
push edi
call fcn.00450ac0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
add esp, 8
mov byte [ecx + 0x19], 0
mov ax, word [edi + 0x1c]
test al, 4
jne 0x455255
test al, 8
je 0x455ff2
mov eax, dword [esp + 0x50]
xor ebx, ebx
cmp eax, ebx
jne 0x4551fb
mov ecx, dword [esp + 0x54]
mov eax, SysReAllocStringLen
cmp ecx, eax
jne 0x4551fb
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], eax
fild qword [esp + 0x128]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
je 0x45517b
fld qword [edi + 8]
fcomp qword [0x4f11c8]
fnstsw ax
test ah, 0x41
jne 0x4551fb
mov dword [esp + 0x20], 1
fld qword [edi + 8]
fcomp qword [0x4f11c8]
fnstsw ax
test ah, 1
mov eax, dword [esp + 0x24]
je 0x4551c9
cmp eax, 0x30
jl 0x455ff2
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.004597f0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4579a2
cmp dword [esp + 0x20], ebx
jmp 0x455fec
cmp eax, 0x2f
jg 0x455ff2
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00459ac0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4579a2
cmp dword [esp + 0x20], ebx
jmp 0x455fec
mov eax, dword [esp + 0x24]
cmp eax, 0x2e
je 0x455230
cmp eax, 0x30
je 0x455230
fild qword [esp + 0x50]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
jne 0x455257
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
jmp 0x455257
fild qword [esp + 0x50]
fcomp qword [edi + 8]
fnstsw ax
test ah, 1
je 0x455257
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add ecx, 1
adc eax, ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
jmp 0x455257
xor ebx, ebx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x2c]
push ebx
push eax
mov eax, dword [edx]
push ecx
push ebx
push eax
call fcn.00459b90
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4579a2
cmp dword [esp + 0x20], ebx
jne 0x45531b
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x19], 1
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov dword [eax + 0x40], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
mov dword [edx + 0x44], ecx
jmp 0x45531b
mov eax, dword [esi + 0x10]
mov dword [esp + 0x48], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x30], edx
mov dl, byte [esp + 0x24]
and dl, 1
mov word [esp + 0x34], ax
mov byte [esp + 0x36], dl
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x40], edi
test byte [edi + 0x1d], 0x40
je 0x4552eb
push edi
call fcn.0044de00
mov ecx, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [ecx]
lea edx, [esp + 0x20]
push edx
push 0
push 0
lea eax, [esp + 0x3c]
push 0
push eax
push ecx
call fcn.00459b90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov edx, dword [esp + 0x28]
xor ebx, ebx
mov byte [edx + 0x19], al
mov eax, dword [esp + 0x28]
mov byte [eax + 0x1d], 0
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x50], ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp ecx, 0x30
jl 0x45536d
cmp eax, ebx
jl 0x45534b
jne 0x455342
cmp ecx, 0x31
je 0x45534b
mov dword [esp + 0x20], ebx
jmp case.default.0x452a39
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00459f30
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4579a2
jmp 0x4553ad
cmp eax, ebx
jg 0x45538d
jne 0x455378
cmp ecx, 0x2e
je 0x45538d
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push ecx
call fcn.00459f20
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x4553b5
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.0045a090
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4579a2
mov edx, dword [esp + 0x28]
mov byte [edx + 0x19], 0
cmp dword [esp + 0x20], ebx
je case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x40]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
cmp dword [eax], 0
je case.default.0x452a39
mov byte [eax + 0x1c], 0
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea eax, [edi + edx*8]
push eax
call fcn.00450ac0
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x3c], edx
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 1
jmp case.default.0x452a39
mov ecx, dword [ebp + 0x40]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
mov ecx, dword [eax]
test ecx, ecx
je 0x455520
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x45546b
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov cx, word [esi + 0x10]
lea edx, [esp + 0x38]
mov word [esp + 0x3c], cx
mov dword [esp + 0x48], edi
mov byte [esp + 0x3e], 2
mov dword [esp + 0x30], edx
jmp 0x4554c0
mov eax, dword [eax + 8]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x54]
push 0x97
push edx
push eax
call fcn.0045eb30
add esp, 0x10
mov dword [esp + 0x30], eax
test eax, eax
je 0x4578a3
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x18]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
mov ecx, dword [eax + 8]
push ecx
call fcn.0045eba0
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
add esp, 0x10
mov cl, byte [eax + 6]
or cl, 2
mov byte [eax + 6], cl
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x28]
push edx
mov edx, dword [eax]
push 0
push 0
push 0
push ecx
push edx
call fcn.00459b90
mov edi, eax
mov eax, dword [esi + 0x10]
add esp, 0x18
mov dword [esp + 0x10], edi
test eax, eax
jne 0x4554f6
mov eax, dword [esp + 0x2c]
push eax
push ebx
call fcn.0043f7f0
add esp, 8
test edi, edi
jne case.default.0x452a39
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x20], ecx
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x24]
mov dword [eax + 0x50], edi
mov edx, dword [esp + 0x20]
cmp byte [esi], 0x34
jne 0x45553a
test edx, edx
je case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
test edx, edx
jne case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
lea ebx, [edi + ecx*8]
lea eax, [edi + edx*8]
mov edx, dword [ebp + 0x40]
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 4]
xor edi, edi
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x24], eax
mov dword [eax + 0x4c], edi
mov eax, dword [esp + 0x24]
mov dword [eax + 0x50], edi
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 8]
mov dx, word [eax + 6]
mov word [esp + 0x20], di
cmp dx, di
mov word [esp + 0x2c], dx
jbe 0x4555c5
mov eax, dword [esp + 0x20]
and eax, 0xffff
lea eax, [eax + eax*4]
test byte [ebp + eax*8 + 0x1c], 1
jne 0x45565a
inc di
cmp di, dx
mov word [esp + 0x20], di
jb 0x4555a2
mov eax, dword [esp + 0x28]
test eax, eax
je case.default.0x452a39
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 8]
inc edx
push ebx
mov dword [esp + 0x3c], ecx
mov word [esp + 0x40], dx
mov byte [esp + 0x42], 4
mov dword [esp + 0x4c], ebp
call fcn.0045e100
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 0x10]
add edx, 0x4c
mov dword [esp + 0x54], eax
mov ecx, dword [ebx + 0x14]
push edx
push 0
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
push 0
lea eax, [esp + 0x48]
push 0
push eax
push ecx
call fcn.00459b90
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x5a]
add esp, 0x1c
test al, 4
jne 0x456b3a
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jne 0x45564b
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
cmp edx, ecx
je 0x456b3a
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x14], eax
jmp case.default.0x452a39
mov esi, dword [esi + 8]
mov dword [esp + 0x28], 0
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x40]
lea edi, [edi + ecx*8]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x24], eax
je 0x45570e
xor ebx, ebx
lea ebp, [esp + 0x28]
mov dword [esp + 0x28], ebx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [edi + 0x14]
push ebp
push ebx
push edx
push ecx
push ebx
push eax
mov dword [esp + 0x4c], edx
call fcn.00459b90
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x28], eax
add esp, 0x18
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x44], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp edx, ebx
sete dl
mov byte [eax + 0x19], dl
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x1c], bl
mov edx, dword [esp + 0x20]
mov dword [edx + 0x50], ebx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1d], bl
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x455702
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x4c], eax
jmp case.default.0x452a39
mov esi, dword [esi + 8]
mov dword [ecx + 0x4c], 0
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 0x34]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x40]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
add edx, 1
mov dword [eax + 0x30], edx
mov ecx, dword [eax + 0x34]
adc ecx, 0
mov dword [eax + 0x34], ecx
jmp case.default.0x452a39
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x28], edx
mov eax, dword [edx]
cmp eax, ecx
je 0x455a0b
mov cl, byte [edx + 0x1b]
test cl, cl
jne 0x45590a
push eax
call fcn.004595c0
mov ecx, eax
add esp, 4
or ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jne 0x45582a
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00459ac0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4557db
mov eax, 1
xor edx, edx
mov dword [esp + 0x20], eax
jmp 0x455826
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.0044d440
mov edx, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
cmp edx, 0x7fffffff
jl 0x45581c
jg 0x45580a
cmp eax, 0xffffffff
jb 0x45581c
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1b], 1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x45582a
add eax, 1
mov dword [esp + 0x20], eax
adc edx, 0
mov dword [esp + 0x24], edx
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x4558da
mov ebp, dword [ebp + 0xa0]
test ebp, ebp
je 0x455867
mov ecx, ebp
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 4]
test eax, eax
je 0x455859
mov ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x45584c
mov esi, dword [esi + 0xc]
mov ecx, dword [ecx + 0xc]
lea eax, [esi + esi*4]
lea edi, [ecx + eax*8]
jmp 0x45586d
lea edx, [ebx + ebx*4]
lea edi, [edi + edx*8]
push edi
mov dword [esp + 0x38], edi
call fcn.0045e100
mov eax, dword [esp + 0x38]
add esp, 4
mov ecx, dword [eax + 0x14]
lea edx, [eax + 0x10]
mov eax, dword [eax + 0x10]
cmp eax, 0xffffffff
jne 0x455898
cmp ecx, 0x7fffffff
je 0x45799a
mov esi, dword [esp + 0x28]
mov bl, byte [esi + 0x1b]
test bl, bl
jne 0x45799a
mov esi, dword [esp + 0x24]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x4558c5
jl 0x4558bd
cmp dword [esp + 0x20], eax
jae 0x4558c5
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx], ecx
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp edx, 0x7fffffff
jg 0x4558f1
jl 0x4558e9
cmp eax, 0xffffffff
jae 0x4558f1
add eax, 1
adc edx, 0
jmp 0x4558f5
xor eax, eax
xor edx, edx
mov ecx, dword [esp + 0x28]
push edx
push eax
mov edx, dword [ecx]
push edx
call fcn.00459580
mov edx, dword [esp + 0x34]
add esp, 0xc
mov al, byte [edx + 0x1b]
test al, al
je 0x4559f4
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf0]
and eax, 0x3fffffff
add ecx, 1
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], ecx
adc eax, 0
push esi
push 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], 0
push eax
mov eax, dword [edx]
push ecx
push 0
push eax
call fcn.00459b90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4559f0
mov esi, 5
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x4559e0
mov ecx, dword [esp + 0x30]
inc ecx
cmp ecx, 0x64
mov dword [esp + 0x30], ecx
jge 0x4559e0
lea ecx, [esp + 0x20]
push ecx
push 8
call fcn.00440d50
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, esi
mov eax, dword [esp + 0x20]
jge 0x4559a4
mov ecx, dword [esp + 0x24]
and eax, 0xffffff
and ecx, 0
jmp 0x4559ae
mov ecx, dword [esp + 0x24]
and ecx, 0x3fffffff
add eax, 1
lea edx, [esp + 0x2c]
adc ecx, 0
push edx
push 0
push ecx
mov dword [esp + 0x2c], eax
push eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
push 0
mov ecx, dword [eax]
push ecx
call fcn.00459b90
add esp, 0x18
test eax, eax
je 0x455965
mov dword [esp + 0x10], eax
jmp 0x4559f0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4559f0
test edx, edx
je 0x45799a
mov edx, dword [esp + 0x28]
mov byte [edx + 0x19], 0
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x24]
mov dword [eax + 0x14], edx
jmp case.default.0x452a39
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x30], edx
mov al, byte [esi]
cmp al, 0x39
mov eax, dword [esi + 0xc]
jne 0x455a5b
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov edx, dword [edi + 0x14]
jmp 0x455a60
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
test byte [esi + 3], 1
je 0x455a6d
inc dword [ebp + 0x64]
test byte [esi + 3], 2
je 0x455a8f
mov dword [ebx + 0x20], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
test byte [ecx + 0x1c], 1
je 0x455aa7
xor eax, eax
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x20]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0x20]
jmp 0x455aa9
xor eax, eax
test byte [esi + 3], 0x10
je 0x455abc
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 0x4c]
mov dword [esp + 0x38], edx
jmp 0x455ac0
mov dword [esp + 0x38], eax
test byte [ecx + 0x1d], 0x40
je 0x455ac9
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], eax
push 0
push 0
mov edx, dword [ecx]
push edx
call fcn.00459580
mov eax, dword [esp + 0x44]
mov cl, byte [esi + 3]
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x30]
and ecx, 8
push ecx
push edx
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x50]
push eax
push ecx
push 0
mov eax, dword [edx]
push eax
call fcn.0045a1c0
mov ecx, dword [esp + 0x60]
add esp, 0x30
test eax, eax
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x50], 0
jne case.default.0x452a39
mov eax, dword [ebx + 0xbc]
test eax, eax
je case.default.0x452a39
mov eax, dword [esi + 0x10]
test eax, eax
je case.default.0x452a39
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x2c]
shl eax, 4
push edx
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ecx]
push edx
mov dword [esp + 0x44], eax
mov edi, dword [esi + 0x10]
mov dword [esp + 0x48], edi
mov cl, byte [esi + 3]
and cl, 4
push edi
neg cl
sbb ecx, ecx
push eax
and ecx, 5
add ecx, 0x12
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 0xb8]
push ecx
push eax
call dword [ebx + 0xbc]
jmp 0x457737
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], eax
mov edx, dword [ebx + 0xbc]
cmp edx, ecx
je 0x455bd7
cmp dword [esi + 0x10], ecx
je 0x455bd7
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 0x44]
mov dword [esp + 0x24], edx
push eax
call fcn.0045e600
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
push eax
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
call fcn.00459580
mov edx, dword [esp + 0x34]
mov eax, dword [edx]
push eax
call fcn.0045c800
mov ecx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
mov dword [ecx + 0x50], 0
jne 0x455c57
mov ecx, dword [ebx + 0xbc]
test ecx, ecx
je 0x455c57
mov eax, dword [esi + 0x10]
test eax, eax
je 0x455c57
mov edx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov edx, dword [edx + eax]
mov eax, dword [ebx + 0xb8]
push edx
push 9
push eax
call ecx
add esp, 0x18
test byte [esi + 8], 1
je case.default.0x452a39
inc dword [ebp + 0x64]
jmp case.default.0x452a39
mov ecx, dword [ebp + 0x64]
push ecx
push ebx
call fcn.00450240
add esp, 8
mov dword [ebp + 0x64], 0
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [esp + 0x24]
push eax
lea edi, [edi + edx*8]
push edi
push ecx
call fcn.004617b0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
add esp, 0xc
jmp 0x455fea
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x40]
mov eax, dword [eax + edx*4]
lea ecx, [edi + ecx*8]
push ecx
push eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
call fcn.00461700
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [edi + ecx*8]
mov ecx, dword [ebp + 0x40]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
push eax
mov edx, dword [eax]
mov dword [esp + 0x28], edx
call fcn.0045e600
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x1f]
test cl, cl
je 0x455d59
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x30]
push ecx
push edx
call fcn.0044d440
mov eax, dword [ebx + 0x50]
mov ecx, dword [esp + 0x3c]
cdq
add esp, 8
cmp ecx, edx
mov ecx, dword [esp + 0x30]
jg 0x457a16
jl 0x455d51
cmp ecx, eax
ja 0x457a16
mov eax, ecx
mov dword [esp + 0x28], eax
jmp 0x455d7a
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.004595d0
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx + 0x50]
add esp, 8
cmp eax, ecx
ja 0x457a16
mov esi, dword [esp + 0x14]
push 0
push eax
push esi
call fcn.0044dc80
add esp, 0xc
test eax, eax
jne 0x4578a3
mov dx, word [esi + 0x1c]
mov ecx, dword [esp + 0x28]
and edx, 0xbe10
mov dword [esi + 0x18], ecx
or edx, 0x10
mov word [esi + 0x1c], dx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov cl, byte [eax + 0x1f]
mov eax, dword [esp + 0x24]
test cl, cl
mov ecx, dword [esi + 4]
push ecx
push edx
push 0
push eax
je 0x455dda
call fcn.0044d500
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0x1f], 1
jmp case.default.0x452a39
call fcn.004595f0
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0x1f], 1
jmp case.default.0x452a39
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x455e12
mov eax, dword [esp + 0x14]
mov word [eax + 0x1c], 1
jmp case.default.0x452a39
mov cl, byte [eax + 0x1d]
test cl, cl
je 0x455e29
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x2c], edx
jmp 0x455ea0
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x455e5c
mov ecx, dword [ecx]
lea edx, [esp + 0x28]
mov dword [esp + 0x30], ecx
push edx
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x24]
push eax
call dword [ecx + 0x30]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
push ecx
push ebp
call fcn.0045f610
add esp, 0x10
jmp 0x455ea0
push eax
call fcn.0045e600
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x19]
test cl, cl
je 0x455e8c
mov edx, dword [eax + 0x40]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x44]
mov dword [esp + 0x2c], eax
jmp 0x455ea0
mov edx, dword [eax]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.0044d440
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x14], edx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x40]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x20]
mov byte [edx + 0x19], 0
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je case.default.0x452a39
push eax
call fcn.0044d420
add esp, 4
jmp case.default.0x452a39
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
mov dword [esp + 0x28], 0
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x455f21
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.00459ac0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
mov cl, byte [esp + 0x28]
mov byte [eax + 0x1c], cl
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x20]
mov byte [eax + 0x19], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x50], 0
mov esi, dword [esi + 8]
test esi, esi
jle case.default.0x452a39
mov eax, dword [esp + 0x28]
test eax, eax
je case.default.0x452a39
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
inc dword [ebp + 0x78]
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x40]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x455f98
lea ecx, [esp + 0x28]
push ecx
push eax
push ebx
call fcn.00460ec0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x455fdb
mov eax, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov dword [esp + 0x2c], eax
call fcn.004597f0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
add esp, 8
test eax, eax
sete al
mov byte [ecx + 0x1a], al
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x20]
mov dword [eax + 0x50], 0
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x19], 0
mov eax, dword [esp + 0x20]
mov dl, byte [esp + 0x28]
mov byte [eax + 0x1c], dl
mov eax, dword [esp + 0x28]
test eax, eax
je case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x4579e7
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
mov eax, dword [edx + ecx*4]
test eax, eax
mov dword [esp + 0x20], eax
je case.default.0x452a39
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x45603e
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push ecx
push eax
push edx
call fcn.00461640
add esp, 0xc
jmp 0x456054
mov dword [esp + 0x24], 1
mov edx, dword [eax]
lea ecx, [esp + 0x24]
push ecx
push edx
call dword [esi + 0x10]
add esp, 8
mov cl, byte [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1c], cl
mov edx, dword [esp + 0x20]
mov dword [edx + 0x50], 0
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x456095
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 0x18], eax
mov al, byte [esi + 3]
test al, al
je 0x456095
and eax, 0xff
mov ecx, dword [ebp + eax*4 + 0x70]
lea eax, [ebp + eax*4 + 0x70]
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x19], 0
jmp case.default.0x452a39
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x40]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
mov ebp, dword [ecx]
lea eax, [eax + eax*4]
mov dword [esp + 0x24], ebp
test ebp, ebp
lea edi, [edi + eax*8]
je case.default.0x452a39
test byte [edi + 0x1d], 0x40
je 0x4560e9
push edi
call fcn.0044de00
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x452a39
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x456104
push edi
push ecx
push ebx
call fcn.004608e0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov eax, dword [edi + 0x18]
mov dword [esp + 0x28], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x2c], edi
mov dl, byte [esi + 3]
test dl, 0x10
je 0x45611f
mov ecx, dword [ecx + 0x4c]
jmp 0x456121
xor ecx, ecx
push ecx
mov ecx, dword [esi + 0xc]
push ecx
push 0
cdq
push 0
push 0x517348
push edx
push eax
push edi
push ebp
call fcn.0045a1c0
mov edx, dword [esp + 0x44]
add esp, 0x24
mov dword [esp + 0x10], eax
mov dword [edx + 0x50], 0
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x40]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
je case.default.0x452a39
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov ax, word [esi + 0xc]
mov word [esp + 0x34], ax
mov byte [esp + 0x36], 0
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea eax, [edi + edx*8]
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x44], eax
push 0
push 0
lea eax, [esp + 0x3c]
push 0
push eax
push ecx
call fcn.00459b90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4561c7
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4561c7
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0045c800
add esp, 4
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x20]
mov dword [edx + 0x50], 0
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x40]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x24], eax
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov word [eax + 0x1c], 1
mov eax, dword [esp + 0x20]
test eax, eax
je case.default.0x452a39
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0045e600
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov edx, dword [esp + 0x24]
mov al, byte [edx + 0x1c]
test al, al
jne case.default.0x452a39
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
push ecx
push ebx
call fcn.0045eeb0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4579a2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x14], ecx
mov word [eax + 0x1c], 4
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
cmp dword [ecx], 0
je case.default.0x452a39
mov edx, dword [ecx + 8]
mov dword [esp + 0x28], edx
mov ax, word [esi + 0x10]
mov word [esp + 0x2c], ax
mov al, byte [esi + 3]
test al, al
setne dl
add edx, 2
mov byte [esp + 0x2e], dl
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
lea eax, [esp + 0x24]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.0045eff0
mov dword [esp + 0x1c], eax
mov al, byte [esi]
add esp, 0xc
cmp al, 0x64
mov eax, dword [esp + 0x24]
jne 0x4562cb
neg eax
jmp 0x4562cc
inc eax
test eax, eax
mov dword [esp + 0x24], eax
jle case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov dword [esp + 0x24], 0
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x456323
mov edi, 0xbdf20da3
cmp dword [eax + 0x30], edi
jne 0x456318
mov ecx, dword [eax + 0x60]
and ecx, 0xc
cmp cl, 8
jae 0x456318
mov ecx, dword [eax + 0x54]
test ecx, ecx
jl 0x456318
inc dword [esp + 0x24]
mov eax, dword [eax + 0x3c]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x4562fd
mov edx, dword [esp + 0x14]
mov eax, 1
mov word [edx + 0x1c], ax
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jle 0x456349
mov dword [esp + 0x10], 6
mov byte [ebp + 0x5c], 2
jmp case.default.0x452a39
mov eax, dword [esi + 0xc]
lea ecx, [esp + 0x20]
mov dword [esp + 0x2c], eax
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [ebx + 0x10]
shl eax, 4
push edx
mov edx, dword [eax + ecx + 4]
push edx
call fcn.0045ceb0
mov ecx, dword [esp + 0x20]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x10], edi
mov word [ecx + 0x1c], 4
mov eax, dword [esp + 0x20]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
test edi, edi
jne case.default.0x452a39
mov eax, dword [esp + 0x20]
test eax, eax
je case.default.0x452a39
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x2c]
push ecx
push eax
push edx
push ebx
call fcn.00463090
mov al, byte [esp + 0x3c]
add esp, 0x10
inc al
mov byte [esp + 0x108], al
jmp case.default.0x452a39
mov dword [esp + 0x20], 0
mov eax, dword [esi + 0xc]
neg eax
mov edx, dword [esi + 4]
lea ecx, [esp + 0x20]
sbb eax, eax
and eax, ecx
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [esi + 8]
shl eax, 4
push edx
mov edx, dword [eax + ecx + 4]
push edx
call fcn.0045ccf0
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
add esp, 0xc
test eax, eax
je case.default.0x452a39
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 0x64]
add edx, eax
mov dword [ebp + 0x64], edx
mov esi, dword [esi + 0xc]
test esi, esi
jle case.default.0x452a39
lea ecx, [esi + esi*4]
mov esi, dword [edi + ecx*8 + 0x10]
cdq
lea ecx, [edi + ecx*8 + 0x10]
add esi, eax
mov dword [ecx], esi
mov eax, dword [ecx + 4]
adc eax, edx
mov dword [ecx + 4], eax
jmp case.default.0x452a39
mov dword [esp + 0x20], 0
mov eax, dword [esi + 4]
mov edi, dword [ebx + 0x10]
xor ecx, ecx
shl eax, 4
add eax, edi
mov dword [esp + 0x28], eax
mov dl, byte [esi]
cmp dl, 0x69
lea edx, [esp + 0x20]
setne cl
inc ecx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 4]
push ecx
push edx
push eax
call fcn.0045ca60
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
add esp, 0xc
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
mov dword [esp + 0x20], eax
je 0x456499
mov ecx, str.sqlite_master
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ebx
mov edx, dword [esi + 4]
add ebp, 0x34
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebp
mov edx, dword [esi + 0x10]
push edx
push ecx
mov ecx, dword [ebx + 0x10]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0044fe80
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4564df
mov esi, 7
mov dword [esp + 0x10], esi
jmp 0x456533
lea eax, [esp + 0x2c]
mov byte [ebx + 0x81], 1
mov ecx, dword [esp + 0x28]
push 0
push eax
push fcn.00465850
push ecx
push ebx
mov dword [esp + 0x4c], 0
call fcn.004651a0
mov esi, eax
add esp, 0x14
test esi, esi
mov dword [esp + 0x10], esi
jne 0x45651a
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x28]
push edx
push ebx
call fcn.0043f7f0
add esp, 8
mov byte [ebx + 0x81], 0
test esi, esi
je 0x45653c
push ebx
call fcn.00462c50
add esp, 4
cmp esi, 7
je 0x4578a3
jmp case.default.0x452a39
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.00461e50
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
push ecx
push edx
push ebx
call fcn.00462fe0
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push ecx
push ebx
call fcn.00462850
add esp, 0xc
jmp case.default.0x452a39
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push edx
push eax
push ebx
call fcn.00466de0
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [esi + 8]
mov dword [esp + 0x20], eax
lea ecx, [eax*4 + 4]
push ecx
push ebx
call fcn.0043fa70
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x4578a3
mov ecx, dword [esi + 0xc]
lea edx, [ecx + ecx*4]
lea ecx, [edi + edx*8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 4]
lea edx, [ecx + ecx*4]
xor ecx, ecx
mov dword [esp + 0x28], ecx
lea edi, [edi + edx*8]
mov edx, dword [esp + 0x20]
test edx, edx
jle 0x456619
lea eax, [ecx + ecx*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.00450ac0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x4565ea
mov eax, dword [esp + 0x24]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x2c]
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ecx
xor ecx, ecx
mov cl, byte [esi + 3]
mov esi, dword [esp + 0x24]
push edx
push eax
mov edx, dword [esi + 0x10]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.0045d220
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], eax
push ecx
push esi
call fcn.0043f7f0
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
push edi
mov ebx, dword [edx + 0x10]
lea ecx, [edx + 0x10]
cdq
sub ebx, eax
mov dword [ecx], ebx
mov esi, dword [ecx + 4]
sbb esi, edx
mov dword [ecx + 4], esi
call fcn.0044dfd0
mov eax, dword [esp + 0x4c]
add esp, 0x20
test eax, eax
je 0x4566aa
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4578a3
push fcn.0043f790
push 1
push 0xffffffffffffffff
push eax
push edi
call fcn.0044da60
add esp, 0x14
mov eax, dword [esp + 0xe8]
and eax, 0xff
push eax
push edi
call fcn.004504d0
add esp, 8
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea ecx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
lea edx, [esi + esi*4]
lea ebx, [edi + ecx*8]
test al, 0x20
lea esi, [edi + edx*8]
jne 0x4566f3
push ebx
call fcn.0045e1d0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 0x20
je 0x4578a3
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call fcn.00458090
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x4579e7
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov al, byte [edi + eax*8 + 0x1c]
test al, 0x20
je 0x456761
mov edx, dword [ebx + 0x10]
lea ecx, [esp + 0x20]
push ecx
push edx
call fcn.00458140
add esp, 8
test eax, eax
je 0x456761
mov esi, dword [esi + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push eax
lea edx, [esi + esi*4]
push ecx
lea eax, [edi + edx*8]
push eax
call fcn.00450f00
add esp, 0xc
jmp case.default.0x452a39
push ebx
call fcn.0044dfd0
mov esi, dword [esi + 8]
add esp, 4
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x10]
lea ebx, [edi + ecx*8]
mov dword [esp + 0x20], eax
lea edi, [edi + edx*8]
test byte [ebx + 0x1c], 0x20
jne 0x4567ae
push ebx
call fcn.0045e1d0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 0x20
je 0x4578a3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4567f4
jl 0x4567b9
and eax, 0xf
jmp 0x4567be
mov eax, 0xff
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
push ecx
push edx
push eax
mov eax, dword [ebx + 0x10]
push eax
call fcn.004582d0
add esp, 0x10
mov dword [esp + 0x24], eax
test eax, eax
je 0x4567e8
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esp + 0x20]
test eax, eax
jl case.default.0x452a39
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
mov eax, dword [ebx + 0x10]
push ecx
push edx
push eax
call fcn.00458090
add esp, 0xc
jmp case.default.0x452a39
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x28], edi
mov al, byte [esi + 3]
test al, al
je 0x456857
mov eax, dword [ebp + 0xa0]
mov edx, dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], eax
je 0x456857
cmp dword [eax + 0x18], edx
je 0x45684f
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x34], eax
jne 0x45683d
jmp 0x456857
test eax, eax
jne case.default.0x452a39
mov eax, dword [ebp + 0xa8]
mov edx, dword [ebx + 0x78]
cmp eax, edx
jl 0x456883
push str.too_many_levels_of_trigger_recursion
add ebp, 0x34
push ebx
push ebp
mov dword [esp + 0x1c], 1
call fcn.00450150
add esp, 0xc
jmp case.default.0x452a39
test byte [edi + 0x1c], 0x40
jne 0x4569be
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
add eax, edx
mov dword [esp + 0x20], eax
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea edx, [eax + edx*2]
mov eax, dword [ecx + 0x10]
lea eax, [eax + edx*4 + 0x48]
push eax
push ebx
mov dword [esp + 0x2c], eax
call fcn.00444970
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x4578a3
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0044de70
mov edx, dword [esp + 0x2c]
add esp, 4
mov word [edx + 0x1c], 0x40
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x10], eax
mov edx, dword [esp + 0x34]
mov dword [edx], ebp
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x3c], ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x40], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov dword [edx + 0x2c], eax
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 8]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0x18]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0x40]
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0x34]
mov cx, word [ebp + 0x2e]
mov word [edx + 0x28], cx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0x1c]
mov dword [eax + 0x30], edx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0xb8]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0xb4]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x3c]
lea edx, [ecx + ecx*4]
lea ecx, [eax + 0x48]
mov dword [esp + 0x2c], ecx
lea edx, [eax + edx*8 + 0x48]
cmp ecx, edx
mov dword [esp + 0x30], edx
je 0x4569c5
mov eax, dword [esp + 0x1c]
mov edx, 0x80
mov word [ecx + 0x1c], dx
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
add ecx, 0x28
cmp ecx, esi
mov dword [esp + 0x2c], ecx
jne 0x45699b
mov eax, dword [esp + 0x34]
jmp 0x4569c5
mov eax, dword [edi + 0x10]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x134]
mov dword [esp + 0x18], 0xffffffff
mov ebx, dword [edx + 0xa8]
mov ecx, dword [edx + 0xa0]
inc ebx
mov dword [edx + 0xa8], ebx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xf0]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xf4]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 0x64]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x64], 0
mov dword [edx + 0xa0], eax
lea ecx, [eax + 0x20]
mov dword [edx + 8], ecx
mov esi, dword [eax + 0x3c]
mov dword [edx + 0x18], esi
mov ax, word [eax + 0x40]
mov word [edx + 0x2e], ax
mov eax, esi
inc eax
mov dword [esp + 0xec], ecx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x38]
mov dword [edx + 0x40], eax
mov esi, dword [ecx]
mov dword [esp + 0x10c], esi
mov dword [edx + 4], esi
mov esi, dword [ecx + 4]
mov dword [edx + 0x1c], esi
xor esi, esi
mov si, word [edx + 0x2e]
lea edi, [eax + esi*4]
xor eax, eax
mov dword [edx + 0xb8], edi
mov ecx, dword [ecx + 0x10]
mov dword [edx + 0xb4], ecx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp case.default.0x452a39
mov ebp, dword [ebp + 0xa0]
push 0x1000
mov dword [esp + 0x24], ebp
mov ebx, dword [esi + 4]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, dword [esp + 0x18]
add eax, ebx
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + edx*8]
push eax
push ecx
mov dword [esp + 0x30], eax
call fcn.0045e290
add esp, 0xc
jmp case.default.0x452a39
mov eax, dword [esi + 4]
test eax, eax
mov eax, dword [esi + 8]
cdq
je 0x456af8
mov ecx, dword [ebx + 0x1e8]
add ecx, eax
mov dword [ebx + 0x1e8], ecx
mov eax, dword [ebx + 0x1ec]
adc eax, edx
mov dword [ebx + 0x1ec], eax
jmp case.default.0x452a39
mov ecx, dword [ebp + 0x88]
add ecx, eax
mov dword [ebp + 0x88], ecx
mov eax, dword [ebp + 0x8c]
adc eax, edx
mov dword [ebp + 0x8c], eax
jmp case.default.0x452a39
mov eax, dword [esi + 4]
test eax, eax
je 0x456b47
mov edx, dword [ebx + 0x1e8]
mov ecx, dword [ebx + 0x1ec]
lea eax, [ebx + 0x1e8]
or edx, ecx
jne case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov ecx, dword [ebp + 0x88]
mov edx, dword [ebp + 0x8c]
lea eax, [ebp + 0x88]
or ecx, edx
jne case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov ebp, dword [ebp + 0xa0]
test ebp, ebp
je 0x456ba0
mov ecx, ebp
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 4]
test eax, eax
je 0x456b92
mov ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x456b85
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea eax, [eax + edx*8]
jmp 0x456ba9
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
push eax
mov dword [esp + 0x24], eax
call fcn.0045e100
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea esi, [edi + edx*8]
push esi
call fcn.0045e100
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
add eax, 0x10
add esp, 8
mov edx, dword [eax + 4]
cmp edx, esi
jg case.default.0x452a39
jl 0x456be9
mov edx, dword [eax]
cmp edx, ecx
jae case.default.0x452a39
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8 + 0x10]
mov eax, dword [edi + 4]
test eax, eax
jl case.default.0x452a39
jg 0x456c13
cmp dword [edi], 0
jbe case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8 + 0x14]
test eax, eax
lea edi, [edi + ecx*8 + 0x10]
jg case.default.0x452a39
jl 0x456c41
cmp dword [edi], 0
jae case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0xc]
mov ebx, dword [edi + edx*8 + 0x10]
lea ecx, [edi + edx*8]
cdq
add ebx, eax
mov dword [ecx + 0x10], ebx
mov edi, dword [ecx + 0x14]
adc edi, edx
mov dword [ecx + 0x14], edi
mov eax, dword [ecx + 0x10]
mov edx, edi
or eax, edx
jne case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
xor eax, eax
lea edi, [edi + edx*8]
mov dword [esp + 0x24], eax
test ecx, ecx
mov dword [esp + 0x2c], edi
jle 0x456cdd
mov ecx, dword [esp + 0x70]
mov dword [ecx + eax*4], edi
mov edx, dword [esp + 0x2c]
push edx
call fcn.004527f0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
add esp, 4
inc eax
add edi, 0x28
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edi
jl 0x456cad
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov ebp, dword [esp + 0x1c]
xor edi, edi
lea ecx, [eax + eax*4]
lea eax, [ebx + ecx*8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], eax
mov edx, dword [eax + 0x18]
inc edx
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x30]
mov word [esp + 0x54], 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x6c], edi
test byte [eax + 3], 8
je 0x456d3d
mov edx, dword [esi - 4]
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x20]
push ecx
lea ecx, [esp + 0x34]
push edx
push ecx
call dword [eax + 0x10]
mov eax, dword [esp + 0x74]
add esp, 0xc
cmp eax, edi
je 0x456d86
lea edx, [esp + 0x38]
push edx
call fcn.00450d60
push eax
mov eax, dword [esp + 0x13c]
push 0x508bd4
add eax, 0x34
push ebp
push eax
call fcn.00450150
mov ecx, dword [esp + 0x7c]
add esp, 0x14
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x6c], edi
je 0x456da9
mov esi, dword [esi - 0x10]
cmp esi, edi
mov dword [esp + 0x24], esi
je 0x456da9
lea edx, [esi + esi*4]
push edi
push 1
lea eax, [ebx + edx*8]
push eax
call fcn.00450f00
add esp, 0xc
lea ecx, [esp + 0x38]
push ecx
call fcn.0044de70
add esp, 4
jmp case.default.0x452a39
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x20], edi
mov eax, dword [esi + 0x10]
push eax
push edi
call fcn.0044df60
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x456dfa
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00450d60
push eax
push 0x508bd4
add ebp, 0x34
push ebx
push ebp
call fcn.00450150
add esp, 0x14
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x20]
and edx, 0xff
push edx
push eax
call fcn.004504d0
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045e260
add esp, 0xc
test eax, eax
jne 0x457a16
jmp case.default.0x452a39
or eax, 0xffffffff
xor ebp, ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x24], ebp
mov ecx, dword [esi + 8]
lea eax, [esp + 0x28]
push edx
mov edx, dword [esi + 4]
push eax
push ecx
push edx
push ebx
call fcn.0048bb00
add esp, 0x14
cmp eax, 5
mov dword [esp + 0x10], eax
jne 0x456e6d
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], 1
xor eax, eax
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0xc]
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x30], edi
mov eax, dword [esp + eax*4 + 0x24]
cdq
push edx
push eax
push edi
call fcn.00450f00
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
add esp, 0xc
inc eax
add edi, 0x28
cmp eax, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edi
jl 0x456e80
jmp case.default.0x452a39
mov edx, dword [esi + 0xc]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push eax
mov dword [esp + 0x24], eax
call fcn.004446d0
push eax
mov dword [esp + 0x2c], eax
call fcn.004485d0
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, 0xffffffff
mov dword [esp + 0x2c], eax
jne 0x456eea
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x24]
push edx
call fcn.004585f0
add esp, 4
test eax, eax
jne 0x456f03
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x24]
push 1
push ecx
call fcn.0044ff00
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, 5
mov dword [esp + 0x30], eax
jne 0x456fb2
push eax
call fcn.00440f10
add esp, 4
test eax, eax
je 0x456f41
mov edx, dword [esp + 0x24]
push edx
call fcn.0044aec0
add esp, 4
test eax, eax
jne 0x456fae
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x456f59
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
push ecx
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004584f0
mov dword [esp + 0x30], eax
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea esi, [edi + edx*8]
mov dword [esp + 0x1c], esi
mov word [esi + 0x1c], 0xa02
mov eax, dword [esp + 0x30]
push eax
call fcn.00465830
push eax
mov dword [esi + 4], eax
call fcn.00440f10
mov ecx, dword [esp + 0xf8]
mov dword [esi + 0x18], eax
and ecx, 0xff
mov byte [esi + 0x1f], 1
push ecx
push esi
call fcn.004504d0
jmp 0x457737
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
je 0x456f49
cmp eax, 5
je 0x456fc4
cmp ecx, 5
jne 0x456f49
mov dl, byte [ebx + 0x36]
test dl, dl
je 0x457046
cmp dword [ebx + 0x84], 1
jg 0x457046
cmp eax, 5
jne 0x456ffe
mov eax, dword [esp + 0x24]
push eax
call fcn.00458620
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x456f51
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
jmp 0x45700a
cmp eax, 4
jne 0x457016
mov eax, dword [esp + 0x24]
push 2
push eax
call fcn.004584f0
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x456f51
mov eax, dword [esp + 0x20]
xor edx, edx
cmp ecx, 5
sete dl
inc edx
push edx
push eax
call fcn.0044cde0
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x456f49
cmp ecx, 5
mov dword [esp + 0x10], 1
mov eax, str.into
je 0x45705d
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
add ebp, 0x34
push ebx
push ebp
call fcn.00450150
add esp, 0x10
jmp case.default.0x452a39
add ebp, 0x34
push ebx
push ebp
call fcn.00466e90
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
push eax
mov dword [esp + 0x24], eax
call fcn.00459410
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.default.0x452a39
mov esi, dword [esi + 8]
mov dword [esp + 0x10], 0
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov eax, dword [esi + 4]
test eax, eax
jne 0x4570dc
push ebx
call fcn.0045f0b0
add esp, 4
jmp case.default.0x452a39
mov eax, dword [ebp + 0x60]
or al, 0x20
mov dword [ebp + 0x60], eax
jmp case.default.0x452a39
mov al, byte [esi + 0xc]
test al, al
mov byte [esp + 0x114], al
jne 0x457103
mov eax, dword [ebx + 0x18]
test ah, 8
jne case.default.0x452a39
mov ecx, dword [esp + 0x114]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [ebx + 0x10]
push edx
shl eax, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.0045dfc0
add esp, 0xc
cmp al, 6
mov dword [esp + 0x10], eax
jne case.default.0x452a39
mov eax, dword [esi + 0x10]
add ebp, 0x34
push eax
push str.database_table_is_locked:__s
push ebx
push ebp
call fcn.00450150
add esp, 0x10
jmp case.default.0x452a39
mov esi, dword [esi + 0x10]
push esi
push ebx
mov dword [esp + 0x28], esi
call fcn.00467f50
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
je case.default.0x452a39
mov ecx, dword [eax + 8]
push ecx
push ebp
call fcn.0045f610
add esp, 8
jmp case.default.0x452a39
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
add ebp, 0x34
push ebp
push edx
push eax
push ebx
call fcn.004677f0
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.default.0x452a39
mov ecx, dword [ebp + 0x60]
and ecx, 0xfffffffb
or ecx, 8
mov dword [ebp + 0x60], ecx
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push edx
push eax
push ebx
call fcn.00467da0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x60]
add esp, 0xc
and al, 0xf3
mov dword [ebp + 0x60], eax
jmp case.default.0x452a39
xor eax, eax
lea edx, [esp + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x10]
push edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x2c], eax
push eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
call dword [ecx + 0x18]
mov edi, eax
mov eax, dword [esp + 0x30]
push eax
push ebp
mov dword [esp + 0x20], edi
call fcn.0045f610
add esp, 0x10
test edi, edi
jne case.default.0x452a39
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push edi
push 0xffffffffffffffff
mov dword [edx], ecx
mov eax, dword [esi + 4]
push edi
push eax
push ebp
call fcn.0045f4b0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x457248
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax]
mov dword [edx + 0x28], ecx
jmp case.default.0x452a39
mov byte [ebx + 0x38], 1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
push eax
call dword [ecx + 0x1c]
add esp, 4
jmp case.default.0x452a39
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x134]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xec]
lea eax, [eax + edx*8]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x2c], eax
mov ebx, dword [ebx + 0xc]
lea edi, [eax + 0x28]
mov dword [esp + 0x30], edi
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x3c], ecx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x34], edx
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], eax
jle 0x457302
jmp 0x4572cb
mov edi, dword [esp + 0x30]
lea ecx, [eax + eax*4 + 5]
lea edx, [edi + ecx*8]
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.004527f0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x4572c7
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x134]
mov eax, dword [edi + 0x60]
and al, 0xf7
or al, 4
mov dword [edi + 0x60], eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esi + 0x10]
push ecx
mov ecx, dword [esp + 0x34]
push eax
push edx
call dword [ecx + 0x20]
mov edx, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [edi + 0x60]
push edx
and al, 0xf3
push edi
mov dword [esp + 0x2c], ebx
mov dword [edi + 0x60], eax
call fcn.0045f610
add esp, 0x1c
test ebx, ebx
jne 0x45735d
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push eax
call dword [ecx + 0x28]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x45736d
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x3c]
mov byte [edx + 0x1c], 0
jmp case.default.0x452a39
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x40]
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x28], eax
mov cl, byte [ebx + 0x1c]
test cl, cl
je 0x4573a5
push eax
call fcn.0044dfd0
add esp, 4
jmp case.default.0x452a39
mov eax, dword [ebx + 0x24]
lea edi, [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0x24], ecx
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.00452710
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x38]
and ecx, 0xbe01
or ecx, 1
mov word [esp + 0x5c], cx
mov edx, dword [esi + 8]
mov ecx, dword [ebx + 0x24]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call fcn.0045f610
mov eax, dword [esp + 0x84]
add esp, 0x1c
test eax, eax
je 0x45741e
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0xe8]
lea eax, [esp + 0x38]
and edx, 0xff
push edx
push eax
call fcn.004504d0
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push ecx
push edx
call fcn.00452710
mov eax, dword [esp + 0x38]
push eax
call fcn.0045e260
add esp, 0x14
test eax, eax
jne 0x457a16
jmp case.default.0x452a39
mov edx, dword [ebp + 0x40]
mov dword [esp + 0x28], 0
mov ecx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x2c], eax
mov cl, byte [eax + 0x1c]
test cl, cl
jne case.default.0x452a39
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp + 0x60]
and edx, 0xfffffff7
mov ecx, dword [ecx]
or edx, 4
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx]
mov dword [ebp + 0x60], edx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x24]
push eax
call dword [ecx + 0x24]
mov ecx, dword [esp + 0x24]
mov edi, eax
mov eax, dword [ebp + 0x60]
push ecx
and al, 0xf3
push ebp
mov dword [esp + 0x1c], edi
mov dword [ebp + 0x60], eax
call fcn.0045f610
add esp, 0xc
test edi, edi
jne 0x4574d7
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x24]
push eax
call dword [ecx + 0x28]
add esp, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne case.default.0x452a39
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x452a39
mov edx, dword [esi + 0x10]
push 1
mov eax, dword [edx + 8]
mov dword [esp + 0x24], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
push edi
mov dword [esp + 0x2c], edi
call fcn.004504d0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x452a39
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x4c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
push edx
push ebp
call fcn.0045f610
mov eax, dword [ebp + 0x60]
add esp, 0x10
and al, 0xdf
mov dword [ebp + 0x60], eax
jmp case.default.0x452a39
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x34]
test edx, edx
je case.default.0x452a39
mov eax, dword [ebp + 0xc]
mov dl, byte [ebx + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0xc]
mov byte [esp + 0xfb], dl
mov dword [esp + 0x2c], 0
lea edx, [eax + eax*4]
test ecx, ecx
lea edi, [edi + edx*8]
mov dword [esp + 0x3c], edi
jle 0x4575cf
push edi
call fcn.004527f0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add esp, 4
mov dword [edx + ecx*4], eax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add edi, 0x28
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], eax
jl 0x45759b
mov al, byte [esi + 3]
lea ecx, [esp + 0x30]
mov byte [ebx + 0x3c], al
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
call dword [edx + 0x34]
mov edi, eax
mov al, byte [esp + 0x10b]
mov byte [ebx + 0x3c], al
mov ecx, dword [esp + 0x30]
push ecx
push ebp
mov dword [esp + 0x28], edi
call fcn.0045f610
add esp, 0x18
test edi, edi
jne 0x457639
mov eax, dword [esi + 4]
test eax, eax
je 0x457639
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xf0], eax
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xf4], edx
mov dword [ebx + 0x24], eax
cmp edi, 0x13
jne 0x455c61
mov ecx, dword [esi + 0x10]
mov al, byte [ecx + 0x10]
test al, al
je 0x455c61
mov al, byte [esi + 3]
cmp al, 4
jne 0x457664
mov dword [esp + 0x10], 0
jmp case.default.0x452a39
cmp al, 5
jne 0x457675
mov eax, 2
mov byte [ebp + 0x5c], al
jmp case.default.0x452a39
and eax, 0xff
mov byte [ebp + 0x5c], al
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.00449e50
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
jmp case.default.0x452a39
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0xc]
shl edx, 4
mov edi, dword [edx + eax + 4]
xor eax, eax
test ecx, ecx
je 0x4576d3
push edi
call fcn.00449e50
mov esi, dword [esi + 0xc]
add esp, 4
cmp eax, esi
jae 0x4576d3
mov eax, esi
push eax
push edi
call fcn.004593c0
mov ecx, dword [esp + 0x1c]
add esp, 8
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x452a39
mov eax, dword [ebx + 0x98]
test eax, eax
je case.default.0x452a39
mov eax, dword [ebp + 0x60]
test ah, 4
jne case.default.0x452a39
mov esi, dword [esi + 0x10]
test esi, esi
mov eax, esi
jne 0x45770b
mov eax, dword [ebp + 0x98]
test eax, eax
mov dword [esp + 0x20], eax
je case.default.0x452a39
push eax
push ebp
call fcn.0045f0d0
mov dword [esp + 0x2c], eax
mov ecx, dword [ebx + 0x9c]
push eax
push ecx
call dword [ebx + 0x98]
mov edx, dword [esp + 0x34]
push edx
push ebx
call fcn.0043f7f0
add esp, 0x18
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc ecx
test eax, eax
mov dword [esp + 0x18], ecx
je 0x452986
jmp 0x457a3b
mov dword [esp + 0x10], 9
jmp 0x457a46
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x18]
mov dword [ebp + 0x58], eax
mov cl, byte [esi + 8]
mov byte [ebp + 0x5c], cl
mov dword [ebp + 0x54], edx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4577ae
push eax
push 0x508bd4
lea eax, [ebp + 0x34]
push ebx
push eax
call fcn.00450150
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp + 0x98]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esi + 4]
push edx
push eax
push str.abort_at__d_in___s_:__s
push ecx
call fcn.00440cb0
add esp, 0x24
jmp 0x4577d2
mov eax, dword [ebp + 0x58]
test eax, eax
je 0x4577d2
mov edx, dword [ebp + 0x98]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
push edx
push eax
push str.constraint_failed_at__d_in___s_
push ecx
call fcn.00440cb0
add esp, 0x10
push ebp
call fcn.0044e5a0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x457919
mov dword [ebp + 0x58], esi
jmp 0x457aa5
mov edx, dword [ebp + 0x50]
add edx, 2
or edx, 1
mov dword [ebp + 0x50], edx
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor eax, eax
mov dword [ebp + 0x14], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x457872
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x1d], 0x10
lea ecx, [edx + ecx*8]
je 0x45783b
push ecx
call fcn.0044dda0
add esp, 4
test eax, eax
jne 0x4578a3
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
push edx
call fcn.00450950
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
push edx
call fcn.004527f0
mov eax, dword [esp + 0x2c]
add esp, 8
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
cmp eax, ecx
jl 0x457819
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x4578a3
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x134]
inc ecx
mov esi, 0x64
mov dword [edx + 0x54], ecx
jmp 0x457aa5
lea eax, [esp + 0x30]
push eax
call fcn.0044de70
add esp, 4
mov ebp, dword [esp + 0x134]
mov eax, dword [esp + 0x1c]
push str.out_of_memory
push eax
lea ecx, [ebp + 0x34]
mov byte [eax + 0x38], 1
push ecx
call fcn.00450150
mov ebx, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x10], 7
jmp 0x457a46
mov dword [esp + 0x10], 0x14
jmp 0x4579a2
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x54], ecx
mov byte [esi + 0x36], 0
mov esi, 5
mov dword [edi + 0x58], esi
jmp 0x457aa5
test esi, esi
je 0x45792b
push 0x204
push ebx
call fcn.0048b1a0
add esp, 8
mov byte [ebx + 0x36], 1
push ebx
call fcn.0048ad10
add esp, 4
mov esi, dword [ebp + 0x58]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x457aa5
push 1
push ebp
call fcn.004500f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x457aa5
mov dl, byte [esp + 0x20]
push ebp
mov byte [ebx + 0x36], dl
call fcn.0044e5a0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x457910
mov eax, dword [esp + 0x18]
mov cl, 1
mov dword [ebp + 0x54], eax
mov al, byte [esp + 0x20]
sub cl, al
mov byte [ebx + 0x36], cl
mov dword [ebp + 0x58], esi
jmp 0x457aa5
mov edx, dword [esp + 0x18]
mov esi, 5
mov dword [ebp + 0x54], edx
mov dword [ebp + 0x58], esi
jmp 0x457aa5
push 0x10667
call fcn.0048cc70
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x4579a2
mov dword [esp + 0x10], 0xd
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx + 0x38]
test al, al
je 0x4579b7
mov dword [esp + 0x10], 7
jmp 0x4579c1
cmp dword [esp + 0x10], 0xc0a
je 0x457a3f
mov eax, dword [esp + 0x10]
push eax
call fcn.0048b260
mov ebp, dword [esp + 0x138]
push eax
push 0x508bd4
push ebx
lea ecx, [ebp + 0x34]
push ecx
call fcn.00450150
add esp, 0x14
jmp 0x457a46
mov eax, 9
push eax
mov dword [esp + 0x14], eax
mov dword [ebp + 0x58], eax
call fcn.0048b260
mov edx, dword [esp + 0x20]
push eax
push 0x508bd4
lea eax, [ebp + 0x34]
push edx
push eax
call fcn.00450150
mov ebx, dword [esp + 0x30]
add esp, 0x14
jmp 0x457a46
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x1c]
push str.string_or_blob_too_big
add eax, 0x34
push edx
push eax
call fcn.00450150
add esp, 0xc
mov dword [esp + 0x10], 0x12
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x134]
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x98]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
push ecx
push edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
mov dword [ebp + 0x58], esi
call fcn.00440cb0
push ebp
call fcn.0044e5a0
add esp, 0x18
cmp esi, 0xc0a
jne 0x457a7d
mov byte [ebx + 0x38], 1
mov al, byte [esp + 0x108]
mov esi, 1
test al, al
jbe 0x457aa5
mov ecx, dword [esp + 0x108]
and ecx, 0xff
dec ecx
push ecx
push ebx
call fcn.00462c10
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x134]
push edx
mov dword [eax + 0x24], ecx
call fcn.0044e8c0
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret