Function at 0x45e910
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2fc
mov eax, dword [0x55c4c8]
xor eax, esp
mov dword [esp + 0x2f4], eax
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi]
mov dl, byte [eax + 0x3e]
mov ebp, dword [esi + 4]
xor ecx, ecx
mov byte [esp + 0x44], dl
mov edx, dword [esi + 8]
mov dword [esp + 0x14], ecx
mov byte [esp + 0x53], cl
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x8c], ecx
mov ecx, dword [eax + 0x20]
push edi
push esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
call fcn.00458ab0
add esp, 4
cmp dword [esi + 0x50], 7
je 0x463526
mov ebx, dword [esp + 0x1c]
xor eax, eax
mov edi, esi
mov dword [edi + 0x50], eax
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], eax
mov dword [edi + 0x14], eax
mov ecx, dword [ebx + 0xf0]
mov dword [ebx + 0x1c4], eax
test ecx, ecx
jne 0x463554
cmp dword [ebx + 0x124], eax
je 0x45e9dc
mov ecx, dword [ebx + 0x12c]
mov eax, dword [edi + 0x7c]
xor edx, edx
div ecx
sub ecx, edx
mov dword [esp + 0x9c], ecx
mov edi, dword [edi + 0x4c]
lea edx, [edi + edi*4]
mov eax, ebp
lea ebp, [eax + edx*4]
jmp 0x45e9f0
cmp byte [ebx + 0x41], 0
jne 0x463526
mov cl, byte [ebp]
movzx eax, cl
mov esi, 1
add dword [esp + 0x94], esi
lea edx, [eax - 1]
cmp edx, 0x9d
ja case.0x45ea1b.62
jmp dword [edx*4 + 0x463584]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
mov eax, 4
mov word [ecx + 8], ax
mov edx, ebp
sub edx, dword [esp + 0x3c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4632f3
mov ebp, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea ecx, [ebp + ebp*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + ecx*4]
lea ebp, [edx + ecx*4]
mov ecx, 0x80
mov word [eax + 8], cx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx*8]
mov eax, dword [ebp + 0xc]
sub eax, esi
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebp + 8], 0
jne 0x4632f3
jmp case.0x45ea1b.62
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ebp + ebp*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea ebp, [edx + ecx*4 - 0x14]
mov edx, 0x80
mov word [eax + 8], dx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov esi, dword [ecx]
mov edx, 4
sub ebp, edi
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
lea eax, [esi + esi*4]
mov dword [ecx + 4], edx
lea ebp, [edi + eax*4]
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je case.0x45ea1b.62
mov ebx, dword [esp + 0x14]
mov ecx, ebp
sub ecx, dword [esp + 0x3c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebp + 4], 0
jne 0x463319
mov edi, dword [ebx + 0xb0]
test edi, edi
je 0x463319
mov eax, dword [edi + 4]
dec dword [ebx + 0xb8]
mov esi, dword [esp + 0x1c]
mov dword [ebx + 0xb0], eax
mov eax, dword [ebx + 0x5c]
add dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
call fcn.00459490
cmp dword [ebp + 8], 4
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
jne 0x45ebaa
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov ebp, dword [ebx + 4]
mov edx, dword [ebx + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x20], edx
lea ebp, [ebp + eax*4]
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x45ebf4
call fcn.0045e8d0
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x45ea1b.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x45ec3f
call fcn.0045e8d0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x45ea1b.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
lea eax, [ecx + edx*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x45ec7c
call fcn.0045e8d0
jmp 0x45ec85
mov ecx, 4
mov word [eax + 8], cx
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebp + 0x10]
fld qword [ecx]
fstp qword [eax]
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
lea eax, [ecx + edx*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x45ecbc
call fcn.0045e8d0
jmp 0x45ecc5
mov ecx, 4
mov word [eax + 8], cx
mov ebx, dword [ebp + 0x10]
mov edi, eax
mov eax, ebx
mov byte [ebp], 0x19
call fcn.0043df20
cmp byte [esp + 0x48], 1
mov dword [ebp + 4], eax
je 0x45ed43
push 0
push esi
push ebx
or eax, 0xffffffff
mov ecx, edi
call fcn.004573c0
add esp, 0xc
mov dword [esp + 0x18], eax
cmp eax, 0x12
je 0x462a13
movzx ecx, byte [esp + 0x48]
mov eax, edi
call fcn.00456810
test eax, eax
jne 0x463526
mov ebx, dword [esp + 0x1c]
mov edx, 0x800
or word [edi + 8], dx
mov dword [edi + 0x18], eax
cmp byte [ebp + 1], 0xff
jne 0x45ed31
mov eax, dword [ebp + 0x10]
mov ecx, ebx
call fcn.0043b7d0
mov byte [ebp + 1], 0xff
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [edi + 0xc]
mov dword [ebp + 4], ecx
jmp 0x45ed47
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebp + 4]
cmp edx, dword [ebx + 0x58]
jg 0x462a17
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x45ed75
call fcn.0045e8d0
jmp 0x45ed7e
mov edx, 4
mov word [eax + 8], dx
mov ecx, 0xa02
mov word [eax + 8], cx
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp + 4]
mov dl, byte [esp + 0x48]
mov dword [eax + 0xc], ecx
mov byte [eax + 0xa], dl
cmp byte [ebp + 3], 0
je case.0x45ea1b.62
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*8]
or esi, dword [edx + ecx*8 + 4]
je case.0x45ea1b.62
mov ecx, 0xa10
mov word [eax + 8], cx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
lea eax, [ecx + edx*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x45edeb
call fcn.0045e8d0
jmp 0x45edf4
mov ecx, 4
mov word [eax + 8], cx
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
mov edx, dword [ebp + 4]
neg edx
sbb edx, edx
and edx, 0x100
inc edx
movzx esi, dx
mov ebx, eax
mov word [ebx + 8], si
test edi, edi
jle case.0x45ea1b.62
lea esp, [esp]
add ebx, 0x28
mov eax, ebx
call fcn.00457090
dec edi
mov word [ebx + 8], si
test edi, edi
jg 0x45ee20
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov dx, word [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
mov ecx, 0xff7f
and dx, cx
or dx, si
mov word [eax + 8], dx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
lea eax, [ecx + edx*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x45ee80
call fcn.0045e8d0
jmp 0x45ee89
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [ebp + 0x10]
push 0
mov esi, eax
mov eax, dword [ebp + 4]
push 0
push edx
mov ecx, esi
call fcn.004573c0
mov al, byte [esp + 0x54]
add esp, 0xc
mov byte [esi + 0xa], al
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x3c]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8 - 0x28]
mov ecx, edi
call fcn.00457240
test eax, eax
jne 0x462a13
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x45eefc
call fcn.0045e8d0
push 0x800
push edi
push eax
call fcn.00457290
add esp, 0xc
jmp case.0x45ea1b.62
push 0x800
mov ecx, 4
push edi
push eax
mov word [eax + 8], cx
call fcn.00457290
add esp, 0xc
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
push edi
mov eax, esi
call fcn.00457380
mov ecx, 0x1000
add esp, 4
test word [esi + 8], cx
je 0x45ef57
mov eax, esi
call fcn.00456970
test eax, eax
jne 0x463526
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x45ef32
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
push 0x1000
push edi
push esi
call fcn.00457290
mov ecx, 0x1000
add esp, 0xc
test word [esi + 8], cx
je 0x45efa9
mov eax, esi
call fcn.00456970
test eax, eax
jne 0x463526
mov edx, ebx
dec ebx
test edx, edx
je case.0x45ea1b.62
add esi, 0x28
add edi, 0x28
jmp 0x45ef80
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 8]
push 0x1000
lea eax, [eax + eax*4]
push edx
lea ecx, [ecx + eax*8]
push ecx
call fcn.00457290
add esp, 0xc
jmp case.0x45ea1b.62
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x124]
test eax, eax
je 0x45f018
mov edx, dword [esp + 0x94]
cmp edx, dword [esp + 0x9c]
jb 0x45f018
mov ecx, dword [ebx + 0x128]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x4622e8
mov edi, dword [esp + 0x14]
push 0
mov eax, edi
call fcn.0045a0c0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne case.0x45ea1b.62
push esi
push edi
call fcn.00459fa0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne case.0x45ea1b.62
mov edx, dword [edi + 0x48]
mov ecx, dword [esp + 0x20]
add edx, 2
or edx, esi
mov dword [edi + 0x48], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [edi + 0x14], esi
xor edi, edi
cmp dword [ebp + 8], edi
jle 0x45f09e
lea esp, [esp]
mov edx, 0x1000
test word [esi + 8], dx
je 0x45f08e
mov eax, esi
call fcn.00456970
test eax, eax
jne 0x463526
mov ebx, dword [esp + 0x1c]
mov eax, esi
call fcn.00456a90
inc edi
add esi, 0x28
cmp edi, dword [ebp + 8]
jl 0x45f070
cmp byte [ebx + 0x41], 0
jne 0x463526
sub ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x4c], ecx
mov esi, 0x64
jmp 0x462374
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea ecx, [edi + edx*8]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
movzx eax, word [ecx + 8]
mov dword [esp + 0x28], ecx
mov cl, byte [edx + 8]
or cl, al
mov dword [esp + 0x24], edx
test cl, 1
je 0x45f115
mov eax, edi
call fcn.00457090
jmp case.0x45ea1b.62
test eax, 0x4000
je 0x45f12d
mov esi, dword [esp + 0x28]
call fcn.004569f0
test eax, eax
jne 0x463526
mov esi, dword [esp + 0x24]
mov edx, 0x4000
test word [esi + 8], dx
je 0x45f149
call fcn.004569f0
test eax, eax
jne 0x463526
mov eax, dword [esp + 0x28]
test byte [eax + 8], 0x12
jne 0x45f170
mov ecx, dword [esp + 0x48]
push 0
push ecx
mov esi, eax
call fcn.00456ab0
add esp, 8
test eax, eax
jne 0x463526
mov esi, dword [esp + 0x24]
test byte [esi + 8], 0x12
jne 0x45f18d
mov edx, dword [esp + 0x48]
push 0
push edx
call fcn.00456ab0
add esp, 8
test eax, eax
jne 0x463526
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x24]
add eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x1c]
cdq
mov esi, eax
mov eax, dword [ebx + 0x58]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x462a17
jl 0x45f1ba
cmp esi, eax
ja 0x462a17
xor eax, eax
cmp edi, dword [esp + 0x24]
lea ecx, [esi + 2]
sete al
push edi
call fcn.00456830
add esp, 4
test eax, eax
jne 0x463526
mov dx, word [edi + 8]
mov ebx, dword [esp + 0x24]
mov eax, 0xbe02
and dx, ax
or dx, 2
mov word [edi + 8], dx
cmp edi, ebx
je 0x45f207
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov eax, dword [edi + 0x10]
push ecx
push edx
push eax
call fcn.00510c60
add esp, 0xc
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [edi + 0x10]
add eax, dword [ebx + 0xc]
push ecx
push edx
push eax
call fcn.00510c60
mov ecx, dword [edi + 0x10]
mov byte [esi + ecx], 0
mov edx, dword [edi + 0x10]
mov cl, byte [esp + 0x54]
mov byte [edx + esi + 1], 0
mov eax, 0x200
add esp, 0xc
or word [edi + 8], ax
mov dword [edi + 0xc], esi
mov byte [edi + 0xa], cl
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x20]
lea edx, [eax + eax*4]
lea edi, [ebx + edx*8]
mov eax, edi
call fcn.0045e8b0
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [ebx + ecx*8]
mov eax, esi
call fcn.0045e8b0
movzx ecx, ax
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov dl, byte [esi + 8]
or dl, byte [edi + 8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], eax
test dl, 1
jne 0x45f4cb
and cl, byte [esp + 0x30]
test cl, 4
je 0x45f3cf
mov edx, dword [esi + 4]
mov ebx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x84], edx
movzx edx, byte [ebp]
add edx, 0xffffffa7
mov dword [esp + 0x80], ebx
mov byte [esp + 0x47], 1
cmp edx, 3
ja case.default.0x45f2d1
jmp dword [edx*4 + 0x4637fc]
push ecx
push eax
lea eax, [esp + 0x88]
push eax
call fcn.0043f100
add esp, 0xc
test eax, eax
jne 0x45f3d4
jmp 0x45f39f
push ecx
push eax
lea edx, [esp + 0x88]
call fcn.0043f1a0
add esp, 8
test eax, eax
jne 0x45f3d4
jmp 0x45f39f
push ecx
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.0043f1f0
add esp, 0xc
test eax, eax
jne 0x45f3d4
jmp 0x45f39f
mov edx, eax
or edx, ecx
je 0x45f4cb
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x45f355
test ebx, ebx
jne 0x45f355
cmp dword [esp + 0x84], 0x80000000
je 0x45f3d4
push ecx
push eax
mov eax, dword [esp + 0x8c]
push eax
push ebx
call fcn.0051c8e0
jmp 0x45f391
mov edx, eax
or edx, ecx
je 0x45f4cb
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x45f381
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x8c]
push eax
push ebx
call fcn.0051c990
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov word [eax + 8], cx
jmp case.0x45ea1b.62
mov byte [esp + 0x47], 0
mov eax, edi
call fcn.00456e50
fstp qword [esp + 0x58]
mov eax, esi
call fcn.00456e50
movzx eax, byte [ebp]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x45f3f2
jmp dword [eax*4 + 0x46380c]
fadd qword [esp + 0x58]
jmp 0x45f46e
fsub qword [esp + 0x58]
jmp 0x45f46e
fmul qword [esp + 0x58]
jmp 0x45f46e
fldz
fld qword [esp + 0x58]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x45f4c7
fdivp st(1)
jmp 0x45f46e
fld qword [esp + 0x58]
call fcn.00528386
mov esi, eax
mov edi, edx
call fcn.00528386
mov ecx, esi
or ecx, edi
je 0x45f4cb
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x45f450
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0051c990
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], edx
fild qword [esp + 0x140]
sub esp, 8
fst qword [esp + 0x60]
fstp qword [esp]
call fcn.0043dee0
add esp, 8
test eax, eax
jne 0x45f4cb
mov esi, dword [esp + 0x24]
fld qword [esp + 0x58]
mov dx, word [esi + 8]
fstp qword [esi]
mov eax, 0xbe08
and dx, ax
mov al, byte [esp + 0x2c]
or al, byte [esp + 0x30]
or dx, 8
mov word [esi + 8], dx
test al, 8
jne case.0x45ea1b.62
cmp byte [esp + 0x47], 0
jne case.0x45ea1b.62
call fcn.00456ea0
jmp case.0x45ea1b.62
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x24]
call fcn.00457090
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
test eax, eax
je case.0x45ea1b.62
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
push 0
push 0
lea eax, [edx + ecx*8]
call fcn.004570f0
add esp, 8
jmp case.0x45ea1b.62
movzx ebx, byte [ebp + 3]
mov esi, dword [esp + 0x1c]
lea eax, [ebx*4 + 0x1c]
push 0
push eax
call fcn.0043ba30
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x463526
mov dword [ecx], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x3c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x1a], bl
mov byte [ebp + 1], 0xec
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x24
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x20]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [esp + 0x24], edi
cmp dword [esi], edi
je 0x45f59a
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x45f59a
lea edx, [esi + ecx*4 + 0x1c]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x45f585
mov eax, dword [esi]
mov cx, word [eax + 8]
mov ebx, dword [esp + 0x1c]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [eax + 8], cx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov byte [esi + 0x19], 0
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
movzx ecx, byte [esi + 0x1a]
mov edx, dword [esi + 4]
mov edx, dword [edx + 0xc]
lea eax, [esi + 0x1c]
push eax
push ecx
push esi
call edx
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
je 0x45f632
cmp dword [esi + 0x14], 0
je 0x45f61d
mov edx, dword [esi]
push edx
call fcn.0045c530
mov edi, dword [esp + 0x18]
add esp, 4
push eax
push 0x533a98
call fcn.00457c70
mov eax, dword [esi + 0x14]
mov edi, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.0045a5c0
add esp, 0xc
test byte [edi + 8], 0x12
je case.0x45ea1b.62
movzx ecx, byte [esp + 0x48]
mov eax, dword [esi]
call fcn.00456810
mov ecx, dword [esi]
call fcn.00457240
test eax, eax
jne 0x462a17
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [edx + ecx*8]
lea ecx, [edx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [esp + 0x24], eax
test dl, 1
je 0x45f694
call fcn.00457090
jmp case.0x45ea1b.62
call fcn.00456de0
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.00456de0
mov esi, eax
mov al, byte [ebp]
cmp al, 0x55
jne 0x45f6b6
and ebx, esi
and edi, edx
jmp 0x45f786
cmp al, 0x56
jne 0x45f6c3
or ebx, esi
or edi, edx
jmp 0x45f786
mov ecx, esi
or ecx, edx
je 0x45f786
test edx, edx
jg 0x45f6fb
jl 0x45f6d7
test esi, esi
jae 0x45f6f0
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x45f6fb
jg 0x45f6e9
cmp esi, 0xffffffc0
jbe 0x45f6fb
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x45f71c
jg 0x45f6fb
cmp esi, 0x40
jb 0x45f71c
test edi, edi
jg 0x45f713
jl 0x45f705
test ebx, ebx
jae 0x45f713
cmp al, 0x57
je 0x45f713
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x45f786
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x45f786
cmp al, 0x57
mov edx, edi
mov ecx, esi
mov eax, ebx
jne 0x45f73b
call fcn.00528330
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
jmp 0x45f778
call fcn.00525e90
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
test edi, edi
jg 0x45f778
jl 0x45f758
test ebx, ebx
jae 0x45f778
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00528330
or dword [esp + 0xa0], eax
or dword [esp + 0xa4], edx
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0x24]
mov dx, word [eax + 8]
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov dword [eax], ebx
mov dword [eax + 4], edi
mov word [eax + 8], dx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [eax + edx*8]
call fcn.00456f10
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
movzx eax, word [edx + ecx*8 + 8]
lea edi, [edx + ecx*8]
test al, 4
jne 0x45f819
test al, 8
jne 0x45f7f3
test al, 2
je 0x45f7fa
push esi
mov eax, edi
call fcn.0045e740
add esp, 4
jmp 0x45f7fa
mov esi, edi
call fcn.00456ea0
movzx eax, word [edi + 8]
test al, 4
jne 0x45f819
cmp dword [ebp + 8], 0
jne 0x4632f3
mov dword [esp + 0x18], 0x14
jmp 0x461557
and eax, 0xbe04
or eax, 4
mov word [edi + 8], ax
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
je case.0x45ea1b.62
call fcn.00456f40
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [eax + edx*8]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x45f882
call fcn.004569f0
mov dl, byte [esp + 0x48]
mov cl, byte [ebp + 8]
push esi
mov dword [esp + 0x1c], eax
call fcn.00456fe0
add esp, 4
jmp case.0x45ea1b.62
mov dl, byte [esp + 0x48]
mov cl, byte [ebp + 8]
push esi
mov dword [esp + 0x1c], 0
call fcn.00456fe0
add esp, 4
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + edx*8]
lea edi, [esi + eax*8]
movzx eax, word [ebx + 8]
movzx ecx, ax
mov dword [esp + 0x28], ecx
movzx ecx, word [edi + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
or cl, dl
test cl, 1
je 0x45f933
mov al, byte [ebp + 3]
test al, al
jns 0x45f8ff
test dl, 1
je 0x45f8f5
mov eax, dword [esp + 0x24]
test al, 1
je 0x45f8f5
test eax, 0x100
jne 0x45f8f5
xor eax, eax
jmp 0x45fa36
mov eax, 1
jmp 0x45fa36
test al, 0x20
je 0x45f926
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov cx, word [esi + edx*8 + 8]
lea eax, [esi + edx*8]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x45ea1b.62
test al, 0x10
jne 0x4632f3
jmp case.0x45ea1b.62
mov cl, byte [ebp + 3]
and cl, 0x47
cmp cl, 0x43
jl 0x45f96b
and al, 0xe
cmp al, 2
jne 0x45f950
push 0
mov eax, ebx
call fcn.0045e740
add esp, 4
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x45f9de
push 0
mov eax, edi
call fcn.0045e740
add esp, 4
jmp 0x45f9de
cmp cl, 0x42
jne 0x45f9de
test al, 2
jne 0x45f9a5
test al, 0xc
je 0x45f9a5
mov ecx, dword [esp + 0x48]
push 1
push ecx
mov esi, ebx
call fcn.00456ab0
mov dx, word [ebx + 8]
xor dx, word [esp + 0x30]
mov eax, 0x1ff
and dx, ax
add esp, 8
xor dx, word [ebx + 8]
movzx ecx, dx
mov dword [esp + 0x28], ecx
movzx eax, word [edi + 8]
test al, 2
jne 0x45f9de
test al, 0xc
je 0x45f9de
mov edx, dword [esp + 0x48]
push 1
push edx
mov esi, edi
call fcn.00456ab0
mov ax, word [edi + 8]
xor ax, word [esp + 0x2c]
mov ecx, 0x1ff
and ax, cx
add esp, 8
xor ax, word [edi + 8]
movzx edx, ax
mov dword [esp + 0x24], edx
mov eax, 0x4000
test word [ebx + 8], ax
je 0x45f9f8
mov esi, ebx
call fcn.004569f0
and dword [esp + 0x28], 0xbfff
mov ecx, 0x4000
test word [edi + 8], cx
je 0x45fa12
mov esi, edi
call fcn.004569f0
and dword [esp + 0x24], 0xbfff
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0x41], 0
jne 0x463526
mov edx, dword [ebp + 0x10]
push edi
mov eax, ebx
call fcn.0045b2a0
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
add esp, 4
movzx ecx, byte [ebp]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x45fa42
jmp dword [ecx*4 + 0x46381c]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x45fa7d
xor ecx, ecx
test eax, eax
setne cl
jmp 0x45fa7d
xor ecx, ecx
test eax, eax
setl cl
jmp 0x45fa7d
xor ecx, ecx
test eax, eax
setle cl
jmp 0x45fa7d
xor ecx, ecx
test eax, eax
setg cl
jmp 0x45fa7d
xor ecx, ecx
test eax, eax
setge cl
mov word [ebx + 8], dx
mov dx, word [esp + 0x24]
mov word [edi + 8], dx
test byte [ebp + 3], 0x20
mov eax, ecx
je 0x45fd8d
mov ecx, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
mov dx, word [esi + ecx*8 + 8]
lea ecx, [esi + ecx*8]
mov esi, 0xbe04
and dx, si
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x90], eax
jmp case.0x45ea1b.62
test byte [ebp + 3], 1
jne 0x45fadf
xor edx, edx
mov dword [esp + 0x90], edx
jmp 0x45fae6
mov edx, dword [esp + 0x90]
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x58], esi
xor esi, esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x2c], eax
test ecx, ecx
jle 0x45fb97
mov edi, dword [esp + 0x20]
lea ecx, [eax + 0x14]
mov dword [esp + 0x34], ecx
jmp 0x45fb2b
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x2c]
test edx, edx
je 0x45fb34
mov ecx, dword [edx + esi*4]
jmp 0x45fb36
mov ecx, esi
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + esi]
mov edx, dword [esp + 0x34]
mov edx, dword [edx]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
add eax, ecx
add ecx, ebx
lea ecx, [ecx + ecx*4]
lea eax, [eax + eax*4]
lea ecx, [edi + ecx*8]
lea eax, [edi + eax*8]
push ecx
call fcn.0045b2a0
add esp, 4
mov dword [esp + 0xb8], eax
test eax, eax
jne 0x45fb87
add dword [esp + 0x34], 4
inc esi
cmp esi, dword [esp + 0x7c]
jl 0x45fb20
mov dword [esp + 0x90], eax
jmp case.0x45ea1b.62
cmp dword [esp + 0x40], 0
je 0x45fb97
neg eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x90], 0
jmp case.0x45ea1b.62
mov eax, dword [esp + 0xb8]
test eax, eax
jge 0x45fbc6
mov ebp, dword [ebp + 4]
mov eax, dword [esp + 0x3c]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
jmp case.0x45ea1b.62
je 0x4632f3
mov ebp, dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 1
lea ecx, [ebx + edx*8]
je 0x45fbfb
mov edi, 2
jmp 0x45fc0a
call fcn.00456de0
or eax, edx
je 0x45fc08
mov edi, esi
jmp 0x45fc0a
xor edi, edi
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea ecx, [ebx + eax*8]
je 0x45fc21
mov eax, 2
jmp 0x45fc30
call fcn.00456de0
or eax, edx
je 0x45fc2e
mov eax, esi
jmp 0x45fc30
xor eax, eax
cmp byte [ebp], 0x48
jne 0x45fc43
lea ecx, [eax + edi*2]
movzx eax, byte [edi + ecx + 0x538fd0]
jmp 0x45fc4e
lea edx, [eax + edi*2]
movzx eax, byte [edi + edx + 0x538fdc]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
cmp eax, 2
jne 0x45fc74
mov dx, word [ecx + 8]
mov eax, 0xbe01
and dx, ax
or dx, si
mov word [ecx + 8], dx
jmp case.0x45ea1b.62
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 8]
mov dword [ecx], eax
mov eax, 0xbe04
and dx, ax
or dx, 4
mov word [ecx + 8], dx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea ebx, [edi + ecx*8]
lea edi, [edi + edx*8]
mov eax, edi
call fcn.00457090
test byte [ebx + 8], 1
jne case.0x45ea1b.62
mov eax, 4
mov ecx, ebx
mov word [edi + 8], ax
call fcn.00456de0
or eax, edx
jne 0x45fcdb
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x45ea1b.62
xor eax, eax
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.00457090
test byte [edi + 8], 1
jne case.0x45ea1b.62
mov ecx, 4
mov word [esi + 8], cx
mov ecx, edi
call fcn.00456de0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x45ea1b.62
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc8]
mov ecx, dword [ebp + 4]
add eax, ecx
cmp byte [eax], 0
jne 0x4632f3
mov byte [eax], 1
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
test byte [eax + edx*8 + 8], 1
lea eax, [eax + edx*8]
je 0x45fd66
mov eax, dword [ebp + 0xc]
jmp 0x45fd8d
call fcn.00456e50
fcomp qword [0x54db70]
fnstsw ax
test ah, 0x44
jnp 0x45fd7c
mov eax, esi
jmp 0x45fd7e
xor eax, eax
cmp byte [ebp], 0x2e
jne 0x45fd8d
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
test byte [eax + edx*8 + 8], 1
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea esi, [edx + ecx*8]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov edi, dword [edx + eax*4]
mov eax, dword [edi + 0x50]
mov ebx, dword [edi]
mov dword [esp + 0x24], eax
mov eax, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x40], ebx
call fcn.0045ab20
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
mov ecx, dword [edi + 0x3c]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0x48]
je 0x45ff65
cmp byte [edi + 0x19], al
je 0x45fe61
test ebx, ebx
jne 0x45fe55
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 0xc]
lea eax, [ecx + eax*8]
mov dword [edi + 0x44], edx
mov dword [edi + 0x40], edx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x98], edx
mov dword [edi + 0x4c], eax
jmp 0x45fee5
mov eax, esi
call fcn.00457090
jmp 0x460223
test byte [edi + 0x1c], 4
mov eax, ebx
jne 0x45fe9f
call fcn.0044f870
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x108], ecx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x10c], edx
lea esi, [esp + 0x98]
mov edx, ebx
call fcn.0044fdb0
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0x108]
mov dword [edi + 0x40], eax
jmp 0x45febb
call fcn.0044f870
mov ecx, dword [ebx + 0x1c]
lea esi, [esp + 0x98]
mov edx, ebx
mov dword [edi + 0x40], ecx
call fcn.0044fdb0
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x40]
mov ecx, dword [esp + 0x98]
cmp eax, ecx
ja 0x45fece
mov dword [edi + 0x44], eax
jmp 0x45fed1
mov dword [edi + 0x44], ecx
mov ebx, dword [esp + 0x1c]
cmp eax, dword [ebx + 0x58]
ja 0x462a17
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x48]
mov dword [edi + 0x3c], ecx
mov ecx, dword [edi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x45ff09
movzx eax, al
mov dword [esp + 0x8c], eax
mov ecx, 1
jmp 0x45ff26
lea esi, [esp + 0x8c]
call fcn.0043ef40
mov edx, dword [esp + 0x98]
movzx ecx, al
mov eax, dword [esp + 0x8c]
movzx ecx, cl
mov dword [edi + 0x48], ecx
xor ecx, ecx
mov word [edi + 0x16], cx
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp eax, 0x18003
ja 0x45ff52
cmp eax, dword [edi + 0x40]
ja 0x45ff52
cmp edx, eax
jae 0x45ff73
xor eax, eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x44], eax
jmp 0x45ff73
mov eax, 0x1231a
call fcn.004a9dd0
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
movzx edx, word [edi + 0x16]
cmp edx, dword [esp + 0x34]
jg 0x460147
mov eax, dword [edi + 0x48]
mov ecx, dword [esp + 0x24]
cmp eax, dword [ecx]
jae 0x460112
mov eax, dword [edi + 0x4c]
test eax, eax
jne 0x460007
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov eax, dword [edi + 0x1c]
shr eax, 2
not eax
lea edx, [esp + 0x180]
push edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x44]
and eax, 1
push eax
push edx
xor eax, eax
call fcn.00457680
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne case.0x45ea1b.62
mov eax, dword [esp + 0x190]
movzx ebx, word [edi + 0x16]
mov esi, dword [edi + 0x48]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + ebx*4]
add esi, dword [esp + 0x50]
mov eax, dword [eax]
add eax, dword [esp + 0x50]
lea edx, [edi + ebx*4 + 0x54]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], edx
lea ebx, [ebx]
mov al, byte [esi]
cmp al, 0x80
jae 0x460057
movzx eax, al
inc esi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x38], esi
jmp 0x460080
mov ecx, dword [esp + 0x38]
lea esi, [esp + 0xbc]
call fcn.0043ef40
mov ecx, dword [esp + 0x8c]
movzx eax, al
add dword [esp + 0x38], eax
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
mov dword [edx], eax
call fcn.0045ac50
add ecx, eax
mov dword [esp + 0x8c], ecx
cmp ecx, eax
jb 0x4600b3
add dword [esp + 0x4c], 4
mov eax, dword [esp + 0x24]
inc ebx
cmp ebx, dword [esp + 0x34]
mov dword [eax + ebx*4], ecx
jg 0x4600b8
cmp esi, dword [esp + 0x30]
jb 0x460040
jmp 0x4600b8
mov esi, dword [esp + 0x30]
inc esi
mov edx, esi
sub edx, dword [esp + 0x50]
cmp dword [edi + 0x4c], 0
mov word [edi + 0x16], bx
mov dword [edi + 0x48], edx
jne 0x4600eb
lea eax, [esp + 0x180]
call fcn.00456d60
mov ecx, dword [esp + 0x8c]
mov eax, 1
mov word [esp + 0x188], ax
mov eax, dword [esp + 0x30]
cmp esi, eax
jb 0x4600fa
ja 0x4600ff
cmp ecx, dword [edi + 0x40]
jne 0x4600ff
cmp ecx, dword [edi + 0x40]
jbe 0x460112
mov eax, 0x1236e
call fcn.004a9dd0
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
movzx ecx, word [edi + 0x16]
cmp ecx, dword [esp + 0x34]
jg 0x460147
cmp byte [ebp + 1], 0xf8
mov eax, dword [esp + 0x28]
jne 0x46013d
mov edx, dword [ebp + 0x10]
push 0x800
push edx
push eax
call fcn.00457290
add esp, 0xc
jmp 0x46021f
call fcn.00457090
jmp 0x46021f
mov esi, dword [esp + 0x28]
mov ecx, 0x2460
test word [esi + 8], cx
je 0x46015d
mov eax, esi
call fcn.00457090
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0x44]
mov eax, dword [esp + 0x24]
mov ebx, dword [edi + edx*4 + 0x54]
mov dword [esp + 0xbc], ebx
cmp ecx, dword [eax + edx*4 + 4]
jb 0x46018f
mov ecx, dword [edi + 0x4c]
add ecx, dword [eax + edx*4]
push esi
mov edx, ebx
call fcn.0045ad80
add esp, 4
jmp 0x460218
mov al, byte [ebp + 3]
test al, 0xc0
je 0x4601a4
cmp ebx, 0xc
jb 0x4601a0
test bl, 1
je 0x4601af
test al, al
js 0x4601af
mov eax, ebx
call fcn.0045ac50
test eax, eax
jne 0x4601d0
mov edx, 0xd
cmp edx, ebx
sbb ecx, ecx
not ecx
lea eax, [esp + 0x108]
push esi
and ecx, eax
mov edx, ebx
call fcn.0045ad80
add esp, 4
jmp 0x460218
mov ecx, dword [edi + 0x1c]
shr ecx, 2
not ecx
and ecx, 1
push esi
push ecx
mov ecx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edx*4]
call fcn.00457680
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne case.0x45ea1b.62
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
push esi
mov edx, ebx
call fcn.0045ad80
mov ecx, 0xefff
add esp, 4
and word [esi + 8], cx
mov dl, byte [esp + 0x48]
mov byte [esi + 0xa], dl
mov esi, dword [esp + 0x28]
movzx eax, word [esi + 8]
test eax, 0x1000
je case.0x45ea1b.62
mov edx, dword [esi + 0x10]
mov dword [esp + 0x2c], edx
test edx, edx
je case.0x45ea1b.62
mov ebx, dword [esi + 0xc]
mov edi, eax
lea ecx, [ebx + 2]
and edi, 0x12
cmp dword [esi + 0x18], ecx
jge 0x460298
push esi
xor eax, eax
call fcn.00456830
add esp, 4
test eax, eax
jne 0x463526
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
push ebx
push edx
mov edx, dword [esi + 0x10]
push edx
call fcn.00510c60
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
mov ecx, dword [esi + 0x10]
add esp, 0xc
or edi, 0x200
mov byte [ebx + ecx + 1], 0
mov word [esi + 8], di
jmp case.0x45ea1b.62
mov ecx, dword [esi + 0x14]
and eax, 0xd
mov dword [esi + 0x10], ecx
mov word [esi + 8], ax
jmp 0x46026c
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ebx, [eax + edx*8]
mov al, byte [edi]
test al, al
je case.0x45ea1b.62
mov esi, dword [esp + 0x48]
push esi
mov ecx, ebx
inc edi
call fcn.0045e7c0
mov al, byte [edi]
add esp, 4
add ebx, 0x28
test al, al
jne 0x4602c5
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov esi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + edx*8]
lea eax, [edx + eax*8 - 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x57]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
xor edi, edi
lea eax, [eax + eax*4]
xor ebx, ebx
lea ecx, [ecx + eax*8]
mov dword [esp + 0x28], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], ecx
test esi, esi
je 0x46035e
mov al, byte [esi]
mov dword [esp + 0x30], edx
lea ebx, [ebx]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
push edx
call fcn.0045e7c0
mov al, byte [esi + 1]
add dword [esp + 0x34], 0x28
inc esi
add esp, 4
test al, al
jne 0x460340
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
push eax
mov edx, esi
call fcn.0045ab60
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esi + 0x1c], eax
call fcn.0045ac50
mov ecx, 0x4000
mov dword [esp + 0x30], eax
test word [esi + 8], cx
je 0x4603b8
mov edx, ebx
or edx, edi
je 0x4603a1
call fcn.004569f0
test eax, eax
jne 0x463526
jmp 0x4603b8
mov eax, dword [esi]
cdq
add dword [esp + 0xa8], eax
mov eax, dword [esi]
adc dword [esp + 0xac], edx
sub dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cdq
add ebx, eax
adc edi, edx
cmp dword [esp + 0x34], 0x7f
ja 0x4603cf
mov eax, 1
jmp 0x4603de
mov eax, dword [esp + 0x34]
push 0
push eax
call fcn.0043efc0
add esp, 8
add dword [esp + 0x28], eax
sub esi, 0x28
cmp esi, dword [esp + 0x40]
jae 0x460362
cmp dword [esp + 0x28], 0x7e
jg 0x4603fc
inc dword [esp + 0x28]
jmp 0x46042c
mov esi, dword [esp + 0x28]
mov eax, esi
cdq
push edx
push eax
call fcn.0043efc0
add esi, eax
mov dword [esp + 0x34], eax
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x38], esi
call fcn.0043efc0
add esp, 0x10
cmp dword [esp + 0x2c], eax
jge 0x46042c
inc esi
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
cdq
add ebx, eax
adc edi, edx
mov esi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x118], eax
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x138], esi
add esi, dword [esp + 0xa8]
mov ecx, edi
adc ecx, dword [esp + 0xac]
mov dword [esp + 0x11c], edx
cdq
cmp ecx, edx
jg 0x462a17
jl 0x460476
cmp esi, eax
ja 0x462a17
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x18], ecx
jge 0x4604c8
push eax
xor eax, eax
call fcn.00456830
add esp, 4
test eax, eax
jne 0x463526
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov esi, dword [eax + 0x10]
mov dword [esp + 0x4c], esi
cmp ebx, 0x80
jae 0x4604d5
mov eax, 1
movzx eax, al
mov byte [esi], bl
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x30], eax
jmp 0x460508
mov ecx, dword [eax + 0x14]
and word [eax + 8], 0xd
mov dword [eax + 0x10], ecx
jmp 0x46049d
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
push edx
push eax
call fcn.0043ed70
movzx eax, al
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x48]
add esp, 8
mov dword [esp + 0x30], eax
jmp 0x460508
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x34], ecx
cmp ecx, 0x80
jae 0x460521
mov byte [eax + esi], cl
mov eax, 1
jmp 0x460532
push 0
push ecx
add esi, eax
call fcn.0043ed70
mov ecx, dword [esp + 0x3c]
add esp, 8
mov esi, dword [esp + 0x50]
movzx edx, al
mov eax, dword [esp + 0x4c]
add dword [esp + 0x30], edx
lea edi, [esi + eax]
mov eax, ebx
call fcn.0045ac70
add esi, eax
add ebx, 0x28
mov dword [esp + 0x50], esi
cmp ebx, dword [esp + 0x38]
jbe 0x460500
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x24]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xa8]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [esp + 0xac]
je 0x46058e
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov byte [eax + 0xa], 1
jmp case.0x45ea1b.62
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
xor ecx, ecx
lea edx, [esp + 0xd8]
push edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], ecx
call fcn.00454330
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
add esp, 4
test word [eax + 8], dx
je 0x4605fe
call fcn.0045e8d0
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x45ea1b.62
mov edx, dword [esp + 0xd8]
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [esp + 0xdc]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x45ea1b.62
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
test ecx, ecx
jne 0x4606f1
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x9c], ecx
jle 0x46064b
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x460760
call fcn.0043df20
mov edx, dword [esi + 0x1f4]
add edx, dword [esi + 0x1f0]
mov edi, eax
push edx
push 0
push esi
call fcn.00499030
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
lea eax, [edi + 0x21]
push 0
push eax
call fcn.0043ba30
mov ebx, eax
add esp, 8
test ebx, ebx
je case.0x45ea1b.62
mov ecx, dword [esp + 0x30]
inc edi
push edi
lea eax, [ebx + 0x20]
push ecx
push eax
mov dword [ebx], eax
call fcn.00510c60
add esp, 0xc
cmp byte [esi + 0x3f], 0
je 0x4606b3
mov byte [esi + 0x3f], 0
mov byte [esi + 0x46], 1
jmp 0x4606b9
inc dword [esi + 0x1f0]
mov edx, dword [esi + 0x1e8]
mov dword [ebx + 0x18], edx
mov eax, dword [esi + 0x1f8]
mov dword [esi + 0x1e8], ebx
mov dword [ebx + 8], eax
mov ecx, dword [esi + 0x1fc]
mov dword [ebx + 0xc], ecx
mov edx, dword [esi + 0x200]
mov dword [ebx + 0x10], edx
mov eax, dword [esi + 0x204]
mov dword [ebx + 0x14], eax
jmp case.0x45ea1b.62
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x1e8]
xor edi, edi
test esi, esi
je 0x46071d
mov ecx, dword [esp + 0x30]
mov edx, dword [esi]
push ecx
push edx
call fcn.0043e190
add esp, 8
test eax, eax
je 0x460740
mov esi, dword [esi + 0x18]
inc edi
test esi, esi
jne 0x460701
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
push eax
push str.no_such_savepoint:__s
call fcn.00457c70
add esp, 8
mov dword [esp + 0x18], 1
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x38]
xor ecx, ecx
cmp dword [ebx + 0x9c], ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], edi
jle 0x460779
cmp eax, 1
jne 0x460779
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edi, dword [esp + 0x18]
call fcn.00457c70
add esp, 4
mov dword [esp + 0x18], 5
jmp case.0x45ea1b.62
cmp dword [esi + 0x18], ecx
jne 0x4607ce
cmp byte [ebx + 0x46], 0
je 0x4607ce
mov dword [esp + 0x4c], 1
cmp eax, 1
jne 0x4607d2
push eax
mov eax, dword [esp + 0x18]
call fcn.0045a0c0
mov esi, eax
add esp, 4
test esi, esi
jne 0x462374
mov edi, dword [esp + 0x14]
mov byte [ebx + 0x3f], 1
call fcn.0045a130
cmp eax, 5
je 0x4633cf
mov byte [ebx + 0x46], 0
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x18], ecx
jmp 0x4608af
mov dword [esp + 0x4c], ecx
mov edx, dword [ebx + 0x1f0]
sub edx, edi
dec edx
mov dword [esp + 0x24], edx
cmp eax, 2
jne 0x46084b
mov eax, dword [ebx + 0x18]
shr eax, 1
and eax, 1
cmp dword [ebx + 0x14], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
jle 0x46084f
xor eax, eax
cmp dword [esp + 0x30], eax
sete al
xor edi, edi
mov dword [esp + 0x2c], eax
jmp 0x460810
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx + 0x10]
mov eax, dword [edi + edx + 4]
push ecx
push 0x204
push eax
call fcn.0044f360
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
mov eax, dword [esp + 0x28]
inc eax
add edi, 0x10
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x28], eax
jl 0x460810
xor ecx, ecx
jmp 0x46084f
mov dword [esp + 0x30], ecx
cmp dword [ebx + 0x14], ecx
mov dword [esp + 0x28], ecx
jle 0x460896
xor edi, edi
lea ebx, [ebx]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 0x10]
mov eax, dword [edi + eax + 4]
push ecx
push edx
call fcn.0044f5c0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
mov eax, dword [esp + 0x28]
inc eax
add edi, 0x10
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x28], eax
jl 0x460860
cmp dword [esp + 0x30], 0
je 0x4608b3
mov eax, ebx
call fcn.0045c040
mov esi, ebx
call fcn.00473740
or dword [ebx + 0x18], 2
mov esi, dword [esp + 0x34]
or edi, 0xffffffff
cmp dword [ebx + 0x1e8], esi
je 0x4608e4
mov edi, edi
mov eax, dword [ebx + 0x1e8]
mov ecx, dword [eax + 0x18]
mov dword [ebx + 0x1e8], ecx
mov ecx, ebx
call fcn.0043b7d0
add dword [ebx + 0x1f0], edi
cmp dword [ebx + 0x1e8], esi
jne 0x4608c0
cmp dword [esp + 0x38], 1
jne 0x460910
mov edx, dword [esi + 0x18]
mov eax, esi
mov ecx, ebx
mov dword [ebx + 0x1e8], edx
call fcn.0043b7d0
cmp dword [esp + 0x4c], 0
jne case.0x45ea1b.62
add dword [ebx + 0x1f0], edi
jmp 0x460946
cmp dword [esp + 0x4c], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1f8], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0x1fc], ecx
mov edx, dword [esi + 0x10]
mov dword [ebx + 0x200], edx
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x204], eax
je 0x460946
cmp dword [esp + 0x38], 2
jne case.0x45ea1b.62
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
push ecx
push edx
push ebx
call fcn.00499030
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x460998
cmp byte [ebx + 0x3f], 0
jne 0x460998
test ecx, ecx
jne 0x460998
cmp dword [ebx + 0x9c], ecx
jle 0x460998
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x460760
movzx edx, byte [ebx + 0x3f]
cmp eax, edx
jne 0x4633fa
test eax, eax
jne 0x4609c3
mov edi, dword [esp + 0x14]
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
call fcn.00457c70
add esp, 4
mov dword [esp + 0x18], esi
jmp case.0x45ea1b.62
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x4609d1
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [esp + 0x14]
push eax
call fcn.00457c70
add esp, 4
mov dword [esp + 0x18], esi
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x1c]
test eax, eax
je 0x4609ff
test dword [ebx + 0x18], 0x2000000
jne 0x46348a
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x10]
shl ecx, 4
mov esi, dword [ecx + edx + 4]
test esi, esi
je 0x460afc
push eax
push esi
call fcn.0044e5d0
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, 5
je 0x463497
test eax, eax
jne 0x461557
mov edi, dword [esp + 0x14]
cmp dword [ebp + 8], eax
je 0x460acf
test byte [edi + 0x58], 0x20
je 0x460acf
cmp byte [ebx + 0x3f], al
je 0x460a58
cmp dword [ebx + 0x98], 1
jle 0x460acf
cmp dword [edi + 0x68], 0
jne 0x460a75
inc dword [ebx + 0x1f4]
mov eax, dword [ebx + 0x1f4]
mov ecx, dword [ebx + 0x1f0]
add ecx, eax
mov dword [edi + 0x68], ecx
mov edx, dword [edi + 0x68]
dec edx
push edx
push 0
push ebx
call fcn.00499030
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x460a9f
mov eax, dword [edi + 0x68]
push eax
mov eax, esi
call fcn.0044f560
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, dword [ebx + 0x1f8]
mov dword [edi + 0x98], ecx
mov edx, dword [ebx + 0x1fc]
mov dword [edi + 0x9c], edx
mov eax, dword [ebx + 0x200]
mov dword [edi + 0xa0], eax
mov ecx, dword [ebx + 0x204]
mov dword [edi + 0xa4], ecx
lea edx, [esp + 0xd4]
push edx
push 1
mov eax, esi
call fcn.00454260
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x10]
mov esi, dword [esp + 0xdc]
add esp, 8
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x460b0b
mov edi, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0xd4], esi
xor eax, eax
cmp byte [ebp + 3], 0
je case.0x45ea1b.62
cmp esi, dword [ebp + 0xc]
jne 0x460b23
cmp eax, dword [ebp + 0x10]
je case.0x45ea1b.62
mov eax, dword [edi + 0x2c]
mov ecx, ebx
call fcn.0043b7d0
push str.database_schema_has_changed
push ebx
call fcn.0043bc00
mov dword [edi + 0x2c], eax
mov eax, dword [ebp + 4]
mov edx, dword [ebx + 0x10]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
add esp, 8
cmp dword [ecx], esi
je 0x460b5e
mov esi, eax
mov edi, ebx
call fcn.00473710
mov edi, dword [esp + 0x14]
or dword [edi + 0x58], 8
mov dword [esp + 0x18], 0x11
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x114]
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
call fcn.00454260
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
mov ecx, 0x2460
add esp, 8
test word [eax + 8], cx
je 0x460bc8
call fcn.0045e8d0
mov ecx, eax
mov eax, dword [esp + 0x114]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x45ea1b.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, eax
mov eax, dword [esp + 0x114]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
shl edi, 4
add edi, dword [ebx + 0x10]
lea esi, [ecx + eax*8]
call fcn.00456f10
mov edx, dword [esi]
mov eax, dword [ebp + 8]
push edx
push eax
mov eax, dword [edi + 4]
call fcn.004542c0
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 1
jne 0x460c2f
mov ecx, dword [edi + 0xc]
mov edx, dword [esi]
mov dword [ecx], edx
or dword [ebx + 0x18], 2
jmp 0x460c3c
cmp eax, 2
jne 0x460c3c
mov eax, dword [edi + 0xc]
mov cl, byte [esi]
mov byte [eax + 0x4c], cl
cmp dword [ebp + 4], 1
jne case.0x45ea1b.62
mov eax, ebx
call fcn.0045c040
mov eax, dword [esp + 0x14]
and dword [eax + 0x58], 0xfffffff7
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + edx*4]
test esi, esi
je case.0x45ea1b.54
mov edx, dword [esi + 0x20]
cmp edx, dword [ebp + 8]
je 0x460d80
mov eax, dword [esp + 0x14]
test byte [eax + 0x58], 8
je 0x460c8e
mov dword [esp + 0x18], 0x204
jmp case.0x45ea1b.62
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov eax, esi
shl eax, 4
add eax, dword [edx + 0x10]
xor edi, edi
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x58], edx
cmp cl, 0x37
jne 0x460cd2
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], 1
cmp al, byte [ecx + 0x57]
jae 0x460cda
mov byte [ecx + 0x57], al
jmp 0x460cda
mov dword [esp + 0x30], 0
test byte [ebp + 3], 4
je 0x460cfe
mov edx, dword [esp + 0x20]
lea ecx, [ebx + ebx*4]
lea esi, [edx + ecx*8]
call fcn.00456f10
mov ebx, dword [esi]
cmp ebx, 2
jl 0x4634c0
mov esi, dword [esp + 0x2c]
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x460d18
mov eax, dword [ebp + 0x10]
movzx edi, word [eax + 8]
mov dword [esp + 0x40], eax
movzx eax, word [eax + 6]
add edi, eax
jmp 0x460d1f
cmp al, 0xf2
jne 0x460d1f
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
push 1
push esi
push edi
mov edi, dword [esp + 0x20]
push ecx
call fcn.0045e670
mov esi, eax
add esp, 0x10
test esi, esi
je 0x463526
mov edx, dword [esi]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
or dword [esi + 0x1c], 8
push edx
push edi
push eax
mov eax, ebx
mov byte [esi + 0x19], 1
mov dword [esi + 0x20], ebx
call fcn.0044f710
xor ecx, ecx
add esp, 0xc
mov dword [esi + 8], edi
cmp byte [ebp + 1], 0xfa
mov dword [esp + 0x18], eax
setne cl
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 0x1c]
and ecx, 4
xor dword [esi + 0x1c], ecx
mov dl, byte [ebp + 3]
mov eax, dword [esi]
and dl, 3
mov byte [eax + 0x43], dl
jmp case.0x45ea1b.62
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.0045e670
mov esi, eax
add esp, 0x10
test esi, esi
je 0x463526
or dword [esi + 0x1c], 1
mov edx, dword [esp + 0x1c]
mov byte [esi + 0x19], 1
movzx eax, byte [ebp + 3]
mov ecx, dword [edx]
push 0x41e
or eax, 5
push eax
push 0
lea edi, [esi + 4]
push ecx
mov ecx, edi
call fcn.0044d600
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x460e69
mov edx, dword [edi]
push 1
push edx
call fcn.0044e5d0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x460e69
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x460e4b
movzx eax, byte [ebp + 3]
or eax, 2
push eax
mov eax, dword [edi]
lea ecx, [esp + 0x104]
push ecx
call fcn.00453d40
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x460e45
mov edx, dword [esi]
mov eax, dword [esp + 0x100]
mov ecx, dword [edi]
push edx
push ebx
push 1
mov dword [esi + 8], ebx
call fcn.0044f710
add esp, 0xc
mov dword [esp + 0x18], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x460e69
mov eax, dword [esi]
mov ecx, dword [edi]
push eax
push 0
push 1
mov eax, 1
call fcn.0044f710
add esp, 0xc
or dword [esi + 0x1c], 4
mov dword [esp + 0x18], eax
xor ecx, ecx
cmp byte [ebp + 3], 8
setne cl
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 0x1c]
and ecx, 8
xor dword [esi + 0x1c], ecx
jmp case.0x45ea1b.62
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push esi
push 0xffffffffffffffff
push edx
push eax
call fcn.0045e670
add esp, 0x10
test eax, eax
je 0x463526
mov ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [esp + 0x20]
push edx
push eax
call fcn.00464dc0
add esp, 0xc
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov edi, ecx
add edi, esi
mov esi, edx
adc esi, 0
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], esi
mov eax, ecx
or eax, edx
je 0x4632f3
jmp case.0x45ea1b.62
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
push ecx
push edx
call fcn.0045e670
add esp, 0x10
test eax, eax
je 0x463526
mov byte [eax + 0x19], 1
mov ecx, dword [ebp + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
jmp case.0x45ea1b.62
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x38]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + edx*4]
mov eax, esi
call fcn.004593f0
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x38]
mov dword [edx + ecx*4], 0
jmp case.0x45ea1b.62
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
mov edx, dword [edx + 0x38]
mov edi, dword [edx + ecx*4]
test byte [edi + 0x1c], 4
mov ebx, eax
mov byte [edi + 0x19], 0
je 0x461020
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
and dl, 0xe
cmp dl, 2
jne 0x460f92
push 0
mov eax, esi
call fcn.0045e740
add esp, 4
mov ecx, esi
call fcn.00456de0
mov dword [esp + 0xc8], eax
movzx eax, word [esi + 8]
mov dword [esp + 0xcc], edx
test al, 4
jne 0x460fe0
test al, 8
je 0x4632f3
fild qword [esp + 0xc8]
fcom qword [esi]
fnstsw ax
test ah, 0x41
jne 0x460fd1
fstp st(0)
test bl, 1
jne 0x460fe0
dec ebx
jmp 0x460fe0
fcomp qword [esi]
fnstsw ax
test ah, 5
jp 0x460fe0
test bl, 1
je 0x460fe0
inc ebx
mov ecx, dword [esp + 0xcc]
mov esi, dword [esp + 0xc8]
lea eax, [esp + 0x64]
push eax
mov eax, dword [edi]
push 0
push ecx
push esi
push 0
call fcn.00450100
mov edx, dword [esp + 0xe0]
mov dword [edi + 0x30], esi
xor esi, esi
add esp, 0x14
mov dword [esp + 0x18], eax
mov dword [edi + 0x34], edx
cmp eax, esi
jne 0x461557
jmp 0x461099
mov eax, dword [edi + 8]
mov cx, word [ebp + 0x10]
mov dword [esp + 0x1f0], eax
lea edx, [ebx - 1]
test dl, 1
mov edx, dword [esp + 0x20]
sete al
mov word [esp + 0x1f4], cx
lea eax, [eax + eax - 1]
mov byte [esp + 0x1f6], al
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov eax, 0x4000
mov dword [esp + 0x1f8], esi
test word [esi + 8], ax
je 0x46106e
call fcn.004569f0
mov eax, dword [edi]
lea ecx, [esp + 0x64]
push ecx
push 0
push 0
lea edx, [esp + 0x1fc]
push 0
push edx
call fcn.00450100
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
xor esi, esi
cmp ebx, 0x41
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], esi
mov eax, dword [esp + 0x64]
jl 0x4610d0
cmp eax, esi
jl 0x4610bd
jne 0x4610b4
cmp ebx, 0x42
je 0x4610bd
mov dword [esp + 0x64], esi
jmp case.0x45ea1b.62
lea eax, [esp + 0x64]
mov dword [esp + 0x64], esi
mov ecx, dword [edi]
push eax
push ecx
call fcn.00450610
jmp 0x4610fd
cmp eax, esi
jg 0x4610ec
jne 0x4610db
cmp ebx, 0x3f
je 0x4610ec
mov edx, dword [edi]
xor eax, eax
cmp byte [edx + 0x42], 1
setne al
mov dword [esp + 0x64], eax
jmp 0x46110c
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], esi
mov edx, dword [edi]
push ecx
push edx
call fcn.004507a0
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, esi
jne 0x461557
cmp dword [esp + 0x64], esi
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov ecx, dword [esp + 0x20]
mov byte [esi + 0x19], 0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00456de0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ecx + edx*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
xor edi, edi
cmp dword [ebp + 0x10], edi
lea esi, [eax + edx*8]
mov dword [esp + 0x4c], edi
jle 0x4611d9
mov ecx, dword [ebx + 8]
mov ax, word [ebp + 0x10]
xor edx, edx
mov dword [esp + 0x1c8], ecx
mov word [esp + 0x1cc], ax
mov dword [esp + 0x1d0], esi
cmp dx, ax
jae 0x4611d0
xor esi, esi
mov dword [esp + 0x40], esi
mov ecx, dword [esp + 0x1d0]
add esi, ecx
mov edx, 0x4000
test word [esi + 8], dx
je 0x4611bd
call fcn.004569f0
mov ax, word [esp + 0x1cc]
mov esi, dword [esp + 0x40]
movzx ecx, ax
inc edi
add esi, 0x28
cmp edi, ecx
mov dword [esp + 0x40], esi
jl 0x46119c
lea edi, [esp + 0x1c8]
jmp 0x461224
mov edi, dword [ebx + 8]
lea edx, [esp + 0x4c]
push edx
push 0xbf
lea edx, [esp + 0x248]
call fcn.0045af20
mov edi, eax
add esp, 8
test edi, edi
je 0x463526
mov eax, 0x4000
test word [esi + 8], ax
je 0x46120f
call fcn.004569f0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [ebx + 8]
push edi
push ecx
push edx
push eax
call fcn.0045af80
add esp, 0x10
mov byte [edi + 6], 0
xor esi, esi
cmp byte [ebp], 0x44
jne 0x461258
xor edx, edx
xor ecx, ecx
cmp dx, word [edi + 4]
jae 0x461258
mov eax, dword [edi + 8]
add eax, 8
test byte [eax], 1
jne 0x461253
movzx edx, word [edi + 4]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x461240
jmp 0x461258
mov esi, 1
lea eax, [esp + 0x120]
push eax
mov eax, dword [ebx]
push 0
push 0
push 0
push edi
call fcn.00450100
mov ecx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [esp + 0x60]
add esp, 0x14
mov dword [esp + 0x18], edi
call fcn.0043b7d0
test edi, edi
jne case.0x45ea1b.62
mov ecx, dword [esp + 0x120]
xor eax, eax
test ecx, ecx
mov dword [ebx + 0xc], ecx
sete al
mov cl, 1
sub cl, al
mov byte [ebx + 0x19], cl
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], edi
cmp byte [ebp], 0x46
jne 0x4612be
test eax, eax
jne 0x4632f3
jmp case.0x45ea1b.62
test esi, esi
jne 0x4632f3
test eax, eax
je 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x20]
mov eax, dword [esi]
lea ecx, [ecx + ecx*4]
mov edi, dword [edx + ecx*8]
mov ebx, dword [edx + ecx*8 + 4]
lea edx, [esp + 0x40]
push edx
push 0
push ebx
push edi
push 0
mov dword [esp + 0x54], 0
call fcn.00450100
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x54]
add esp, 0x14
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], ebx
mov byte [esi + 0x19], 0
mov dword [esi + 0x3c], 0
mov byte [esi + 0x1a], 0
mov dword [esi + 0xc], eax
test eax, eax
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46135d
call fcn.0045e8d0
jmp 0x461366
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [ebp + 4]
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], esi
adc dword [eax + 0x2c], 0
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
xor edi, edi
xor ebx, ebx
mov ecx, 0x2460
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x50], edi
test word [eax + 8], cx
je 0x4613c1
call fcn.0045e8d0
jmp 0x4613ca
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 4]
mov esi, dword [edx + eax*4]
test byte [esi + 0x1c], 2
mov dword [esp + 0x34], esi
jne 0x46144b
mov eax, dword [esi]
lea edi, [esp + 0x50]
call fcn.004500b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
cmp dword [esp + 0x50], eax
je 0x461409
lea ebx, [eax + 1]
xor edi, edi
jmp 0x461443
mov edi, dword [esi]
mov eax, edi
call fcn.0044f870
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
cmp edi, 0x7fffffff
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x18], 0
jl 0x46143d
jg 0x461437
cmp ebx, 0xffffffff
jb 0x46143d
or dword [esi + 0x1c], 2
jmp 0x46144b
add ebx, 1
adc edi, 0
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4614dc
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x461484
mov eax, dword [ecx + 4]
test eax, eax
je 0x461479
jmp 0x461470
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x461470
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x46148e
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x20]
lea esi, [edx + ecx*8]
call fcn.00456f10
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x4614a9
cmp ecx, 0x7fffffff
je 0x46154f
mov edx, dword [esp + 0x34]
test byte [edx + 0x1c], 2
jne 0x46154f
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x4614d3
jl 0x4614c7
cmp ebx, eax
jae 0x4614d3
mov ebx, eax
mov edi, ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov dword [esi], ebx
mov dword [esi + 4], edi
mov esi, dword [esp + 0x34]
test byte [esi + 0x1c], 2
je 0x461580
mov dword [esp + 0x40], 0
mov edi, edi
lea eax, [esp + 0x70]
push eax
push 8
call fcn.0043d530
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
mov eax, dword [esi]
lea ecx, [esp + 0x58]
push ecx
and edi, 0x3fffffff
add ebx, 1
adc edi, 0
push 0
push edi
push ebx
push 0
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], edi
call fcn.00450100
add esp, 0x1c
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461580
cmp dword [esp + 0x50], eax
jne 0x461580
mov eax, dword [esp + 0x40]
inc eax
cmp eax, 0x64
mov dword [esp + 0x40], eax
jl 0x4614f0
mov dword [esp + 0x18], 0xd
mov ebx, dword [esp + 0x1c]
cmp byte [ebx + 0x41], 0
je 0x4634d3
mov dword [esp + 0x18], 7
mov ecx, dword [esp + 0x18]
mov eax, str.unknown_error
call fcn.004a80a0
jmp 0x4634fe
mov eax, dword [esp + 0x24]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov dword [eax], ebx
mov dword [eax + 4], edi
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [eax + edx*8]
mov edx, dword [esp + 0x14]
mov ebx, dword [edx + 0x38]
mov ebx, dword [ebx + esi*4]
cmp cl, 0x54
jne 0x4615ce
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
mov esi, dword [eax + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0xe4], eax
jmp 0x4615e1
mov eax, dword [ebp + 0xc]
cdq
mov esi, eax
mov dword [esp + 0xe4], edx
mov eax, edx
mov edx, dword [esp + 0x14]
test byte [ebp + 3], 1
je 0x4615ea
inc dword [edx + 0x5c]
test byte [ebp + 3], 2
je 0x461602
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], eax
mov dword [ecx + 0x20], esi
mov dword [ecx + 0x24], eax
movzx eax, word [edi + 8]
test al, 1
je 0x461612
xor ecx, ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], ecx
mov dl, byte [ebp + 3]
test dl, 0x10
je 0x46161f
mov ecx, dword [ebx + 0xc]
jmp 0x461621
xor ecx, ecx
test eax, 0x4000
je 0x46162c
mov eax, dword [edi]
jmp 0x46162e
xor eax, eax
push ecx
movzx ecx, dl
mov edx, dword [edi + 0xc]
shr ecx, 3
and ecx, 1
push ecx
mov ecx, dword [esp + 0xec]
push eax
mov eax, dword [edi + 0x10]
mov edi, dword [ebx]
push edx
push eax
push ecx
push esi
push 0
call fcn.00453610
add esp, 0x20
mov dword [esp + 0x18], eax
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
test eax, eax
jne case.0x45ea1b.62
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0xd4]
test ecx, ecx
je case.0x45ea1b.62
mov eax, dword [ebp + 0x10]
test eax, eax
je case.0x45ea1b.62
mov edi, dword [esp + 0xe4]
push edi
push esi
mov esi, dword [edx + 0x10]
push eax
movsx eax, byte [ebx + 0x18]
mov edx, dword [edx + 0xd0]
shl eax, 4
mov eax, dword [eax + esi]
push eax
mov al, byte [ebp + 3]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push edx
call ecx
add esp, 0x18
jmp case.0x45ea1b.62
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x38]
mov ebx, dword [ecx + eax*4]
mov edi, dword [ebx]
call fcn.00453840
mov dword [esp + 0x18], eax
mov dword [ebx + 0x3c], 0
test eax, eax
jne 0x46172a
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0xd4]
test edx, edx
je 0x46172a
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x46172a
test byte [ebx + 0x1c], 4
je 0x46172a
mov edi, dword [ebx + 0x34]
push edi
mov edi, dword [ebx + 0x30]
push edi
mov edi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xd0]
push eax
movsx eax, byte [ebx + 0x18]
shl eax, 4
mov eax, dword [eax + edi]
push eax
push 9
push ecx
call edx
add esp, 0x18
test byte [ebp + 8], 1
je case.0x45ea1b.62
inc dword [esi + 0x5c]
jmp case.0x45ea1b.62
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x5c]
mov ecx, dword [esp + 0x1c]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*8]
mov edx, dword [ebp + 0x10]
lea esi, [esp + 0x28]
push esi
push edx
push ecx
mov dword [esp + 0x34], 0
call fcn.00467140
add esp, 0xc
cmp dword [esp + 0x28], 0
mov dword [esp + 0x18], eax
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [eax + edx*8]
mov edx, dword [esi + 0x38]
mov eax, dword [edx + ecx*4]
call fcn.004670a0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [edx + 0x3c], 0
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov edi, dword [eax]
test byte [eax + 0x1c], 4
mov dword [esp + 0x58], eax
mov eax, edi
jne 0x461829
call fcn.0044f870
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x58]
mov ecx, dword [edi + 0x14]
cdq
cmp ecx, edx
jg 0x462a17
jl 0x461824
cmp dword [edi + 0x10], eax
ja 0x462a17
mov ebx, dword [edi + 0x10]
jmp 0x461844
call fcn.0044f870
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
cmp eax, dword [ebx + 0x58]
ja 0x462a17
mov ebx, eax
mov ecx, ebx
cmp ebx, 0x20
ja 0x461850
mov ecx, 0x20
cmp dword [esi + 0x18], ecx
jge 0x4618a8
push esi
xor eax, eax
call fcn.00456830
add esp, 4
test eax, eax
jne 0x463526
mov ax, word [esi + 8]
mov edx, dword [esp + 0x58]
mov ecx, 0xbe10
and ax, cx
or ax, 0x10
mov word [esi + 8], ax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ebx
test byte [edx + 0x1c], 4
jne 0x4618b5
push 0
push eax
push ebx
push edi
xor eax, eax
call fcn.0044fa50
mov dword [esp + 0x28], eax
add esp, 0x10
mov byte [esi + 0xa], 1
jmp case.0x45ea1b.62
mov edx, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], edx
jmp 0x461868
push eax
push ebx
push 0
push edi
call fcn.0044fd60
mov dword [esp + 0x28], eax
add esp, 0x10
mov byte [esi + 0xa], 1
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4618f7
call fcn.0045e8d0
mov edi, eax
mov dword [esp + 0x24], edi
jmp 0x461906
mov edx, 4
mov word [eax + 8], dx
mov dword [esp + 0x24], eax
mov edi, eax
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x38]
mov ebx, dword [ecx + eax*4]
cmp byte [ebx + 0x19], 0
je 0x461923
mov edx, 1
mov word [edi + 8], dx
jmp case.0x45ea1b.62
cmp byte [ebx + 0x1a], 0
je 0x461950
mov eax, dword [ebx + 0x30]
mov dword [esp + 0xc0], eax
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0xc4], ecx
mov ecx, eax
mov dword [edi], ecx
mov edx, dword [esp + 0xc4]
mov dword [edi + 4], edx
jmp case.0x45ea1b.62
cmp dword [ebx + 0x24], 0
je 0x461996
mov ebx, dword [ebx + 0x24]
mov edi, dword [ebx]
mov eax, dword [edi]
mov eax, dword [eax + 0x30]
lea edx, [esp + 0xc0]
push edx
push ebx
call eax
push edi
mov edi, esi
mov dword [esp + 0x24], eax
call fcn.0045c0d0
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0xcc]
mov dword [edi], ecx
mov edx, dword [esp + 0xd0]
add esp, 0xc
mov dword [edi + 4], edx
jmp case.0x45ea1b.62
mov eax, ebx
call fcn.0045ab00
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
cmp byte [ebx + 0x19], al
je 0x4619bc
mov ecx, 1
mov word [edi + 8], cx
jmp case.0x45ea1b.62
mov ebx, dword [ebx]
mov eax, ebx
call fcn.0044f870
mov edx, dword [ebx + 0x10]
mov dword [esp + 0xc0], edx
mov eax, dword [ebx + 0x14]
mov dword [esp + 0xc4], eax
mov ecx, edx
mov dword [edi], ecx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x18], 0
mov dword [edi + 4], edx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je case.0x45ea1b.62
mov esi, eax
call fcn.0044c090
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
xor ebx, ebx
lea edi, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.004500b0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov byte [esi + 0x19], al
mov byte [esi + 0x1a], bl
mov dword [esi + 0x3c], ebx
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0xc], ecx
cmp dword [ebp + 8], ebx
jle case.0x45ea1b.62
cmp eax, ebx
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
add dword [eax + 0x74], esi
jmp 0x461a7a
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + edx*4]
cmp dword [ebx + 0x38], 0
mov dword [esp + 0x34], esi
je 0x461a9a
lea edi, [esp + 0x34]
mov eax, ebx
call fcn.00466fc0
jmp 0x461ac7
mov esi, dword [ebx]
call fcn.0044fe30
xor edi, edi
cmp eax, edi
jne 0x461ac0
cmp byte [esi + 0x42], 0
jne 0x461ab7
mov dword [esp + 0x34], 1
jmp 0x461ac0
mov dword [esp + 0x34], edi
call fcn.0044ff60
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov byte [ebx + 0x19], al
test eax, eax
jne 0x4632f3
jmp case.0x45ea1b.62
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + 0x38]
mov edi, dword [eax + ecx*4]
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0xb4]
push ecx
push ebx
mov eax, edi
mov dword [esp + 0xbc], 0
call fcn.00467020
jmp 0x461b4c
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x38]
cmp dword [ecx + edx*4], 0
je case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov edi, dword [ecx + edx*4]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xb4], edx
mov ecx, dword [edi]
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0xb4]
push eax
push ecx
call edx
mov ebx, dword [esp + 0x24]
add esp, 8
mov dword [edi + 0x3c], 0
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], eax
jne 0x461b8c
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x19], 0
movzx eax, byte [ebp + 3]
add dword [ecx + eax*4 + 0x6c], esi
mov ebp, dword [ebp + 8]
lea eax, [ecx + eax*4 + 0x6c]
mov ecx, dword [esp + 0x3c]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
jmp 0x46228f
mov byte [edi + 0x19], 1
jmp 0x46228f
test byte [ebp + 3], 1
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov eax, dword [ecx + 0x38]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [eax + edx*8]
je 0x461bb8
add dword [ecx + 0x5c], esi
mov ecx, 0x4000
test word [edi + 8], cx
je 0x461bd6
mov esi, edi
call fcn.004569f0
mov dword [esp + 0x18], eax
test eax, eax
jne case.0x45ea1b.62
cmp byte [ebp], 0x6e
jne 0x461bf0
push edi
mov eax, ebx
call fcn.00465e80
add esp, 4
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
test byte [ebp + 3], 0x10
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
je 0x461c01
mov ecx, dword [ebx + 0xc]
jmp 0x461c03
xor ecx, ecx
mov edx, dword [ebp + 0xc]
push ecx
push edx
push 0
push 0
cdq
push 0x5331a8
push edx
push eax
push edi
mov edi, dword [ebx]
call fcn.00453610
add esp, 0x20
mov dword [esp + 0x18], eax
mov dword [ebx + 0x3c], 0
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp + 4]
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov cx, word [ebp + 0xc]
mov dword [esp + 0x1dc], eax
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov word [esp + 0x1e0], cx
lea ecx, [eax + edx*8]
lea edx, [esp + 0x104]
push edx
push 0
push 0
lea eax, [esp + 0x1e8]
push 0
push eax
mov eax, edi
mov byte [esp + 0x1f6], 0
mov dword [esp + 0x1f8], ecx
call fcn.00450100
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461caa
cmp dword [esp + 0x104], eax
jne 0x461caa
call fcn.00453840
mov dword [esp + 0x18], eax
mov dword [esi + 0x3c], 0
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x461cd8
call fcn.0045e8d0
jmp 0x461ce1
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [esi + 0x38]
mov ebx, eax
mov eax, dword [ebp + 4]
mov edi, dword [ecx + eax*4]
mov esi, dword [edi]
mov edx, 1
mov eax, edi
mov word [ebx + 8], dx
call fcn.0045ab00
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461557
cmp byte [edi + 0x19], al
jne case.0x45ea1b.62
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xe8]
push eax
xor edi, edi
push ecx
mov eax, esi
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], edi
call fcn.0045bde0
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, edi
jne 0x461557
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov ecx, 4
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov word [ebx + 8], cx
jmp case.0x45ea1b.62
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 8]
cmp cl, 0x74
sbb cl, cl
mov dword [esp + 0x204], edx
mov dx, word [ebp + 0x10]
mov byte [esp + 0x20a], cl
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x208], dx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea edx, [ecx + edx*8]
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x210], edx
lea edx, [esp + 0x208]
push edx
push eax
mov eax, dword [esp + 0x28]
push eax
mov dword [esp + 0x40], 0
call fcn.0045bf30
add esp, 0x10
test byte [ebp], 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
jne 0x461ddf
neg eax
jmp 0x461de1
add eax, esi
test eax, eax
jg 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x461e10
call fcn.0045e8d0
jmp 0x461e19
mov edx, 4
mov word [eax + 8], dx
mov edi, eax
mov eax, esi
mov word [edi + 8], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xa4]
add ecx, esi
cmp dword [eax + 0x98], ecx
jle 0x461e46
mov dword [esp + 0x18], 6
mov byte [ebx + 0x56], 2
jmp case.0x45ea1b.62
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0x7c]
push edx
mov edx, ebx
shl edx, 4
mov eax, dword [edx + eax + 4]
push ecx
mov dword [esp + 0x84], 0
call fcn.00454210
mov esi, dword [esp + 0x84]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [esp + 0x18], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne case.0x45ea1b.62
test esi, esi
je case.0x45ea1b.62
mov edi, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov eax, ebx
call fcn.00475e20
inc bl
mov byte [esp + 0x57], bl
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
neg eax
sbb eax, eax
lea ecx, [esp + 0x58]
and eax, ecx
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 8]
push edx
mov edx, dword [ecx + 0x10]
shl eax, 4
mov dword [esp + 0x60], 0
mov eax, dword [eax + edx + 4]
call fcn.00453f40
add esp, 8
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x18], eax
je case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
add dword [ecx + 0x5c], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle case.0x45ea1b.62
mov edx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov esi, dword [eax + 0x38]
test esi, esi
je 0x461f4a
mov eax, dword [esp + 0x1c]
push eax
call fcn.00465240
add esp, 4
jmp case.0x45ea1b.62
mov eax, dword [eax]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push ecx
call fcn.00453f40
add esp, 8
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
lea eax, [ecx + edx*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x461f87
call fcn.0045e8d0
jmp 0x461f90
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [edx + 0x10]
xor ecx, ecx
cmp byte [ebp], 0x7a
mov eax, dword [eax + 4]
setne cl
mov dword [esp + 0x2c], 0
inc ecx
push ecx
lea ecx, [esp + 0x30]
push ecx
call fcn.00453d40
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
cdq
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, str.sqlite_temp_master
cmp eax, esi
je 0x461fe6
mov ecx, str.sqlite_master
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add edx, 0x2c
mov dword [esp + 0x12c], edx
mov edx, dword [ebp + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x138], eax
shl eax, 4
mov dword [esp + 0x130], esi
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.0043d310
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x462032
mov dword [esp + 0x18], 7
jmp 0x462088
push 0
lea eax, [esp + 0x12c]
push eax
push fcn.00489050
push edi
push esi
mov byte [esi + 0x91], 1
mov dword [esp + 0x148], 0
call fcn.00484570
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x462074
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x18], ecx
mov ebx, ecx
mov eax, edi
mov ecx, esi
call fcn.0043b7d0
mov byte [esi + 0x91], 0
test ebx, ebx
je 0x46208d
call fcn.00473740
cmp dword [esp + 0x18], 7
je 0x463526
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
call fcn.00471c30
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
push edx
call fcn.00473b20
add esp, 4
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 4]
push ecx
call fcn.004734f0
add esp, 8
jmp case.0x45ea1b.62
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
mov eax, dword [ebp + 4]
call fcn.00494eb0
add esp, 8
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
lea ecx, [eax*4 + 4]
push 0
push ecx
mov dword [esp + 0x54], eax
call fcn.0043ba30
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x463526
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
xor esi, esi
cmp dword [esp + 0x4c], esi
lea eax, [ecx + eax*8]
lea edi, [ecx + edx*8]
mov dword [esp + 0x28], eax
jle 0x462168
mov dword [esp + 0x30], eax
lea esp, [esp]
mov ecx, dword [esp + 0x30]
call fcn.00456de0
add dword [esp + 0x30], 0x28
mov dword [ebx + esi*4], eax
inc esi
cmp esi, dword [esp + 0x4c]
jl 0x462150
mov eax, dword [esp + 0x4c]
mov dword [ebx + esi*4], 0
mov edx, dword [edi]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x124]
push ecx
movzx ecx, byte [ebp + 3]
push edx
mov edx, dword [esi + 0x10]
push eax
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push ebx
push eax
call fcn.00454e70
mov dword [esp + 0x40], eax
add esp, 0x14
mov eax, ebx
mov ecx, esi
call fcn.0043b7d0
mov ebx, dword [esp + 0x124]
mov eax, ebx
cdq
sub dword [edi], eax
mov eax, dword [esp + 0x28]
sbb dword [edi + 4], edx
call fcn.00457090
test ebx, ebx
je 0x4621e7
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x463526
mov ecx, dword [esp + 0x28]
push fcn.0043b720
push 1
push eax
or eax, 0xffffffff
call fcn.004573c0
add esp, 0xc
movzx ecx, byte [esp + 0x48]
mov eax, dword [esp + 0x28]
call fcn.00456810
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebp + 8]
lea edi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jne 0x462226
call fcn.00457190
test byte [edi + 8], 0x20
je 0x463526
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov edi, dword [edi]
push ecx
push edx
call fcn.004446a0
add esp, 8
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea edi, [ebx + eax*8]
je 0x4623ba
mov eax, dword [edi]
lea esi, [esp + 0x148]
call fcn.004449b0
test eax, eax
je 0x4623ba
mov ecx, dword [esp + 0x14c]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x148]
push ecx
lea eax, [eax + eax*4]
push edx
lea eax, [ebx + eax*8]
call fcn.004570f0
add esp, 8
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0xf0]
test edx, edx
jne 0x463550
mov esi, dword [ebx + 0x124]
test esi, esi
je case.0x45ea1b.62
mov edi, dword [esp + 0x94]
cmp edi, dword [esp + 0x9c]
jb case.0x45ea1b.62
mov ecx, dword [ebx + 0x12c]
mov eax, edi
div ecx
mov eax, dword [ebx + 0x128]
push eax
sub ecx, edx
add ecx, edi
mov dword [esp + 0xa0], ecx
call esi
add esp, 4
test eax, eax
je case.0x45ea1b.62
mov dword [esp + 0x18], 9
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x2c]
sub ebp, dword [esp + 0x3c]
mov ecx, dword [edi + 0xa8]
mov esi, dword [esp + 0x18]
push eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
push ecx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
mov dword [edi + 0x50], esi
call fcn.0043d4f0
add esp, 0x14
call fcn.0045a130
cmp esi, 0xc0a
jne 0x46233b
mov byte [ebx + 0x41], 1
mov al, byte [esp + 0x57]
mov esi, 1
test al, al
jbe 0x462374
mov edx, dword [ebx + 0x10]
movzx edi, al
dec edi
mov ecx, edi
shl ecx, 4
mov eax, dword [ecx + edx + 0xc]
push eax
call fcn.004799a0
add esp, 4
cmp edi, esi
je 0x462374
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.004799a0
add esp, 4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x94]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x24], ecx
add dword [eax + 0x7c], edx
cmp dword [eax + 0x64], 0
je 0x46239f
push eax
call fcn.00458b20
add esp, 4
mov ecx, dword [esp + 0x304]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0050a231
add esp, 0x2fc
ret
mov eax, edi
call fcn.00457090
jmp case.0x45ea1b.14
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebp + 0xc]
lea edi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jne 0x4623f5
call fcn.00457190
test byte [edi + 8], 0x20
je 0x463526
test ebx, ebx
je 0x46241b
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [edi]
push ecx
push edx
push ebx
call fcn.00444a00
add esp, 0xc
test eax, eax
jne 0x4632f3
test ebx, ebx
jl case.0x45ea1b.62
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [edi]
push eax
push ecx
call fcn.004446a0
add esp, 8
jmp case.0x45ea1b.62
cmp byte [ebp + 3], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ebx, [eax + edx*8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], ebx
je 0x462470
mov eax, dword [edx + 0xb0]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x462470
lea esp, [esp]
cmp dword [eax + 0x1c], ecx
je case.0x45ea1b.62
mov eax, dword [eax + 4]
test eax, eax
jne 0x462460
mov ecx, dword [edx + 0xb8]
mov eax, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x80]
jl 0x46249a
push str.too_many_levels_of_trigger_recursion
mov edi, edx
mov dword [esp + 0x1c], esi
call fcn.00457c70
add esp, 4
jmp case.0x45ea1b.62
test byte [ebx + 8], 0x40
jne 0x462575
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
add ebx, eax
lea ecx, [ebx + ebx*4 + 0xa]
lea edx, [eax + ecx*2]
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + edx*4]
cdq
push edx
push eax
call fcn.0043ba00
mov esi, eax
add esp, 8
test esi, esi
je 0x463526
mov eax, dword [esp + 0x2c]
call fcn.00456d60
mov eax, dword [esp + 0x2c]
sub ebp, dword [esp + 0x3c]
mov dword [eax], esi
mov ecx, 0x40
mov word [eax + 8], cx
mov ecx, dword [esp + 0x14]
mov dword [esi], ecx
mov dword [esi + 0x3c], ebx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x40], edx
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x2c], eax
mov edx, dword [ecx + 8]
mov dword [esi + 0x10], edx
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x34], eax
mov edx, dword [ecx + 0x38]
mov dword [esi + 0x18], edx
mov eax, dword [ecx + 0x24]
mov dword [esi + 0x28], eax
mov edx, dword [ecx + 4]
mov dword [esi + 8], edx
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x30], eax
mov edx, dword [edi + 0x14]
mov dword [esi + 0x1c], edx
mov eax, dword [ecx + 0xc8]
mov dword [esi + 0x14], eax
mov ecx, dword [ecx + 0xc4]
lea edx, [ebx + ebx*4 + 0xa]
mov dword [esi + 0x38], ecx
lea ecx, [esi + edx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x462577
mov edx, dword [esp + 0x1c]
nop
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x462560
jmp 0x462577
mov esi, dword [ebx]
mov eax, dword [esp + 0x14]
inc dword [eax + 0xb8]
mov ecx, dword [eax + 0xb0]
mov edx, dword [esp + 0x68]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], edx
mov edx, dword [eax + 0x5c]
mov dword [esi + 0x44], edx
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
mov dword [esi + 0x48], edx
mov dword [eax + 0x5c], 0
mov dword [eax + 0xb0], esi
lea edx, [esi + 0x28]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x3c]
mov dword [eax + 0x1c], ecx
movzx ecx, word [esi + 0x40]
mov dword [eax + 0x24], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x38], ecx
mov ebp, dword [edi]
mov dword [eax + 4], ebp
mov dword [esp + 0x20], edx
mov edx, dword [edi + 4]
mov dword [eax + 0x20], edx
mov edx, dword [eax + 0x24]
lea ecx, [ecx + edx*4]
mov dword [eax + 0xc8], ecx
mov edi, dword [edi + 0x10]
push edi
push 0
mov dword [esp + 0x44], ebp
push ecx
mov dword [eax + 0xc4], edi
add ebp, 0xffffffec
call fcn.0050e6a0
add esp, 0xc
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x462631
call fcn.0045e8d0
jmp 0x46263a
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [esi + 0xb0]
mov ecx, dword [edx + 0x2c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebp + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.00457290
add esp, 0xc
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x1c]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebp + 8]
cdq
je 0x46268f
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.0x45ea1b.62
cmp dword [ebp + 4], 0
je 0x4626a6
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x90], eax
adc dword [ecx + 0x94], edx
jmp case.0x45ea1b.62
cmp dword [ebp + 4], 0
je 0x4626d9
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x1f8]
or edx, dword [eax + 0x1fc]
jne case.0x45ea1b.62
jmp 0x4626f3
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x90]
or edx, dword [eax + 0x94]
jne case.0x45ea1b.62
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x200]
or ecx, dword [eax + 0x204]
je 0x4632f3
jmp case.0x45ea1b.62
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xb0]
test ecx, ecx
je 0x462737
mov eax, dword [ecx + 4]
test eax, eax
je 0x462729
nop
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x462720
mov eax, dword [ebp + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x462744
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [eax + edx*8]
mov esi, edi
call fcn.00456f10
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.00456f10
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x45ea1b.62
jl 0x462779
mov edx, dword [edi]
cmp edx, eax
jae case.0x45ea1b.62
mov dword [edi], eax
mov dword [edi + 4], esi
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 4], 0
jg 0x4632f3
jl case.0x45ea1b.62
cmp dword [ecx + eax*8], 0
ja 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp + 0xc]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [ecx + 4], 0
jl 0x4632f3
jg case.0x45ea1b.62
cmp dword [ecx], 0
jb 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov esi, dword [eax + edx*8]
mov edi, dword [eax + edx*8 + 4]
lea ecx, [eax + edx*8]
mov edx, esi
or edx, edi
je case.0x45ea1b.62
mov eax, dword [ebp + 0xc]
cdq
add eax, esi
adc edx, edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4632f3
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
add dword [ecx + eax*8], 0xffffffff
mov edx, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
adc dword [eax + 4], 0xffffffff
or edx, dword [eax + 4]
je 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov edi, ecx
add edi, esi
mov esi, edx
adc esi, 0
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, ecx
or eax, edx
je 0x4632f3
jmp case.0x45ea1b.62
movzx ebx, byte [ebp + 3]
mov esi, dword [esp + 0x1c]
lea edx, [ebx*4 + 0x1c]
push 0
push edx
call fcn.0043ba30
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x463526
mov dword [ecx + 8], 0
mov eax, dword [ebp + 0x10]
mov dword [ecx + 4], eax
mov edx, ebp
sub edx, dword [esp + 0x3c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x1a], bl
mov byte [ebp + 1], 0xec
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x90
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x20]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x462905
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x462905
lea edx, [esi + ecx*4 + 0x1c]
lea esp, [esp]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4628f0
inc dword [edi + 0xc]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x238], edx
mov dword [esp + 0x230], 0
mov ecx, 1
mov word [esp + 0x220], cx
mov ecx, dword [esi + 4]
lea eax, [esp + 0x218]
mov dword [esi], eax
movzx eax, byte [esi + 0x1a]
lea edx, [esi + 0x1c]
push edx
push eax
mov byte [esi + 0x19], 0
mov byte [esi + 0x18], 0
mov ecx, dword [ecx + 0x10]
push esi
call ecx
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x462992
cmp dword [esi + 0x14], 0
je 0x462986
lea edx, [esp + 0x218]
push edx
call fcn.0045c530
mov edi, dword [esp + 0x18]
add esp, 4
push eax
push 0x533a98
call fcn.00457c70
mov eax, dword [esi + 0x14]
add esp, 8
mov dword [esp + 0x18], eax
lea eax, [esp + 0x218]
call fcn.00456d60
cmp byte [esi + 0x18], 0
je case.0x45ea1b.62
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x45ea1b.62
lea ecx, [eax + eax*4]
push 0
push 1
lea eax, [ebx + ecx*8]
call fcn.004570f0
add esp, 8
jmp case.0x45ea1b.62
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [eax + edx*8]
mov eax, esi
call fcn.00456b90
mov dword [esp + 0x18], eax
test eax, eax
je 0x4629f8
push esi
call fcn.0045c530
mov edi, dword [esp + 0x18]
add esp, 4
push eax
push 0x533a98
call fcn.00457c70
add esp, 8
movzx ecx, byte [esp + 0x48]
mov eax, esi
call fcn.00456810
mov ecx, esi
call fcn.00457240
test eax, eax
je case.0x45ea1b.62
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
push str.string_or_blob_too_big
call fcn.00457c70
add esp, 4
mov dword [esp + 0x18], 0x12
jmp 0x4622f4
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
or eax, 0xffffffff
lea ecx, [esp + 0xfc]
push ecx
mov dword [esp + 0x100], eax
mov dword [esp + 0xfc], eax
mov eax, dword [ebp + 4]
push edx
xor edi, edi
push eax
lea ecx, [esp + 0x104]
mov dword [esp + 0x100], edi
call fcn.004a8a90
add esp, 0xc
mov dword [esp + 0x18], eax
cmp eax, 5
jne 0x462a8a
mov dword [esp + 0x18], edi
mov dword [esp + 0xf4], 1
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
xor esi, esi
lea edi, [edx + ecx*8]
lea esp, [esp]
mov eax, dword [esp + esi*4 + 0xf4]
cdq
push edx
push eax
mov eax, edi
call fcn.004570f0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x462aa0
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x462ae4
call fcn.0045e8d0
jmp 0x462aed
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 4]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx esi, byte [edi + 5]
cmp ebx, 0xffffffff
jne 0x462b19
mov ebx, esi
cmp byte [edi + 0x10], 3
jae 0x462b35
mov ecx, dword [edi + 0x40]
cmp dword [ecx], 0
je 0x462b37
cmp dword [edi + 0x4c], 0
jl 0x462b37
jg 0x462b35
cmp dword [edi + 0x48], 0
jbe 0x462b37
mov ebx, esi
cmp byte [edi + 0xf], 0
mov eax, 0x5331a8
jne 0x462b48
mov eax, dword [edi + 0xa8]
cmp ebx, 5
jne 0x462b92
call fcn.0043df20
test eax, eax
je 0x462b61
mov eax, edi
call fcn.00449470
test eax, eax
jne 0x462b92
mov ebx, esi
cmp dword [esp + 0x18], 0
je 0x462b6c
mov ebx, esi
mov eax, ebx
mov ecx, edi
call fcn.004492c0
mov esi, dword [esp + 0x24]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x462c2e
xor eax, eax
jmp 0x462c35
cmp ebx, esi
je 0x462b63
cmp esi, 5
je 0x462ba0
cmp ebx, 5
jne 0x462b63
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x3f], 0
je 0x462c00
cmp dword [eax + 0x98], 1
jg 0x462c00
cmp esi, 5
jne 0x462bcb
mov eax, edi
call fcn.004495d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x462b6a
mov eax, ebx
jmp 0x462bd3
cmp esi, 4
jne 0x462bda
lea eax, [esi - 2]
mov ecx, edi
call fcn.004492c0
cmp dword [esp + 0x18], 0
jne 0x462b6a
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp ebx, 5
sete dl
inc edx
push edx
call fcn.00455480
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x462b63
mov dword [esp + 0x18], 1
mov eax, 0x541aa8
cmp ebx, 5
je 0x462c17
mov eax, str.out_of
mov edi, dword [esp + 0x14]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
call fcn.00457c70
add esp, 8
jmp case.0x45ea1b.62
mov eax, dword [eax*4 + 0x5397b4]
mov dword [esi + 0x10], eax
call fcn.0043df20
movzx ecx, byte [esp + 0x48]
mov dword [esi + 0xc], eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.00456810
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add ecx, 0x2c
call fcn.004978a0
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
push eax
call fcn.0044eec0
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, 0x65
jne case.0x45ea1b.62
mov dword [esp + 0x18], 0
jmp 0x4632f3
cmp dword [ebp + 4], 0
jne 0x462cb6
mov eax, dword [esp + 0x1c]
call fcn.0045c040
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
or dword [eax + 0x58], 8
jmp case.0x45ea1b.62
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x462cdb
mov edx, dword [esp + 0x1c]
test dword [edx + 0x18], 0x4000
jne case.0x45ea1b.62
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.004553a0
add esp, 4
mov dword [esp + 0x18], eax
cmp al, 6
jne case.0x45ea1b.62
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x14]
push eax
push str.database_table_is_locked:__s
call fcn.00457c70
add esp, 8
jmp case.0x45ea1b.62
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x1c]
call fcn.00498fa0
mov dword [esp + 0x18], eax
test edi, edi
je case.0x45ea1b.62
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x14]
push ecx
call fcn.0045c0d0
add esp, 4
jmp case.0x45ea1b.62
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x17c], eax
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [eax + edx*8]
lea eax, [esp + 0x158]
mov dword [esp + 0x178], esi
call fcn.00457300
lea ecx, [esp + 0x158]
push ecx
mov dword [esp + 0x1c], eax
call fcn.0045c530
add esp, 4
test eax, eax
je 0x462de9
mov edx, dword [esp + 0x14]
add edx, 0x2c
push edx
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.00498af0
add esp, 8
mov dword [esp + 0x18], eax
lea eax, [esp + 0x158]
call fcn.00456d60
jmp case.0x45ea1b.62
mov edi, dword [esp + 0x1c]
add dword [edi + 0xa4], esi
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 4]
mov ecx, edi
call fcn.00498de0
add esp, 4
dec dword [edi + 0xa4]
mov dword [esp + 0x18], eax
jmp case.0x45ea1b.62
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x38], 0
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x462e93
mov eax, dword [ebx]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x462e93
mov ecx, dword [eax + 0x18]
lea edx, [esp + 0x38]
push edx
push ebx
call ecx
mov edi, dword [esp + 0x1c]
mov esi, eax
push ebx
mov dword [esp + 0x24], esi
call fcn.0045c0d0
add esp, 0xc
test esi, esi
jne case.0x45ea1b.62
mov edx, dword [esp + 0x38]
push esi
push 0xffffffffffffffff
mov dword [edx], ebx
mov eax, dword [ebp + 4]
push esi
push eax
call fcn.0045e670
add esp, 0x10
test eax, eax
je 0x463515
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x24], ecx
inc dword [ebx + 4]
jmp case.0x45ea1b.62
mov dword [esp + 0x18], 6
jmp case.0x45ea1b.62
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov edi, dword [eax + edx*8]
lea edx, [eax + edx*8]
mov eax, dword [ebp + 4]
mov eax, dword [esi + eax*4]
mov ebx, dword [eax + 0x24]
mov esi, dword [ebx]
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x58], edi
mov edi, dword [ecx + 0xc]
xor ecx, ecx
mov dword [esp + 0x7c], 0
test eax, eax
jle 0x462ef2
add edx, 0x50
mov dword [edi + ecx*4], edx
inc ecx
add edx, 0x28
cmp ecx, eax
jl 0x462ee7
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x58]
push edi
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [eax + 0x20]
push edx
push ebx
call ecx
mov edi, dword [esp + 0x28]
add esp, 0x14
push esi
mov dword [esp + 0x1c], eax
call fcn.0045c0d0
add esp, 4
cmp dword [esp + 0x18], 0
jne 0x462f31
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x28]
push ebx
call eax
add esp, 4
jmp 0x462f35
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x40]
mov byte [ecx + 0x19], 0
test eax, eax
jne 0x4632f3
jmp case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
cmp byte [ecx + 0x19], 0
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ebx, [eax + edx*8]
je 0x462f76
mov eax, ebx
call fcn.00457090
jmp case.0x45ea1b.62
mov edx, dword [ecx + 0x24]
mov edi, dword [edx]
mov edx, dword [edi]
xor eax, eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1a8], ebx
mov ax, word [ebx + 8]
mov esi, 0xbe01
and ax, si
or ax, 1
mov word [ebx + 8], ax
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 0x24]
mov edx, dword [edx + 0x2c]
push eax
lea eax, [esp + 0x1ac]
push eax
push ecx
call edx
add esp, 0xc
push edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
call fcn.0045c0d0
mov eax, dword [esp + 0x1c0]
add esp, 4
test eax, eax
je 0x46300a
mov dword [esp + 0x18], eax
movzx ecx, byte [esp + 0x48]
mov eax, ebx
call fcn.00456810
mov ecx, ebx
call fcn.00457240
test eax, eax
jne 0x462a13
jmp case.0x45ea1b.62
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 0x19], 0
jne case.0x45ea1b.62
mov eax, dword [esi + 0x24]
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x24]
push eax
mov dword [esp + 0x30], ecx
call edx
add esp, 4
push ebx
mov dword [esp + 0x1c], eax
call fcn.0045c0d0
add esp, 4
cmp dword [esp + 0x18], 0
jne case.0x45ea1b.14
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
test eax, eax
jne 0x46228b
mov ebp, dword [ebp + 8]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
jmp 0x46228f
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ebx, [eax + edx*8]
mov ecx, esi
mov eax, ebx
call fcn.00456810
mov dword [esp + 0x18], eax
test eax, eax
jne case.0x45ea1b.62
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x4c]
push edx
push edi
call eax
push edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
call fcn.0045c0d0
add esp, 0xc
and dword [edi + 0x58], 0xfffffff7
jmp case.0x45ea1b.62
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + 8]
test esi, esi
je 0x462e93
mov eax, dword [esi]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x462e93
cmp dword [eax + 0x34], 0
mov ecx, dword [ebp + 8]
je case.0x45ea1b.62
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov edi, dword [eax + 0xc]
mov dl, byte [ebx + 0x45]
mov eax, dword [ebp + 0xc]
mov byte [esp + 0x47], dl
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x463140
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x463135
mov dl, byte [ebp + 3]
lea eax, [esp + 0x150]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x38]
mov byte [ebx + 0x45], dl
mov edx, dword [ecx + 0x34]
push esi
call edx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x57]
push esi
mov byte [ebx + 0x45], al
call fcn.0045c0d0
mov edx, dword [esp + 0x2c]
add esp, 0x14
test edx, edx
jne 0x46319b
cmp dword [ebp + 4], edx
je 0x46319b
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
cmp dl, 0x13
jne 0x4631dd
mov ecx, dword [ebp + 0x10]
cmp byte [ecx + 0x10], 0
je 0x4631dd
mov al, byte [ebp + 3]
cmp al, 4
jne 0x4631bd
mov dword [esp + 0x18], 0
jmp case.0x45ea1b.62
cmp al, 5
jne 0x4631d0
mov eax, 2
mov edx, edi
mov byte [edx + 0x56], al
jmp case.0x45ea1b.62
movzx eax, al
mov edx, edi
mov byte [edx + 0x56], al
jmp case.0x45ea1b.62
mov eax, edi
inc dword [eax + 0x5c]
jmp case.0x45ea1b.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x463209
call fcn.0045e8d0
jmp 0x463212
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp case.0x45ea1b.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
lea eax, [ecx + edx*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x463259
call fcn.0045e8d0
jmp 0x463262
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov edx, dword [ebp + 0xc]
xor ecx, ecx
test edx, edx
je 0x46328a
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0x2c]
cmp ecx, edx
jae 0x46328a
mov ecx, edx
push ecx
call fcn.0044e0f0
cdq
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x45ea1b.62
mov edi, dword [esp + 0x1c]
cmp dword [edi + 0xb0], 0
je 0x4632ed
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x58], 0x200
jne 0x4632ed
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4632c6
mov eax, dword [ecx + 0xa8]
test eax, eax
je 0x4632ed
push eax
call fcn.0045e280
mov edx, dword [edi + 0xb4]
mov esi, eax
mov eax, dword [edi + 0xb0]
add esp, 4
push esi
push edx
call eax
add esp, 8
mov eax, esi
mov ecx, edi
call fcn.0043b7d0
cmp dword [ebp + 8], 0
je case.0x45ea1b.62
mov ebp, dword [ebp + 8]
mov edx, dword [esp + 0x3c]
lea ecx, [ebp + ebp*4]
lea ebp, [edx + ecx*4 - 0x14]
mov ebx, dword [esp + 0x1c]
add ebp, 0x14
cmp dword [esp + 0x18], 0
jne 0x4622f0
jmp 0x45e9f0
mov eax, dword [ebp + 4]
mov dword [ebx + 0x50], eax
mov cl, byte [ebp + 8]
mov byte [ebx + 0x56], cl
mov dword [ebx + 0x4c], esi
test eax, eax
je 0x463399
mov al, byte [ebp + 3]
test al, al
je 0x46335b
movzx edx, al
mov ecx, dword [edx*4 + 0x538fbc]
test ecx, ecx
je 0x46335d
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x46335d
push eax
push ecx
push str._s_constraint_failed:__s
mov edi, ebx
call fcn.00457c70
add esp, 0xc
jmp 0x46337c
xor ecx, ecx
mov eax, dword [ebp + 0x10]
mov edi, ebx
test eax, eax
je 0x46336e
push eax
push 0x533a98
jmp 0x463374
push ecx
push str._s_constraint_failed
call fcn.00457c70
add esp, 8
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [ebp + 4]
push eax
push ecx
push esi
push str.abort_at__d_in___s_:__s
push edx
call fcn.0043d4f0
add esp, 0x14
mov edi, ebx
call fcn.0045a130
mov ebx, dword [esp + 0x1c]
mov esi, 5
cmp eax, esi
jne 0x4633b9
mov eax, dword [esp + 0x14]
mov dword [eax + 0x50], esi
jmp 0x462374
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x462374
sub ebp, dword [esp + 0x3c]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
mov eax, edi
add ecx, edx
mov dword [eax + 0x4c], ecx
mov esi, 5
mov byte [ebx + 0x3f], 0
mov dword [eax + 0x50], esi
jmp 0x462374
test ecx, ecx
je 0x46342e
push 0x204
mov eax, ebx
call fcn.004a7f80
add esp, 4
mov byte [ebx + 0x3f], 1
mov esi, ebx
call fcn.004a75b0
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x462374
mov eax, dword [esp + 0x14]
push 1
call fcn.0045a0c0
mov esi, eax
add esp, 4
test esi, esi
jne 0x462374
mov dl, byte [esp + 0x2c]
mov edi, dword [esp + 0x14]
mov byte [ebx + 0x3f], dl
call fcn.0045a130
mov esi, 5
cmp eax, esi
jne 0x463411
sub ebp, dword [esp + 0x3c]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, 1
sub dl, byte [esp + 0x2c]
mov eax, edi
mov dword [eax + 0x4c], ecx
mov byte [ebx + 0x3f], dl
mov dword [eax + 0x50], esi
jmp 0x462374
mov dword [esp + 0x18], 8
jmp 0x461557
sub ebp, dword [esp + 0x3c]
mov eax, 0x66666667
imul ebp
mov eax, dword [esp + 0x14]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, 5
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], esi
jmp 0x462374
mov eax, 0x126ba
call fcn.004a9dd0
mov dword [esp + 0x18], eax
jmp 0x461557
mov eax, dword [esp + 0x18]
cmp eax, 0xc0a
je 0x4622f0
cmp eax, 0x204
je 0x4634f9
mov ecx, dword [esp + 0x18]
mov eax, str.unknown_error
call fcn.004a80a0
jmp 0x4634fe
mov eax, str.abort_due_to_ROLLBACK
mov edi, dword [esp + 0x14]
push eax
push 0x533a98
call fcn.00457c70
add esp, 8
jmp 0x4622f4
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
push str.out_of_memory
mov byte [edx + 0x41], 1
call fcn.00457c70
mov ebx, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x18], 7
jmp 0x4622f4
mov edi, dword [esp + 0x14]
mov eax, 9
mov dword [edi + 0x50], eax
mov ecx, dword [str.interrupted]
mov dword [esp + 0x18], eax
mov eax, str.unknown_error
test ecx, ecx
je 0x463571
mov eax, ecx
push eax
push 0x533a98
call fcn.00457c70
add esp, 8
jmp 0x4622f4