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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [0x510918]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xf8], edi
xor ecx, ecx
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
mov dword [ebp - 0x110], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xe0], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xd4], ecx
mov al, byte [eax + 0x4d]
mov byte [ebp - 0xfd], al
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0x24]
mov byte [ebp - 0xfe], cl
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], ecx
mov ecx, edi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x104], eax
call fcn.00467926
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [edi + 0x5c], ecx
je 0x470688
xor edx, edx
mov dword [edi + 0x5c], edx
mov dword [edi + 0x14], edx
mov dword [esi + 0x1b4], edx
cmp dword [esi + 0xe0], edx
jne 0x470659
mov eax, dword [edi + 0x58]
xor ecx, ecx
cmp dword [esi + 0x114], edx
mov dword [ebp - 0xe0], eax
setne cl
mov dword [ebp - 0x120], ecx
cmp byte [esi + 0x38], 0
push 2
pop edx
jne 0x470685
mov ebx, eax
imul ebx, ebx, 0x14
add ebx, dword [ebp - 0x110]
mov dword [ebp - 0xec], ebx
test ecx, ecx
je 0x46ae79
mov eax, dword [ebp - 0x118]
cmp dword [esi + 0x11c], eax
jne 0x46ae72
push dword [esi + 0x118]
call dword [esi + 0x114]
pop ecx
test eax, eax
jne 0x470474
push 2
pop edx
inc eax
mov dword [ebp - 0x118], eax
test byte [ebx + 2], dl
je 0x46aeb1
mov edx, dword [ebx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov eax, 0x2460
mov dword [ebp - 0xe4], edx
test word [edx + 0x1c], ax
je 0x46aea8
mov ecx, edx
call fcn.0046645d
mov edx, dword [ebp - 0xe4]
push 4
pop ecx
mov word [edx + 0x1c], cx
jmp 0x46aeba
mov edx, dword [ebp - 0xe4]
push 4
pop ecx
movzx eax, byte [ebx]
dec eax
cmp eax, 0x93
ja case.default.0x46aec5
jmp dword [eax*4 + 0x47072b]
cmp dword [esi + 0xe0], 0
jne 0x470659
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd4]
jmp 0x470452
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xe0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x46aed9
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
mov eax, dword [eax + ecx + 0x10]
jmp 0x46aedd
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xe0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0xd0]
jmp 0x46aedd
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
je case.default.0x46aec5
xor ecx, ecx
cmp dword [ebx + 4], ecx
jne 0x47047b
mov edx, dword [edi + 0xa8]
test edx, edx
je 0x47047b
mov eax, dword [edx + 4]
dec dword [edi + 0xb0]
mov dword [edi + 0xa8], eax
mov eax, dword [edi + 0x68]
add dword [esi + 0x4c], eax
mov ecx, edx
mov dword [esi + 0x48], eax
call fcn.0046810b
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x108], ecx
mov ecx, dword [esi + 0x24]
push 4
mov dword [ebp - 0x104], ecx
pop ecx
mov dword [ebp - 0xe0], eax
cmp dword [ebx + 8], ecx
jne 0x46afe4
imul eax, eax, 0x14
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + eax + 8]
mov dword [ebp - 0xe0], ecx
dec dword [ebp - 0xe0]
mov eax, dword [edi + 4]
mov dword [ebp - 0x110], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0xdc], eax
jmp case.default.0x46aec5
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x46aec5
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x14], eax
jmp case.default.0x46aec5
push 8
pop eax
mov word [edx + 0x1c], ax
mov eax, dword [ebx + 0x10]
movsd xmm0, qword [eax]
movsd qword [edx + 8], xmm0
jmp case.default.0x46aec5
mov ecx, dword [ebx + 0x10]
mov byte [ebx], 9
call fcn.0045545d
mov dword [ebx + 4], eax
xor eax, eax
inc eax
cmp byte [ebp - 0xfd], al
je 0x46b0dd
push 0
push eax
mov edx, ecx
mov ecx, dword [ebp - 0xe4]
push 0xffffffffffffffff
call fcn.00466912
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp eax, 0x12
je 0x470643
movzx edx, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xe4]
call fcn.004661ba
test eax, eax
jne 0x470685
mov edx, dword [ebp - 0xe4]
mov ecx, 0xfbff
and dword [edx + 0x24], eax
mov ax, word [edx + 0x1c]
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edx + 0x1c], ax
cmp byte [ebx + 1], 0xff
jne 0x46b0cd
mov edx, dword [ebx + 0x10]
mov ecx, esi
call fcn.00453901
mov edx, dword [ebp - 0xe4]
mov byte [ebx + 1], 0xff
mov eax, dword [edx + 4]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x50]
jg 0x470643
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [ebx + 4]
mov dword [edx + 0x18], eax
mov al, byte [ebp - 0xfd]
mov byte [edx + 0x1f], al
jmp case.default.0x46aec5
mov eax, dword [ebx + 0xc]
sub eax, dword [ebx + 8]
mov ecx, 0x101
mov dword [ebp - 0xd0], eax
xor eax, eax
inc eax
cmp dword [ebx + 4], 0
mov ebx, dword [ebp - 0xe4]
cmovne eax, ecx
mov word [ebp - 0xcc], ax
mov word [ebx + 0x1c], ax
cmp dword [ebp - 0xd0], 0
jle case.default.0x46aec5
push 0x28
pop edi
mov esi, 0x2460
add ebx, edi
test word [ebx + 0x1c], si
je 0x46b15c
mov ecx, ebx
call fcn.0046645d
mov ax, word [ebp - 0xcc]
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
dec eax
mov dword [ebp - 0xd0], eax
test eax, eax
jg 0x46b14d
mov dword [ebp - 0xe4], ebx
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xd4]
jmp 0x47044c
mov edx, dword [ebx + 0x10]
xor eax, eax
push eax
push eax
push dword [ebx + 4]
mov ebx, dword [ebp - 0xe4]
mov ecx, ebx
call fcn.00466912
mov al, byte [ebp - 0xfd]
add esp, 0xc
mov byte [ebx + 0x1f], al
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov esi, dword [edi + 0x48]
imul ecx, ecx, 0x28
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
mov dword [ebp - 0xd0], esi
call fcn.00466805
test eax, eax
jne 0x47063d
mov eax, 0x800
mov edx, esi
mov ecx, dword [ebp - 0xe4]
push eax
call fcn.00466828
pop ecx
jmp 0x46b184
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebp - 0xcc], eax
mov esi, dword [ebx + 4]
mov dword [ebp - 0xc8], esi
imul esi, esi, 0x28
mov ebx, dword [ebx + 8]
add esi, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], ebx
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], ebx
test eax, eax
je 0x46b26b
push 0x28
pop edi
dec eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0xd0], eax
and dword [ebx + 0x24], 0
mov edx, esi
mov ecx, ebx
call fcn.004668ec
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xcc]
add esi, edi
add ebx, edi
test eax, eax
jne 0x46b22b
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0xe4], ebx
dec eax
mov dword [ebp - 0xcc], eax
jmp 0x46b184
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov eax, 0x1000
push eax
mov edx, esi
mov ecx, ebx
mov dword [ebp - 0xe4], ebx
call fcn.00466828
mov eax, 0x1000
pop ecx
test word [ebx + 0x1c], ax
je 0x46b2c8
mov ecx, ebx
call fcn.00466293
test eax, eax
jne 0x47067f
mov eax, dword [ebp - 0xd0]
mov ecx, eax
dec eax
mov dword [ebp - 0xd0], eax
test ecx, ecx
je 0x46b184
push 0x28
pop eax
add ebx, eax
add esi, eax
jmp 0x46b298
mov eax, dword [ebx + 8]
mov edx, 0x1000
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
push edx
mov edx, dword [ebx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xe4], eax
call fcn.00466828
pop ecx
jmp case.default.0x46aec5
xor edx, edx
mov ecx, edi
call fcn.00468885
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x470452
xor edx, edx
inc edx
mov ecx, edi
call fcn.00468788
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x470452
mov eax, dword [edi + 0x54]
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x54], eax
mov edx, dword [ebx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
xor ecx, ecx
mov dword [edi + 0x14], edx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], ecx
cmp dword [ebx + 8], ecx
jle 0x470505
mov eax, ecx
imul eax, eax, 0x28
add eax, edx
mov esi, 0x1000
test word [eax + 0x1c], si
mov esi, dword [ebp - 0xd8]
je 0x46b3af
mov ecx, eax
call fcn.00466293
test eax, eax
jne 0x470685
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd0]
imul ecx, ecx, 0x28
add ecx, edx
call fcn.00466342
mov ecx, dword [ebp - 0xcc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xd0]
call fcn.0046ab64
mov ecx, dword [ebp - 0xcc]
inc ecx
mov dword [ebp - 0xcc], ecx
cmp ecx, dword [ebx + 8]
jge 0x470505
mov edx, dword [ebp - 0xd0]
jmp 0x46b37c
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
imul ecx, ecx, 0x28
mov ebx, dword [ebx + 0xc]
imul esi, esi, 0x28
mov eax, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ecx, eax
add esi, eax
movzx edx, word [ecx + 0x1c]
add ebx, eax
mov al, byte [esi + 0x1c]
or al, dl
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], ebx
test al, 1
je 0x46b42e
mov ecx, ebx
call fcn.004666f6
jmp 0x46b184
mov eax, 0x4000
test eax, edx
je 0x46b440
call fcn.004662ef
xor ebx, ebx
jmp 0x46b444
xor ebx, ebx
mov eax, ebx
test eax, eax
jne 0x47067f
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x46b460
mov ecx, esi
call fcn.004662ef
jmp 0x46b462
mov eax, ebx
test eax, eax
jne 0x47067f
mov eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], 0x12
jne 0x46b48c
movzx edx, byte [ebp - 0xfd]
mov ecx, eax
call fcn.0046638c
test eax, eax
jne 0x47067f
test byte [esi + 0x1c], 0x12
jne 0x46b4a8
movzx edx, byte [ebp - 0xfd]
mov ecx, esi
call fcn.0046638c
test eax, eax
jne 0x47067f
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x18]
add eax, dword [esi + 0x18]
cdq
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd8]
mov ecx, edx
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x47063d
jl 0x46b4e3
cmp dword [ebp - 0xd0], eax
ja 0x47063d
mov ecx, dword [ebp - 0xe4]
mov edx, 0xbe02
mov ax, word [ecx + 0x1c]
and ax, dx
push 2
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xd0]
xor eax, eax
cmp ecx, esi
sete al
lea edx, [edx + 2]
push eax
call fcn.004661d4
pop ecx
test eax, eax
jne 0x47067f
mov eax, dword [ebp - 0xe4]
cmp eax, esi
je 0x46b539
push dword [esi + 0x18]
push dword [esi + 4]
push dword [eax + 4]
call fcn.004a8c80
add esp, 0xc
mov eax, dword [ebp - 0xe8]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.004a8c80
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + 4]
add esp, 0xc
mov byte [eax + ecx], bl
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + 4]
mov byte [ecx + eax + 1], bl
mov eax, 0x200
or word [edx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
mov dword [edx + 0x18], eax
mov al, byte [ebp - 0xfd]
mov byte [edx + 0x1f], al
jmp 0x46b184
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.0046ac46
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xec], eax
call fcn.0046ac46
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0xec]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
movzx ecx, word [esi + 0x1c]
mov dword [ebp - 0xe4], eax
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [ebp - 0xcc], ecx
test cl, 1
jne 0x46b8b1
mov al, byte [esi + 0x1c]
and al, byte [edx + 0x1c]
push 4
pop ecx
test cl, al
je 0x46b74b
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xc8], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xc4], edx
mov edi, dword [eax + 0x10]
mov dword [ebp - 0xc0], edi
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xbc], eax
mov byte [ebp - 0xd0], 1
movzx eax, byte [ebx]
mov dword [ebp - 0xe8], edi
mov edi, dword [ebp - 0xf8]
sub eax, 0x56
je 0x46b705
dec eax
je 0x46b6f6
dec eax
je 0x46b6e7
dec eax
mov eax, ecx
je 0x46b6a0
or eax, edx
je 0x46b8b1
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x46b68b
xor ecx, ecx
inc ecx
xor edx, edx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
push edx
push ecx
push dword [ebp - 0xf4]
push dword [ebp - 0xe8]
call fcn.004b4c60
jmp 0x46b6d9
or eax, edx
je 0x46b8b1
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0xe8]
jne 0x46b6cb
test eax, eax
jne 0x46b6cb
cmp dword [ebp - 0xf4], 0x80000000
je 0x46b752
push edx
push ecx
push dword [ebp - 0xf4]
push eax
call fcn.004b4380
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x46b718
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004562ab
jmp 0x46b712
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.0045625d
jmp 0x46b712
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004561d3
pop ecx
pop ecx
test eax, eax
jne 0x46b752
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x14], eax
mov ax, word [ecx + 0x1c]
mov edx, 0xbe04
and ax, dx
push 4
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
jmp 0x46b184
mov byte [ebp - 0xd0], 0
mov ecx, esi
call fcn.0046659d
mov ecx, dword [ebp - 0xec]
movsd qword [ebp - 0xb8], xmm0
call fcn.0046659d
movsd qword [ebp - 0xb0], xmm0
movzx eax, byte [ebx]
sub eax, 0x56
je 0x46b84a
dec eax
je 0x46b840
dec eax
je 0x46b836
dec eax
je 0x46b816
fld qword [ebp - 0xb8]
call fcn.004d6956
fld qword [ebp - 0xb0]
mov esi, eax
mov ebx, edx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], ebx
call fcn.004d6956
mov ecx, esi
or ecx, ebx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
je 0x46b8b1
mov ecx, esi
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x46b7eb
xor esi, esi
inc esi
xor ebx, ebx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], ebx
push ebx
push esi
push edx
push eax
call fcn.004b4c60
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
fild qword [ebp - 0x130]
fstp qword [ebp - 0xb0]
movsd xmm0, qword [ebp - 0xb0]
jmp 0x46b85a
movsd xmm1, qword [ebp - 0xb8]
ucomisd xmm1, qword [0x4fef08]
lahf
test ah, 0x44
jnp 0x46b8b1
divsd xmm0, xmm1
jmp 0x46b852
mulsd xmm0, qword [ebp - 0xb8]
jmp 0x46b852
subsd xmm0, qword [ebp - 0xb8]
jmp 0x46b852
addsd xmm0, qword [ebp - 0xb8]
movsd qword [ebp - 0xb0], xmm0
call fcn.0045542f
test eax, eax
jne 0x46b8b1
mov ebx, dword [ebp - 0xe4]
movsd xmm0, qword [ebp - 0xb0]
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe08
and ax, cx
push 8
pop ecx
or ax, cx
movsd qword [ebx + 8], xmm0
mov word [ebx + 0x1c], ax
test byte [ebp - 0xcc], cl
jne 0x46b184
cmp byte [ebp - 0xd0], 0
jne 0x46b184
mov ecx, ebx
call fcn.004665fd
jmp 0x46b184
mov ecx, dword [ebp - 0xe4]
jmp 0x46b424
mov ecx, dword [ebx + 4]
test ecx, ecx
je case.default.0x46aec5
imul ecx, ecx, 0x28
xor ebx, ebx
add ecx, dword [ebp - 0xdc]
push ebx
push ebx
call fcn.0046673d
pop ecx
jmp 0x46b313
movzx eax, byte [ebx + 3]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0x84], eax
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], ecx
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], esi
test eax, eax
jle 0x46b98c
mov eax, dword [ebp - 0xec]
mov dword [eax + esi*4], edx
mov ecx, dword [ebp - 0xcc]
mov eax, 0x1000
test word [ecx + 0x1c], ax
je 0x46b957
call fcn.00466293
test eax, eax
jne 0x47067f
mov ecx, dword [ebp - 0xcc]
call fcn.0046ab64
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
push 0x28
inc esi
pop eax
add edx, eax
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], edx
cmp esi, dword [ebp - 0x84]
jge 0x46b98a
mov eax, dword [ebp - 0x88]
jmp 0x46b930
xor ecx, ecx
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 0x10]
jne 0x46b99d
mov dword [ebp - 0xc4], ecx
jmp 0x46b9a5
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov esi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xc8], eax
xor eax, eax
inc eax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], ecx
lea ecx, [ebp - 0xc0]
mov word [ebp - 0xa4], ax
mov dword [ebp - 0xc0], esi
call fcn.004668ec
mov eax, dword [ebp - 0xa4]
and dword [ebp - 0x90], 0
mov ecx, 0xbe01
and eax, ecx
or eax, 1
mov word [ebp - 0xa4], ax
mov eax, dword [ebp - 0xc8]
push 8
pop ecx
test byte [eax + 3], cl
je 0x46ba13
mov eax, dword [ebx - 4]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x108]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x104]
mov dword [esi + 0x24], eax
push dword [ebp - 0x88]
lea eax, [ebp - 0xc8]
push dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0xc8]
call dword [eax + 0xc]
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0x24]
add esp, 0xc
mov dword [ebp - 0x104], eax
test ecx, ecx
je 0x46ba75
mov edx, dword [ebx + 4]
call fcn.00468c5c
mov eax, dword [ebp - 0xc4]
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xf9
cmp byte [esi + 0x38], 0
jne 0x470521
cmp dword [ebp - 0x90], 0
je 0x46bab4
mov dl, 1
lea ecx, [ebp - 0xc0]
call fcn.00466d15
push eax
push 0x4f5294
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
mov eax, dword [ebp - 0x90]
add esp, 0x10
mov dword [ebp - 0xd4], eax
movzx edx, byte [ebp - 0xfd]
lea ecx, [ebp - 0xc0]
call fcn.004661ba
mov ecx, dword [ebp - 0xe4]
lea edx, [ebp - 0xc0]
call fcn.004668ec
mov ecx, dword [ebp - 0xe4]
call fcn.00466805
test eax, eax
jne 0x470643
jmp case.default.0x46aec5
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 4]
imul ecx, ecx, 0x28
mov edx, dword [ebx + 0xc]
imul esi, esi, 0x28
mov eax, dword [ebp - 0xdc]
imul edx, edx, 0x28
add ecx, eax
add edx, eax
add esi, eax
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
mov dword [ebp - 0xe4], edx
test al, 1
je 0x46bb24
mov ecx, edx
jmp 0x46b424
call fcn.00466540
mov ecx, esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call fcn.00466540
mov ecx, eax
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
mov al, byte [ebx]
mov dword [ebp - 0xec], ecx
mov byte [ebp - 0xf9], al
mov byte [ebp - 0xb8], al
cmp al, 0x52
jne 0x46bb7b
mov esi, dword [ebp - 0xd0]
and esi, ecx
and dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], esi
jmp 0x46bcc1
cmp al, 0x53
jne 0x46bb98
mov esi, dword [ebp - 0xd0]
or esi, ecx
or dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], esi
jmp 0x46bcc1
mov eax, ecx
or eax, edx
je 0x46bcbb
xor ebx, ebx
cmp edx, ebx
jg 0x46bbfd
jl 0x46bbae
cmp ecx, ebx
jae 0x46bbfd
mov al, 0xa9
sub al, byte [ebp - 0xf9]
mov byte [ebp - 0xb8], al
cmp edx, 0xffffffff
jl 0x46bbe2
jg 0x46bbc8
cmp ecx, 0xffffffc0
jbe 0x46bbe2
neg ecx
adc edx, ebx
neg edx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
jmp 0x46bc03
push 0x40
pop esi
mov ecx, esi
mov edx, ebx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
jmp 0x46bc06
mov al, byte [ebp - 0xf9]
push 0x40
pop esi
cmp edx, ebx
jl 0x46bc3f
jg 0x46bc10
cmp ecx, esi
jb 0x46bc3f
cmp dword [ebp - 0xcc], ebx
jg 0x46bc29
jl 0x46bc22
cmp dword [ebp - 0xd0], ebx
jae 0x46bc29
cmp al, 0x54
je 0x46bc29
or ebx, 0xffffffff
mov eax, ebx
cdq
mov esi, eax
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], edx
jmp 0x46bcc1
mov edx, dword [ebp - 0xcc]
cmp al, 0x54
mov eax, dword [ebp - 0xd0]
jne 0x46bc5a
call fcn.004d6880
mov esi, eax
mov eax, edx
jmp 0x46bca1
call fcn.004bebc0
mov esi, eax
mov eax, edx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xcc], ebx
jg 0x46bcad
jl 0x46bc81
cmp dword [ebp - 0xd0], ebx
jae 0x46bcad
push 0x40
pop eax
mov ecx, eax
sub ecx, dword [ebp - 0xec]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004d6880
or esi, eax
mov eax, dword [ebp - 0xc4]
or eax, edx
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], eax
jmp 0x46bcc1
mov esi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], esi
mov eax, dword [ebp - 0xcc]
jmp 0x46b72d
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.00466664
mov eax, dword [ebx + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x46b184
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.0046ac46
push 8
pop eax
test byte [esi + 0x1c], al
je 0x46bd19
mov ecx, esi
call fcn.004665fd
movzx eax, word [esi + 0x1c]
push 4
pop ecx
test cl, al
jne 0x46bd3d
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0xd8]
test eax, eax
jne 0x46aedc
push 0x14
pop eax
jmp 0x4705e5
mov edx, 0xbe04
and eax, edx
or eax, ecx
mov word [esi + 0x1c], ax
jmp 0x46b184
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx ebx, word [esi + 0x1c]
test cl, bl
je 0x46b184
mov ecx, esi
call fcn.0046659d
mov eax, 0xbe08
and ebx, eax
push 8
pop eax
or ebx, eax
movsd qword [esi + 8], xmm0
mov word [esi + 0x1c], bx
jmp 0x46b184
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne 0x46b184
mov eax, ecx
push 2
pop edx
push dword [ebp - 0xfd]
shr eax, 3
and eax, edx
or eax, ecx
mov dl, 0x61
mov ecx, esi
mov word [esi + 0x1c], ax
call fcn.0046acc3
mov eax, 0x4000
pop ecx
test word [esi + 0x1c], ax
je 0x46bddb
mov ecx, esi
call fcn.004662ef
mov dword [ebp - 0xd4], eax
jmp 0x46bde2
and dword [ebp - 0xd4], 0
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x46b184
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x46b184
push 0x10
pop ebx
test bl, al
jne 0x46be33
push dword [ebp - 0xfd]
mov dl, 0x61
mov ecx, esi
call fcn.0046acc3
mov ax, word [esi + 0x1c]
pop ecx
mov ecx, 0xbe10
and ax, cx
or ax, bx
jmp 0x46bd46
and eax, 0xfe10
jmp 0x46bd46
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
call fcn.0046668a
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
jne case.default.0x46aec5
call fcn.00466664
jmp case.default.0x46aec5
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx ebx, word [esi + 0x1c]
test bl, 1
jne 0x46b184
jmp 0x46bd67
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov ax, word [esi + 0x1c]
mov word [ebp - 0xca], ax
mov ax, word [ecx + 0x1c]
mov dword [ebp - 0xe8], ecx
mov cl, byte [ebp - 0xca]
mov word [ebp - 0xc8], ax
mov dl, al
or al, cl
test al, 1
je 0x46bf4e
mov al, byte [ebx + 3]
test al, al
jns 0x46bf04
xor eax, eax
inc eax
test al, cl
je 0x46bfcf
test al, dl
je 0x46bfcf
test dword [ebp - 0xc8], 0x100
jne 0x46bfcf
xor edx, edx
jmp 0x46bfd1
push 0x10
pop ecx
test cl, al
je 0x46bf38
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
xor edx, edx
mov ecx, 0xbe01
mov ax, word [ebx + 0x1c]
and ax, cx
inc edx
or ax, dx
mov dword [ebp - 0xe4], ebx
mov word [ebx + 0x1c], ax
jmp 0x46b184
push 8
pop ecx
test cl, al
mov esi, dword [ebp - 0xd8]
je case.default.0x46aec5
jmp 0x46aed9
mov dl, byte [ebx + 3]
and dl, 0x67
mov byte [ebp - 0xcc], dl
je 0x46bf92
push dword [ebp - 0xfd]
mov ecx, esi
call fcn.0046acc3
mov dl, byte [ebp - 0xcc]
pop ecx
push dword [ebp - 0xfd]
mov ecx, dword [ebp - 0xe8]
call fcn.0046acc3
mov eax, dword [ebp - 0xd8]
pop ecx
cmp byte [eax + 0x38], 0
jne 0x47067b
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x46bfa4
mov ecx, esi
call fcn.004662ef
mov eax, dword [ebp - 0xe8]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x46bfc2
mov ecx, eax
call fcn.004662ef
mov eax, dword [ebp - 0xe8]
push dword [ebx + 0x10]
mov edx, esi
mov ecx, eax
call fcn.00466a69
pop ecx
mov edx, eax
mov dword [ebp - 0xd0], edx
movzx ecx, byte [ebx]
xor eax, eax
sub ecx, 0x4b
je 0x46c010
dec ecx
je 0x46c009
dec ecx
je 0x46c002
dec ecx
je 0x46bffb
dec ecx
je 0x46bff4
test edx, edx
setns al
jmp 0x46c015
test edx, edx
sets al
jmp 0x46c015
test edx, edx
setle al
jmp 0x46c015
test edx, edx
setg al
jmp 0x46c015
test edx, edx
sete al
jmp 0x46c015
test edx, edx
setne al
push 0x10
pop ecx
mov dword [ebp - 0xd0], eax
test byte [ebx + 3], cl
je 0x46c05a
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov ecx, 0xbe04
push 4
mov ax, word [ebx + 0x1c]
and ax, cx
pop ecx
or ax, cx
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ebp - 0xe4], ebx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x46c068
test eax, eax
je 0x46c068
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov ax, word [esi + 0x1c]
xor ax, word [ebp - 0xca]
mov ecx, dword [ebp - 0xe8]
mov edx, 0x1ff
and ax, dx
xor word [esi + 0x1c], ax
mov ax, word [ecx + 0x1c]
xor ax, word [ebp - 0xc8]
and ax, dx
xor word [ecx + 0x1c], ax
jmp 0x46b184
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x10c], ecx
jmp case.default.0x46aec5
test byte [ebx + 3], 1
mov eax, dword [ebp - 0x10c]
push 0
pop ecx
cmove eax, ecx
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebx + 4]
mov dword [ebp - 0xc8], edx
mov ebx, dword [ebx + 8]
mov dword [ebp - 0xf4], edx
xor edx, edx
mov esi, edx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xcc], esi
test eax, eax
jle 0x46c1b6
mov edx, ebx
mov eax, dword [ebp - 0x10c]
test eax, eax
je 0x46c119
mov ebx, dword [eax + esi*4]
jmp 0x46c11b
mov ebx, esi
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xbc], ebx
mov ecx, dword [ecx + esi*4 + 0xc]
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 8]
push ecx
mov ecx, dword [ebp - 0xf4]
movzx eax, byte [eax + esi]
add edx, ebx
add ecx, ebx
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xb4], eax
call fcn.00466a69
pop ecx
mov dword [ebp - 0x114], eax
test eax, eax
jne 0x46c1a3
mov esi, dword [ebp - 0xcc]
inc esi
mov dword [ebp - 0xcc], esi
cmp esi, dword [ebp - 0xd0]
jge 0x46c1b4
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xf4], eax
jmp 0x46c10a
cmp dword [ebp - 0xb4], 0
je 0x46c1b4
neg eax
mov dword [ebp - 0x114], eax
xor edx, edx
mov dword [ebp - 0x10c], edx
jmp 0x46b184
mov eax, dword [ebp - 0x114]
test eax, eax
jns 0x46c1d3
mov eax, dword [ebx + 4]
jmp 0x46aedc
je 0x46aed9
mov eax, dword [ebx + 0xc]
jmp 0x46aedc
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
xor edx, edx
inc edx
test byte [ecx + 0x1c], dl
je 0x46c1fa
push 2
pop eax
jmp 0x46c20f
call fcn.00466540
or eax, edx
je 0x46c20a
xor edx, edx
inc edx
mov eax, edx
jmp 0x46c20f
xor edx, edx
xor eax, eax
inc edx
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], dl
je 0x46c22b
push 2
pop ecx
jmp 0x46c246
call fcn.00466540
or eax, edx
mov eax, dword [ebp - 0xd0]
je 0x46c241
xor edx, edx
inc edx
mov ecx, edx
jmp 0x46c246
xor edx, edx
xor ecx, ecx
inc edx
mov dword [ebp - 0xcc], ecx
imul eax, eax, 3
cmp byte [ebx], 0x45
jne 0x46c25e
movzx eax, byte [eax + ecx + 0x4efaf0]
jmp 0x46c266
movzx eax, byte [eax + ecx + 0x4ede5c]
mov dword [ebp - 0xd0], eax
mov ebx, dword [ebx + 0xc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
push 2
pop ecx
mov dword [ebp - 0xe4], ebx
cmp eax, ecx
jne 0x46c296
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, dx
jmp 0x46c2af
cdq
mov dword [ebx + 0x10], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe04
and ax, cx
push 4
pop ecx
mov dword [ebx + 0x14], edx
or ax, cx
mov word [ebx + 0x1c], ax
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
mov dword [ebp - 0xe4], ebx
je 0x46c2e8
mov ecx, ebx
call fcn.004666f6
jmp case.default.0x46aec5
call fcn.00466540
or eax, edx
jne 0x46c2f4
inc eax
jmp 0x46c2f6
xor eax, eax
cdq
push edx
push eax
mov ecx, ebx
jmp 0x46b8d4
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
mov dword [ebp - 0xe4], ebx
jne 0x46c2dc
call fcn.00466540
not eax
not edx
jmp 0x46c2f7
mov eax, dword [edi + 0xc0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x46aed9
mov byte [eax + ecx], 1
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
je 0x46c362
mov ecx, dword [ebx + 0xc]
jmp 0x46c38c
call fcn.0046659d
ucomisd xmm0, qword [0x4fef08]
lahf
xor ecx, ecx
test ah, 0x44
jnp 0x46c378
inc ecx
mov dword [ebp - 0xd0], ecx
cmp byte [ebx], 0x1c
jne 0x46c392
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
mov dword [ebp - 0xd0], ecx
test ecx, ecx
jmp 0x46bf43
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
jmp 0x46bf43
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
jne case.default.0x46aec5
jmp 0x46aed9
mov eax, dword [ebx + 4]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0xbc], eax
xor edx, edx
mov dword [ebp - 0xb8], edx
xor eax, eax
push 0xa
pop ecx
lea edi, [ebp - 0x90]
rep stosd dword es:[edi], eax
mov esi, dword [ebx + 0xc]
mov edi, dword [ebp - 0xf8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xb4], edx
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0xb8], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x46c4d6
call fcn.00468d9e
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705df
mov ecx, dword [ebp - 0xb8]
cmp byte [ecx + 0x1c], al
je 0x46c461
and dword [ebp - 0xd0], eax
mov esi, dword [ebp - 0x94]
jmp 0x46c57f
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x54]
jne 0x46c494
mov eax, dword [ecx + 0x54]
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0x60]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xf4]
xor edx, edx
jmp 0x46c57b
cmp byte [ecx + 0x1f], 0
je 0x46c4c4
mov ecx, dword [ebp - 0xb0]
lea edx, [ebp - 0xc8]
call fcn.0046164e
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
xor edx, edx
jmp 0x46c575
mov esi, dword [ebp - 0xb0]
mov ecx, esi
call fcn.00461624
mov eax, dword [esi + 0x34]
jmp 0x46c4b1
mov eax, dword [ecx + 0x10]
test eax, eax
jle 0x46c573
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xf4], eax
cmp byte [ecx + 0x22], dl
je 0x46c539
mov edx, dword [ebp - 0xbc]
imul edx, edx, 0x28
mov ebx, 0x1000
push ebx
add edx, eax
mov ecx, esi
call fcn.00466828
pop ecx
mov ecx, dword [ebp - 0x94]
test word [ecx + 0x1c], bx
je 0x46b184
call fcn.00466293
mov esi, dword [ebp - 0xd8]
test eax, eax
jne 0x470685
jmp case.default.0x46aec5
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [ebp - 0xb4], eax
test byte [ebx + 3], 0x20
mov eax, edx
jne 0x46c55c
mov eax, dword [edi + 0x54]
mov dword [ecx + 0x50], eax
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xd0]
jmp 0x46c57b
mov eax, edx
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x46c596
mov ax, word [esi + 0x1c]
xor edx, edx
mov ecx, 0xbe01
and ax, cx
inc edx
or ax, dx
jmp 0x46bd46
mov ebx, dword [ebp - 0xd8]
cmp eax, dword [ebx + 0x50]
mov ebx, dword [ebp - 0xec]
ja 0x47063d
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ecx + 0x58]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x54]
mov eax, dword [ebp - 0xec]
jne 0x46c5e5
mov ecx, dword [ecx + 0x5c]
mov dword [ebp - 0xa8], ecx
jmp 0x46c822
mov esi, dword [ebp - 0xf4]
mov dword [ebp - 0x54], edx
lea eax, [eax + esi*4]
mov dword [ebp - 0xa8], eax
mov dword [ecx + 0x5c], eax
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [edi + 0x54]
mov dword [eax + 0x50], ecx
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x46c627
mov dword [ebp - 0x98], eax
jmp 0x46c686
mov esi, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb0]
cmp byte [esi + 0x1f], 0
mov ecx, edx
je 0x46c644
cmp byte [eax + 0x5b], 1
jne 0x46c661
push edx
jmp 0x46c64c
cmp byte [eax + 0x5b], 1
jne 0x46c661
push 1
lea edx, [ebp - 0x54]
mov ecx, eax
call fcn.00461a4b
mov esi, dword [ebp - 0xb8]
pop ecx
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x98], ecx
cmp eax, dword [ebp - 0x54]
ja 0x46c67d
mov dword [ebp - 0xb4], ecx
mov dword [esi + 0x60], ecx
jmp 0x46c680
mov dword [esi + 0x60], edx
mov eax, dword [ebp - 0x98]
mov cl, byte [eax]
mov edx, 0x80
cmp cl, dl
jae 0x46c69c
movzx edx, cl
xor ecx, ecx
mov dword [ebp - 0x60], edx
inc ecx
jmp 0x46c6b2
lea edx, [ebp - 0x60]
mov ecx, eax
call fcn.00456016
mov edx, dword [ebp - 0x60]
movzx ecx, al
mov eax, dword [ebp - 0x98]
movzx ecx, cl
mov dword [ebp - 0x58], ecx
cmp edx, 0x18003
jbe 0x46c6d5
mov ecx, 0x1038d
call fcn.0049865f
mov dword [ebp - 0xd4], eax
jmp 0x47044c
mov ecx, dword [ebp - 0xa4]
imul ecx, ecx, 5
add ecx, 3
cmp ecx, edx
cmovg ecx, edx
cmp dword [ebp - 0xb4], 0
mov dword [ebp - 0xa0], ecx
jne 0x46c74c
cmp dword [ebp - 0x54], ecx
jge 0x46c74c
xor eax, eax
and dword [ebp - 0x90], eax
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xb8]
xor edx, edx
movzx eax, byte [eax + 0x1f]
push eax
push ecx
mov ecx, dword [ebp - 0xb0]
call fcn.00466c2d
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x47044c
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x98], eax
lea esi, [eax + ecx]
add eax, dword [ebp - 0x58]
xor ecx, ecx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x9c], ecx
cmp dword [ebp - 0xa4], ecx
jle 0x46c7d5
cmp eax, esi
mov eax, dword [ebp - 0xa8]
jae 0x46c876
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x68]
mov edx, 0x80
mov al, byte [ecx]
cmp al, dl
jae 0x46c793
movzx edx, al
inc ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x68], ecx
jmp 0x46c7a4
lea edx, [ebp - 0x50]
call fcn.00456016
mov edx, dword [ebp - 0x50]
movzx eax, al
add dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x50]
call fcn.00468f2f
mov edx, dword [ebp - 0x60]
add edx, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], edx
cmp edx, eax
jae 0x46c87d
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x90]
call fcn.004664ae
mov ecx, dword [ebp - 0x64]
xor eax, eax
inc eax
mov word [ebp - 0x74], ax
cmp dword [ebp - 0x68], ecx
ja 0x46c9d8
mov eax, dword [ebp - 0xd0]
cmp dword [ebp - 0x60], eax
ja 0x46c9d8
cmp dword [ebp - 0x68], ecx
jne 0x46c810
cmp dword [ebp - 0x60], eax
jne 0x46c9d8
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
cmp dword [ecx + edx*4], 0
je 0x46c95a
cmp dword [ebp - 0xb4], 0
je 0x46c8a1
mov ebx, 0x2460
test word [esi + 0x1c], bx
je 0x46c865
mov ecx, esi
call fcn.0046645d
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ecx + edx*4]
add ecx, dword [ebp - 0xb4]
mov edx, dword [eax + edx*4]
jmp 0x46c942
and dword [eax + ecx*4], 0
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x9c]
inc ecx
mov dword [ebp - 0x9c], ecx
cmp ecx, dword [ebp - 0xa4]
jge 0x46c7d5
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
jmp 0x46c768
mov edx, dword [eax + edx*4]
mov dword [ebp - 0x50], edx
mov al, byte [ebx + 3]
test al, 0xc0
je 0x46c8d0
cmp edx, 0xc
jb 0x46c8b8
test dl, 1
je 0x46c8c1
mov ecx, 0x80
test cl, al
je 0x46c8d0
cmp edx, 0xc
sbb ecx, ecx
lea eax, [ebp - 0xc8]
and ecx, eax
jmp 0x46c93c
mov ecx, edx
call fcn.00468f2f
mov edx, esi
lea ecx, [ebp - 0x90]
mov dword [ebp - 0xa0], eax
call fcn.004668ec
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax + 0x1f]
push eax
mov eax, dword [ebp - 0xa8]
push dword [ebp - 0xa0]
mov edx, dword [eax + edx*4]
call fcn.00466c2d
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x47044c
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0x98], ecx
push esi
call fcn.00468fe7
mov eax, dword [ebp - 0x94]
pop ecx
mov cl, byte [ebp - 0xfd]
mov byte [eax + 0x1f], cl
jmp 0x46c989
cmp byte [ebx + 1], 0xf8
jne 0x46c973
mov edx, dword [ebx + 0x10]
mov eax, 0x800
push eax
mov ecx, esi
call fcn.00466828
pop ecx
jmp 0x46c989
mov ax, word [esi + 0x1c]
mov ecx, 0xbe01
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [esi + 0x1c], ax
cmp dword [ebp - 0x6c], 0
je 0x46c9c8
mov eax, dword [ebp - 0x94]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0x94]
mov ecx, 0x200
or word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x6c]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x94]
call fcn.00466293
jmp 0x46c6ca
mov ecx, 0x103dd
jmp 0x46c6c5
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 4]
mov cl, byte [eax]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov byte [ebp - 0xcc], cl
test cl, cl
je 0x46ca4f
push 0x28
pop edi
mov ebx, 0x4000
inc eax
mov dword [ebp - 0xd0], eax
test word [esi + 0x1c], bx
je 0x46ca25
mov ecx, esi
call fcn.004662ef
mov cl, byte [ebp - 0xcc]
push dword [ebp - 0xfd]
mov dl, cl
mov ecx, esi
call fcn.0046acc3
mov eax, dword [ebp - 0xd0]
pop ecx
mov cl, byte [eax]
add esi, edi
mov byte [ebp - 0xcc], cl
test cl, cl
jne 0x46ca0b
mov edi, dword [ebp - 0xf8]
inc eax
mov dword [ebp - 0xd0], eax
jmp 0x46b184
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb0], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0xc8], xmm0
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x9c], ecx
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xa4], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x9c], eax
imul eax, eax, 0x28
lea edx, [eax - 0x28]
movzx eax, byte [edi + 0x61]
add edx, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xa0], edx
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xcc], esi
cmp ecx, edx
ja 0x46cc0c
mov edi, dword [ebp - 0xec]
test edi, edi
je 0x46cb3b
push dword [ebp - 0xfd]
mov eax, esi
sub eax, ecx
cdq
push 0x28
pop ecx
idiv ecx
mov ecx, esi
mov dl, byte [eax + edi]
call fcn.0046acc3
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xb0]
pop ecx
mov dword [ebp - 0xe8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x46cb7c
cmp dword [esi + 0x18], ebx
jle 0x46cb7c
mov ecx, esi
call fcn.004662ef
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0x94]
mov ecx, esi
call fcn.00468e3c
mov ecx, eax
mov dword [ebp - 0xa8], ecx
call fcn.00468f2f
mov dword [ebp - 0x8c], eax
cdq
add dword [ebp - 0xc8], eax
push ebx
push ecx
adc dword [ebp - 0xc4], edx
call fcn.0045607e
mov edi, dword [ebp - 0xc0]
add edi, eax
pop ecx
mov eax, 0x4000
mov dword [ebp - 0xc0], edi
pop ecx
mov ecx, dword [ebp - 0xe8]
test word [esi + 0x1c], ax
je 0x46cbd6
add ecx, dword [esi + 0x10]
jmp 0x46cbe1
xor eax, eax
cmp dword [ebp - 0x8c], eax
cmovne ecx, eax
push 0x28
pop eax
add esi, eax
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0xcc], esi
cmp esi, dword [ebp - 0xa0]
jbe 0x46caec
jmp 0x46cc12
mov edi, dword [ebp - 0xc0]
mov eax, edi
cdq
push edx
push eax
call fcn.0045607e
mov esi, eax
add edi, esi
mov eax, edi
cdq
push edx
push eax
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xc0], edi
call fcn.0045607e
add esp, 0x10
cmp esi, eax
jge 0x46cc44
inc edi
mov dword [ebp - 0xc0], edi
mov eax, dword [ebp - 0xe8]
cdq
mov ecx, eax
mov eax, edi
mov esi, edx
cdq
sub eax, ecx
mov edi, edx
sbb edi, esi
add eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd8]
adc edi, dword [ebp - 0xc4]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edi
mov eax, dword [esi + 0x50]
cdq
cmp edi, edx
jg 0x470635
mov edx, dword [ebp - 0xec]
jl 0x46cc98
cmp edx, eax
ja 0x470635
mov edi, dword [ebp - 0xe4]
push ebx
mov ecx, edi
call fcn.004661d4
pop ecx
test eax, eax
jne 0x47066f
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi + 4]
mov eax, 0x80
mov dword [ebp - 0xd0], ecx
cmp edx, eax
jae 0x46ccd0
mov al, dl
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x46ccd5
call fcn.00455e88
mov ecx, dword [ebp - 0xa0]
movzx esi, al
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, ecx
ja 0x46cd68
push 0x28
pop edi
mov edx, dword [ebp - 0x94]
mov ecx, eax
call fcn.00468e3c
mov edx, eax
mov eax, 0x80
mov dword [ebp - 0xa8], edx
cmp edx, eax
jae 0x46cd25
mov eax, dword [ebp - 0xd0]
mov cl, dl
mov byte [esi + eax], cl
xor eax, eax
inc eax
jmp 0x46cd33
mov ecx, dword [ebp - 0xd0]
lea ecx, [esi + ecx]
call fcn.00455e88
mov esi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xcc]
add eax, edi
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, ecx
jbe 0x46ccf7
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, ecx
ja 0x46cdbe
push 0x28
pop edi
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xb8]
push eax
sub edx, esi
lea ecx, [esi + ecx]
call fcn.00468f42
mov esi, dword [ebp - 0x90]
add esi, eax
mov eax, dword [ebp - 0xcc]
add eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
jbe 0x46cd75
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xb8]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov dword [edi + 0x20], ebx
mov ebx, dword [ebp - 0xe4]
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x46cdef
mov dword [ebx + 0x10], eax
mov eax, 0x4410
mov word [ebx + 0x1c], ax
mov byte [ebx + 0x1f], 1
jmp 0x46b17e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x46ce20
lea edx, [ebp - 0xd0]
call fcn.004648c1
mov dword [ebp - 0xd4], eax
jmp 0x46ce2b
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp case.default.0x46aec5
mov eax, dword [ebx + 4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 0x10]
xor ebx, ebx
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xcc], ecx
test eax, eax
jne 0x46cf45
cmp dword [esi + 0x88], ebx
jle 0x46ce82
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x46cfbb
call fcn.0045545d
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x1e4]
add eax, dword [esi + 0x1e0]
xor edx, edx
push eax
mov ecx, esi
call fcn.0048e49c
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705e5
mov edx, dword [ebp - 0xc8]
mov ecx, esi
lea edx, [edx + 0x19]
call fcn.00453ac0
mov dword [ebp - 0xc4], eax
test eax, eax
je case.default.0x46aec5
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc8]
inc eax
push eax
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
push dword [eax]
call fcn.004a8c80
add esp, 0xc
cmp byte [esi + 0x36], bl
je 0x46cf01
mov byte [esi + 0x36], bl
mov byte [esi + 0x3d], 1
jmp 0x46cf07
inc dword [esi + 0x1e0]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + 0x1d8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + 0x1e8]
mov dword [esi + 0x1d8], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + 0x1ec]
mov dword [eax + 0xc], ecx
jmp case.default.0x46aec5
mov dword [ebp - 0xb8], ebx
mov esi, dword [esi + 0x1d8]
mov dword [ebp - 0xc0], esi
test esi, esi
je 0x46d211
mov edi, dword [ebp - 0xf4]
push edi
push dword [esi]
call fcn.00455583
pop ecx
pop ecx
mov ecx, dword [ebp - 0xb8]
test eax, eax
je 0x46cf8d
inc ecx
mov dword [ebp - 0xb8], ecx
mov esi, dword [esi + 0x10]
mov dword [ebp - 0xc0], esi
test esi, esi
jne 0x46cf65
mov edi, dword [ebp - 0xf8]
test esi, esi
je 0x46d20b
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xec]
cmp dword [eax + 0x88], ebx
jle 0x46cfcf
cmp edx, 1
jne 0x46cfcf
push str.cannot_release_savepoint___SQL_statements_in_progress
mov esi, eax
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0xc
push 5
jmp 0x46d51a
cmp dword [esi + 0x10], ebx
jne 0x46d0c0
cmp byte [eax + 0x3d], bl
je 0x46d0c0
mov dword [ebp - 0xec], 1
cmp edx, 1
jne 0x46d0c6
mov ecx, edi
call fcn.00468885
mov esi, eax
test esi, esi
jne 0x4706fa
mov esi, dword [ebp - 0xd8]
mov ecx, edi
mov byte [esi + 0x36], 1
call fcn.004688da
push 5
pop ecx
cmp eax, ecx
je 0x470531
mov byte [esi + 0x3d], bl
mov eax, dword [edi + 0x5c]
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
mov ebx, dword [ebp - 0xd8]
cmp dword [ebx + 0x1d8], esi
je 0x46d083
mov eax, dword [ebx + 0x1d8]
mov dword [ebp - 0xbc], eax
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x1d8], eax
mov edx, dword [ebp - 0xbc]
mov ecx, ebx
call fcn.00453901
dec dword [ebx + 0x1e0]
mov esi, dword [ebp - 0xc0]
cmp dword [ebx + 0x1d8], esi
jne 0x46d047
mov edx, dword [ebp - 0xd0]
cmp edx, 1
jne 0x46d1bf
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0xd8]
mov ecx, esi
mov dword [esi + 0x1d8], eax
mov edx, dword [ebp - 0xc0]
call fcn.00453901
cmp dword [ebp - 0xec], 0
jne case.default.0x46aec5
dec dword [esi + 0x1e0]
jmp 0x46d1e4
mov dword [ebp - 0xec], ebx
mov eax, dword [eax + 0x1e0]
sub eax, ecx
mov ecx, dword [ebp - 0xd8]
dec eax
push 2
mov dword [ebp - 0xb8], eax
pop eax
cmp edx, eax
jne 0x46d12e
mov eax, ebx
mov dword [ebp - 0xb4], eax
cmp dword [ecx + 0x14], ebx
jle 0x46d12e
push 4
mov esi, ecx
pop edi
mov ecx, dword [esi + 0x10]
add eax, eax
mov edx, edi
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0046136e
mov eax, dword [ebp - 0xb4]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, dword [esi + 0x14]
jl 0x46d0f4
mov edi, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd8]
mov eax, ebx
mov dword [ebp - 0xb4], eax
cmp dword [ecx + 0x14], ebx
jle 0x46d182
mov esi, dword [ebp - 0xd8]
mov ecx, dword [esi + 0x10]
push dword [ebp - 0xb8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00461485
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705e5
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, dword [esi + 0x14]
jl 0x46d141
mov esi, dword [ebp - 0xc0]
push 2
pop eax
cmp edx, eax
jne 0x46d039
mov ebx, dword [ebp - 0xd8]
test byte [ebx + 0x18], al
je 0x46d03f
mov ecx, ebx
call fcn.004695d8
call fcn.00479461
push 2
pop eax
or dword [ebx + 0x18], eax
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
jmp 0x46d03f
cmp dword [ebp - 0xec], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1e8], eax
mov eax, dword [esi + 0xc]
mov esi, dword [ebp - 0xd8]
mov dword [esi + 0x1ec], eax
jne case.default.0x46aec5
push dword [ebp - 0xb8]
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0048e49c
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705e5
jmp 0x470452
mov ecx, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xd8]
push ecx
push str.no_such_savepoint:__s
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0x10
jmp 0x46d2b6
mov esi, dword [ebx + 4]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], esi
mov edx, dword [ebx + 8]
mov dword [ebp - 0xcc], edx
test esi, esi
je 0x46d275
cmp byte [ecx + 0x36], 0
jne 0x46d275
xor ebx, ebx
mov dword [ebp - 0xc8], 1
test edx, edx
jne 0x46d27d
cmp dword [ecx + 0x88], ebx
jle 0x46d27d
push str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, ecx
jmp 0x46cfbb
xor ebx, ebx
mov dword [ebp - 0xc8], ebx
movzx eax, byte [ecx + 0x36]
cmp esi, eax
jne 0x470547
test edx, edx
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test esi, esi
mov esi, dword [ebp - 0xd8]
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebp - 0xd4], eax
jmp 0x470452
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], ecx
test ecx, ecx
je case.default.0x46aec5
mov edx, dword [ebx + 8]
call fcn.0046098e
push 5
pop ecx
mov dword [ebp - 0xd4], eax
cmp eax, ecx
je 0x4705c2
test eax, eax
jne 0x4705e5
xor edx, edx
cmp dword [ebx + 8], edx
je 0x470452
add ecx, 0x7b
test byte [edi + 0x64], cl
je 0x470452
cmp byte [esi + 0x36], dl
je 0x46d328
cmp dword [esi + 0x84], 1
jle 0x470452
cmp dword [edi + 0x74], edx
jne 0x46d342
mov eax, dword [esi + 0x1e0]
inc dword [esi + 0x1e4]
add eax, dword [esi + 0x1e4]
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x74]
dec eax
push eax
xor edx, edx
mov ecx, esi
call fcn.0048e49c
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x46d390
mov ebx, dword [ebp - 0xd0]
mov edi, dword [edi + 0x74]
mov esi, dword [ebx + 4]
mov ecx, ebx
call fcn.0045ecce
mov ecx, dword [esi]
mov edx, edi
call fcn.0045ca69
mov ecx, ebx
mov dword [ebp - 0xd4], eax
call fcn.0045ed41
mov edi, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xd8]
mov eax, dword [esi + 0x1e8]
mov dword [edi + 0x98], eax
mov eax, dword [esi + 0x1ec]
mov dword [edi + 0x9c], eax
jmp case.default.0x46aec5
mov eax, dword [ebx + 4]
mov dword [ebp - 0xcc], eax
mov edx, dword [ebx + 0xc]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc8], edx
push ecx
mov ecx, dword [esi + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00464837
mov eax, dword [ebp - 0xd0]
pop ecx
jmp 0x46affe
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.00466664
mov ecx, dword [ebp - 0xd0]
push dword [esi + 0x10]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + 4]
call fcn.0046486a
xor edx, edx
inc edx
pop ecx
mov dword [ebp - 0xd4], eax
push 2
cmp dword [ebx + 8], edx
jne 0x46d447
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0xd8]
mov dword [ecx], eax
pop eax
or dword [esi + 0x18], eax
mov eax, dword [ebp - 0xd4]
jmp 0x46d468
pop ecx
cmp dword [ebx + 8], ecx
jne 0x46d462
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xd8]
cmp dword [ebx + 4], edx
jne 0x470452
mov ecx, esi
call fcn.004695d8
and dword [edi + 0x64], 0xffffffdf
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x46d4be
lea eax, [ebp - 0xd0]
xor edx, edx
push eax
inc edx
call fcn.00464837
mov eax, dword [esi + 0x10]
pop ecx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax + 4]
jmp 0x46d4c8
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
cmp ecx, dword [ebx + 8]
jne 0x46d4dc
cmp eax, dword [ebx + 0xc]
je case.default.0x46aec5
mov edx, dword [edi + 0x38]
mov ecx, esi
call fcn.00453901
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.00453be7
mov dword [edi + 0x38], eax
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd0]
je 0x46d514
mov ecx, esi
call fcn.00479434
or dword [edi + 0x64], 0x20
push 0x11
pop eax
jmp 0x46d2b9
test byte [edi + 0x64], 0x20
je 0x46d52d
mov eax, ecx
jmp 0x46d2b9
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov esi, ecx
mov dword [ebp - 0xd0], esi
mov eax, dword [ebx + 8]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], edx
shl edx, 4
add edx, dword [eax + 0x10]
mov dword [ebp - 0xb4], edx
mov eax, dword [edx + 4]
mov dword [ebp - 0xbc], eax
cmp byte [ebx], 0x28
jne 0x46d595
mov dword [ebp - 0xc0], 1
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [edi + 0x61]
jae 0x46d59b
mov byte [edi + 0x61], al
jmp 0x46d59b
mov dword [ebp - 0xc0], ecx
push 2
pop eax
test byte [ebx + 3], al
je 0x46d5db
mov esi, dword [ebp - 0xec]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.00466664
mov eax, dword [esi + 0x10]
push 2
pop ecx
mov dword [ebp - 0xc8], eax
cmp eax, ecx
jl 0x4705d0
mov eax, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xd0]
jmp 0x46d5e1
mov eax, dword [ebp - 0xf4]
mov cl, byte [ebx + 1]
cmp cl, 0xfa
jne 0x46d613
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xcc]
movzx esi, word [eax + 6]
mov eax, dword [ebp - 0xc4]
inc esi
jmp 0x46d61b
cmp cl, 0xf2
jne 0x46d621
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0xd0], esi
mov edx, dword [ebx + 4]
push 1
push eax
push esi
mov ecx, edi
call fcn.0046ab8f
add esp, 0xc
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x47067f
xor ecx, ecx
inc ecx
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x20], cl
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xc8]
push dword [eax]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xcc]
push dword [ebp - 0xc0]
call fcn.004614f0
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov cl, byte [ebx + 3]
mov eax, dword [eax]
and cl, 1
mov byte [eax + 0x5d], cl
mov eax, dword [ebp - 0xb8]
add esp, 0xc
cmp byte [ebx + 1], 0xfa
setne cl
mov byte [eax + 0x1e], cl
mov ecx, dword [ebp - 0xb8]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp 0x46b184
mov edx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
mov ecx, edi
call fcn.0046ab8f
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x470685
mov byte [eax + 0x1c], 1
movzx eax, byte [ebx + 3]
mov ecx, dword [esi]
or eax, 5
push 0x41e
push eax
mov eax, dword [ebp - 0xd0]
add eax, 4
push eax
push esi
xor edx, edx
call fcn.0045fe02
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x46d811
mov ecx, dword [ebp - 0xd0]
xor edx, edx
mov ecx, dword [ecx + 4]
inc edx
call fcn.0046098e
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x46d811
cmp dword [ebx + 0x10], eax
je 0x46d7e7
movzx esi, byte [ebx + 3]
push 2
pop eax
or esi, eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [eax + 4]
mov ecx, edi
call fcn.0045ecce
push esi
lea edx, [ebp - 0x128]
mov ecx, edi
call fcn.00464377
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0045ed41
cmp dword [ebp - 0xd4], 0
jne 0x46d7cf
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x128]
push dword [ecx]
mov ecx, dword [ecx + 4]
push dword [ebx + 0x10]
push 1
call fcn.004614f0
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0xc
mov dword [eax + 8], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
jmp 0x46d7d5
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd8]
mov byte [eax + 0x1e], 0
jmp 0x46d811
mov ecx, dword [ebp - 0xd0]
push dword [ecx]
mov ecx, dword [ecx + 4]
push eax
xor eax, eax
inc eax
push eax
mov edx, eax
call fcn.004614f0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0xc
mov byte [eax + 0x1e], 1
push 8
pop eax
cmp byte [ebx + 3], al
mov eax, dword [ebp - 0xd0]
setne cl
mov byte [eax + 0x20], cl
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp case.default.0x46aec5
mov edx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
mov ecx, edi
call fcn.0046ab8f
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x470685
mov ecx, dword [ebx + 0x10]
mov dword [eax + 8], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xd0]
mov ecx, esi
mov byte [eax + 0x21], 1
mov edx, dword [ebp - 0xd0]
call fcn.0047157f
jmp 0x46d2b9
mov edx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push dword [ebx + 0xc]
mov ecx, edi
call fcn.0046ab8f
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x470685
xor edx, edx
inc edx
mov byte [eax + 0x1c], dl
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebx + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], dl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebx + 3]
mov byte [eax + 0x22], cl
jmp case.default.0x46aec5
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x44]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.004680bd
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
and dword [eax + ecx*4], 0
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
xor edx, edx
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc8], ecx
cmp dword [ecx], edx
je 0x46aed9
movzx eax, byte [ebx]
mov dword [ebp - 0xcc], eax
mov byte [ecx + 0x1c], dl
mov esi, dword [ebp - 0xc8]
cmp byte [esi + 0x1e], dl
je 0x46db68
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.0046ac46
mov ecx, esi
call fcn.00466540
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], edx
xor edx, edx
mov byte [eax + 0x19], dl
movzx eax, word [esi + 0x1c]
push 4
pop ecx
test cl, al
jne 0x46daf7
push 8
pop ecx
test cl, al
jne 0x46d994
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
jmp 0x46b184
cmp dword [ebp - 0xa0], edx
jne 0x46da64
mov eax, SHChangeNotifyRegister
cmp dword [ebp - 0x9c], eax
jne 0x46da64
movsd xmm1, qword [esi + 8]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], eax
fild qword [ebp - 0x140]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
fstp qword [ebp - 0xf0]
movsd xmm0, qword [ebp - 0xf0]
comisd xmm0, xmm1
xorps xmm0, xmm0
ja 0x46d9f1
comisd xmm1, xmm0
jbe 0x46da64
mov dword [ebp - 0xd0], 1
comisd xmm0, xmmword [esi + 8]
jbe 0x46da24
cmp dword [ebp - 0xcc], 0x30
jl 0x46d985
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.00461cfa
jmp 0x46da44
cmp dword [ebp - 0xcc], 0x2f
jg 0x46d985
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.00461d25
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705df
cmp dword [ebp - 0xd0], 0
je 0x47044c
jmp 0x46d985
cmp dword [ebp - 0xcc], 0x2e
je 0x46dabd
cmp dword [ebp - 0xcc], 0x30
je 0x46dabd
fild qword [ebp - 0xa0]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
fstp qword [ebp - 0xf0]
movsd xmm0, qword [ebp - 0xf0]
comisd xmm0, xmmword [esi + 8]
jbe 0x46daf7
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
add eax, 0xffffffff
adc ecx, 0xffffffff
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
jmp 0x46db03
fild qword [ebp - 0xa0]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
movsd xmm0, qword [esi + 8]
fstp qword [ebp - 0xf0]
comisd xmm0, xmmword [ebp - 0xf0]
jbe 0x46daf7
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
add eax, 1
adc ecx, edx
jmp 0x46daaf
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
lea esi, [ebp - 0xd0]
push esi
push edx
push ecx
mov ecx, dword [ebp - 0xc8]
push eax
mov ecx, dword [ecx]
xor edx, edx
call fcn.00461d6e
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705df
xor edx, edx
cmp dword [ebp - 0xd0], edx
jne 0x46dbf3
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 1
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x44], ecx
jmp 0x46dbf3
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xa8], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xbc], ax
mov al, byte [ebp - 0xcc]
and al, 1
mov byte [ebp - 0xba], al
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov eax, 0x4000
mov dword [ebp - 0xb0], ecx
test word [ecx + 0x1c], ax
je 0x46dbc0
call fcn.004662ef
mov esi, dword [ebp - 0xc8]
xor edx, edx
mov ecx, dword [esi]
lea eax, [ebp - 0xd0]
push eax
push edx
push edx
push edx
lea edx, [ebp - 0xc0]
call fcn.00461d6e
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705df
mov eax, dword [ebp - 0xc8]
xor edx, edx
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x50], edx
cmp dword [ebp - 0xcc], 0x30
mov eax, dword [ebp - 0xd0]
jl 0x46dc44
test eax, eax
js 0x46dc2e
jne 0x46dc23
cmp dword [ebp - 0xcc], 0x31
je 0x46dc2e
mov dword [ebp - 0xd0], edx
jmp 0x46b184
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0046201b
jmp 0x46dc80
test eax, eax
jg 0x46dc6c
jne 0x46dc53
cmp dword [ebp - 0xcc], 0x2e
je 0x46dc6c
mov eax, dword [ebp - 0xc8]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x5b], 1
setne cl
mov dword [ebp - 0xd0], ecx
jmp 0x46dc9a
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00462129
pop ecx
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x4705df
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
cmp dword [ebp - 0xd0], 0
jmp 0x46bf3d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
xor edx, edx
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
cmp dword [eax], edx
je case.default.0x46aec5
mov byte [eax + 0x1c], dl
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
call fcn.00466540
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], 1
jmp case.default.0x46aec5
mov eax, dword [edi + 0x44]
xor edx, edx
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xcc], ecx
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
cmp dword [ecx], edx
je 0x46de21
cmp dword [ebx + 0x10], edx
jle 0x46dd5f
mov eax, dword [ecx + 8]
mov dword [ebp - 0xb8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xb4], ax
push 2
pop eax
mov byte [ebp - 0xb2], al
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xc0], eax
jmp 0x46ddba
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0xc4]
push eax
push 0x97
lea edx, [ebp - 0xa0]
call fcn.004691c3
pop ecx
pop ecx
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x47067f
mov ecx, dword [ebp - 0xcc]
mov edx, dword [esi + 0x18]
mov ecx, dword [ecx + 8]
push eax
push dword [esi + 4]
call fcn.0046921b
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
push 2
pop ecx
or byte [eax + 6], cl
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xcc]
xor edx, edx
mov ecx, dword [ecx]
lea esi, [ebp - 0xc8]
push esi
push edx
push edx
push edx
mov edx, eax
call fcn.00461d6e
mov esi, dword [ebp - 0xd8]
xor edx, edx
add esp, 0x10
mov dword [ebp - 0xd4], eax
cmp dword [ebx + 0x10], edx
jne 0x46ddf2
mov edx, dword [ebp - 0xc4]
mov ecx, esi
call fcn.00453901
xor edx, edx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x470452
cmp dword [ebp - 0xc8], eax
sete al
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x50], edx
cmp byte [ebx], 0x34
je 0x46dc9a
mov esi, dword [ebp - 0xd8]
cmp dword [ebp - 0xd0], 0
jmp 0x46c3c0
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
imul esi, esi, 0x28
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
add esi, dword [ebp - 0xdc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xcc], eax
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x50], edx
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 8]
xor ecx, ecx
mov ax, word [eax + 6]
mov word [ebp - 0xc4], ax
movzx eax, ax
mov word [ebp - 0xd0], cx
mov dword [ebp - 0xf4], eax
test eax, eax
jle 0x46dedf
mov eax, edx
mov edi, dword [ebp - 0xc0]
imul eax, eax, 0x28
test byte [eax + edi + 0x1c], 1
mov edi, dword [ebp - 0xf8]
jne 0x46df99
inc cx
movzx eax, cx
mov word [ebp - 0xd0], cx
cmp eax, dword [ebp - 0xf4]
jl 0x46deb1
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x46b184
mov eax, dword [ebp - 0xcc]
push 4
mov eax, dword [eax + 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc4]
inc eax
mov word [ebp - 0xb4], ax
pop eax
mov byte [ebp - 0xb2], al
mov eax, dword [ebp - 0xc0]
mov ecx, esi
mov dword [ebp - 0xa8], eax
call fcn.00466664
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xa0], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xcc]
add eax, 0x4c
push eax
xor eax, eax
push eax
push eax
push eax
lea edx, [ebp - 0xb8]
call fcn.00461d6e
add esp, 0x10
mov dword [ebp - 0xd4], eax
push 4
pop ecx
test byte [ebp - 0xb2], cl
jne 0x46dfb4
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp - 0xa0]
jne 0x46df88
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x9c]
je 0x46dfae
mov dword [esi + 0x10], ecx
mov eax, dword [ebp - 0xac]
mov dword [esi + 0x14], eax
jmp 0x46b184
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xc8], edx
jmp 0x46dee5
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebx + 8]
dec esi
mov dword [ebp - 0xe0], esi
jmp 0x47044c
mov esi, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
imul esi, esi, 0x28
mov eax, dword [edi + 0x44]
add esi, dword [ebp - 0xdc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x46e09c
xor edx, edx
mov dword [ebp - 0xc8], edx
mov ecx, dword [esi + 0x10]
lea edi, [ebp - 0xc8]
push edi
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + 0x14]
push edx
push eax
push ecx
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xbc], eax
call fcn.00461d6e
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xf8]
mov dword [eax + 0x40], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ebp - 0xd0]
add esp, 0x10
mov dword [eax + 0x44], ecx
cmp dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x19], cl
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov byte [eax + 0x1c], dl
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], dl
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
je 0x46e08e
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], ecx
jmp 0x46b184
mov esi, dword [ebx + 8]
dec esi
and dword [eax + 0x4c], 0
mov dword [ebp - 0xe0], esi
jmp 0x46b184
mov eax, dword [edi + 0x44]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x14], eax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp case.default.0x46aec5
mov eax, dword [edi + 0x44]
xor edx, edx
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov dword [ebp - 0xc4], edx
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xc8], esi
mov eax, dword [esi]
mov dword [ebp - 0xe8], esi
test eax, eax
je 0x46e402
cmp byte [esi + 0x1b], dl
jne 0x46e2dc
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0xd0], ecx
mov esi, dword [eax + 0x24]
mov eax, ecx
or eax, esi
mov dword [ebp - 0xcc], esi
jne 0x46e1d1
mov eax, dword [ebp - 0xe8]
lea edx, [ebp - 0xc4]
mov ecx, dword [eax]
call fcn.00461d25
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705df
cmp dword [ebp - 0xc4], eax
je 0x46e163
xor ecx, ecx
inc ecx
xor edx, edx
mov esi, edx
jmp 0x46e1b9
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.0046164e
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
cmp esi, 0x7fffffff
jl 0x46e1b1
jg 0x46e197
cmp ecx, 0xffffffff
jb 0x46e1b1
mov eax, dword [ebp - 0xc8]
xor edx, edx
mov byte [eax + 0x1b], 1
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
jmp 0x46e1c5
push 0
add ecx, 1
pop edx
adc esi, edx
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x46e295
mov ecx, dword [edi + 0xa8]
test ecx, ecx
jne 0x46e257
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xbc], eax
call fcn.00466664
mov ebx, dword [ebp - 0xbc]
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
cmp esi, 0xffffffff
jne 0x46e219
cmp ecx, 0x7fffffff
je 0x4705dc
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x1b], 0
jne 0x4705dc
push 0
add esi, 1
pop edx
adc ecx, edx
cmp dword [ebp - 0xcc], ecx
jg 0x46e26f
jl 0x46e245
mov eax, dword [ebp - 0xd0]
cmp eax, esi
jae 0x46e275
mov eax, esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x46e275
mov ecx, eax
mov dword [ebp - 0xb8], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x46e255
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ecx + 0xc]
jmp 0x46e1ef
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
jmp 0x46e29b
mov eax, dword [ebp - 0xe8]
cmp esi, 0x7fffffff
jg 0x46e2b1
jl 0x46e2aa
cmp ecx, 0xffffffff
jae 0x46e2b1
add ecx, 1
adc esi, edx
jmp 0x46e2c8
xorps xmm0, xmm0
movlpd qword [ebp - 0x138], xmm0
mov esi, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x138]
push esi
push ecx
mov ecx, dword [eax]
call fcn.00461567
mov esi, dword [ebp - 0xc8]
add esp, 8
xor edx, edx
cmp byte [esi + 0x1b], 0
je 0x46e3ed
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
xor ebx, ebx
and eax, 0x3fffffff
inc ebx
add ecx, ebx
lea edi, [ebp - 0xc4]
push edi
adc eax, edx
push edx
push eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
push ecx
mov ecx, dword [esi]
xor edx, edx
call fcn.00461d6e
mov edi, dword [ebp - 0xf8]
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xd4], edx
test edx, edx
jne 0x46e3e5
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jne 0x46e3d9
mov eax, dword [ebp - 0xc0]
inc eax
mov dword [ebp - 0xc0], eax
cmp eax, 0x64
jge 0x46e3d9
lea eax, [ebp - 0xd0]
push eax
push 8
pop eax
push eax
call fcn.00454e5f
cmp dword [ebp - 0xc0], 5
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd0]
jge 0x46e389
and ecx, 0xffffff
xor eax, eax
mov edx, eax
jmp 0x46e397
mov edx, dword [ebp - 0xcc]
and edx, 0x3fffffff
xor eax, eax
add ecx, ebx
lea esi, [ebp - 0xc4]
push esi
adc edx, eax
push eax
push edx
mov dword [ebp - 0xd0], ecx
push ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xcc], edx
mov ecx, dword [ecx]
xor edx, edx
call fcn.00461d6e
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xd4], edx
test edx, edx
je 0x46e33c
mov ecx, dword [ebp - 0xc4]
test edx, edx
jne 0x46e3e5
test ecx, ecx
je 0x4705dc
mov esi, dword [ebp - 0xc8]
xor edx, edx
mov byte [esi + 0x19], dl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp 0x46b184
mov esi, dword [ebx + 8]
mov edx, dword [ebp - 0xdc]
imul esi, esi, 0x28
mov eax, dword [edi + 0x44]
add esi, edx
mov dword [ebp - 0xd0], esi
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc0], eax
cmp byte [ebx], 0x39
mov dword [ebp - 0xec], eax
mov eax, dword [ebx + 0xc]
jne 0x46e469
imul eax, eax, 0x28
add eax, edx
mov dword [ebp - 0xcc], eax
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [eax + 0x14]
jmp 0x46e472
cdq
mov ecx, eax
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
test byte [ebx + 3], 1
je 0x46e481
inc dword [edi + 0x68]
push 2
pop eax
test byte [ebx + 3], al
je 0x46e4b5
mov dword [ebp - 0x104], edx
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x108], ecx
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x24], eax
mov edx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
jmp 0x46e4bb
mov edx, dword [ebp - 0xec]
xor ecx, ecx
test byte [esi + 0x1c], 1
je 0x46e4db
mov dword [esi + 4], ecx
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
push 0x10
pop eax
test byte [ebx + 3], al
je 0x46e4ee
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0xb8], eax
jmp 0x46e4f4
mov dword [ebp - 0xb8], ecx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x46e50a
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xbc], eax
jmp 0x46e510
mov dword [ebp - 0xbc], ecx
push ecx
push ecx
mov ecx, dword [edx]
call fcn.00461567
push dword [ebp - 0xb8]
movzx eax, byte [ebx + 3]
push 8
pop ecx
and eax, ecx
mov ecx, dword [ebp - 0xc0]
push eax
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ecx]
push dword [eax + 0x18]
xor edx, edx
push dword [eax + 4]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
call fcn.00463f9c
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc0]
xor edx, edx
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xc0]
add esp, 0x24
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x470452
cmp dword [esi + 0xbc], edx
je 0x470452
cmp dword [ebx + 0x10], edx
je 0x470452
mov eax, dword [ebp - 0xc0]
push 4
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [eax + ecx*8]
pop eax
push 0x12
mov dword [ebp - 0xb4], edx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xb0], ecx
test byte [ebx + 3], al
pop eax
push 0x17
pop ebx
push dword [ebp - 0xc4]
cmovne eax, ebx
push dword [ebp - 0xc8]
mov dword [ebp - 0xac], eax
push ecx
push edx
push eax
push dword [esi + 0xb8]
call dword [esi + 0xbc]
add esp, 0x18
jmp case.default.0x46aec5
mov eax, dword [edi + 0x44]
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0xc8], ecx
cmp dword [esi + 0xbc], eax
je 0x46e638
cmp dword [ebx + 0x10], eax
je 0x46e638
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xcc], eax
call fcn.00468d9e
test eax, eax
jne 0x4705e5
mov ecx, dword [ebp - 0xc8]
push eax
mov ecx, dword [ecx]
push eax
call fcn.00461567
mov ecx, dword [ebp - 0xc8]
add esp, 8
mov ecx, dword [ecx]
call fcn.00464172
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x50], 0
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x46e6c0
mov edx, dword [esi + 0xbc]
test edx, edx
je 0x46e6c0
cmp dword [ebx + 0x10], eax
je 0x46e6c0
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
push dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
push dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb8]
call edx
mov eax, dword [ebp - 0xd4]
add esp, 0x18
test byte [ebx + 8], 1
je 0x470452
inc dword [edi + 0x68]
jmp 0x470452
mov eax, dword [edi + 0x68]
add dword [esi + 0x4c], eax
mov dword [esi + 0x48], eax
and dword [edi + 0x68], 0
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
lea edx, [ebp - 0x124]
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0xd0], edi
mov esi, dword [ebx + 0xc]
mov ecx, dword [edi + 0x48]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
call fcn.00471e60
lea ecx, [ebp - 0xcc]
push ecx
push dword [ebp - 0x124]
xor edx, edx
push eax
push dword [esi + 0x18]
inc edx
push dword [esi + 4]
mov ecx, edi
call fcn.00471463
mov edi, dword [ebp - 0xf8]
xor eax, eax
add esp, 0x14
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xcc], eax
je 0x47044c
jmp 0x46dfb4
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 4]
imul edx, edx, 0x28
mov eax, dword [edi + 0x44]
add edx, dword [ebp - 0xdc]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xd0], ecx
call fcn.00471e87
jmp 0x46d2b9
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xcc], eax
call fcn.00468d9e
test eax, eax
jne 0x4705e5
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1f], 0
je 0x46e7f3
mov ecx, dword [ebp - 0xcc]
lea edx, [ebp - 0xc0]
call fcn.0046164e
mov eax, dword [esi + 0x50]
cdq
cmp dword [ebp - 0xbc], edx
jg 0x470643
mov edx, dword [ebp - 0xc0]
jl 0x46e7eb
cmp edx, eax
ja 0x470643
mov dword [ebp - 0xc8], edx
jmp 0x46e818
mov esi, dword [ebp - 0xcc]
mov ecx, esi
call fcn.00461624
mov edx, dword [esi + 0x34]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], edx
cmp edx, dword [esi + 0x50]
ja 0x470643
mov ecx, dword [ebp - 0xe4]
xor ebx, ebx
push ebx
call fcn.004661d4
pop ecx
test eax, eax
jne 0x470685
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xe4]
mov edx, 0xbe10
mov dword [ecx + 0x18], eax
mov ax, word [ecx + 0x1c]
and ax, dx
push 0x10
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1f], bl
je 0x46e87d
push ebx
mov ebx, ecx
mov ecx, dword [ebp - 0xcc]
push dword [ebx + 4]
xor edx, edx
push dword [ebp - 0xc8]
call fcn.00461739
add esp, 0xc
jmp 0x46e89b
push dword [ecx + 4]
push dword [ebp - 0xc8]
push ebx
push dword [ebp - 0xcc]
call fcn.00461a0c
mov ebx, dword [ebp - 0xe4]
add esp, 0x10
mov dword [ebp - 0xd4], eax
mov byte [ebx + 0x1f], 1
jmp 0x470452
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
cmp byte [ecx + 0x1c], 0
je 0x46e8cb
xor eax, eax
inc eax
mov word [edx + 0x1c], ax
jmp case.default.0x46aec5
cmp byte [ecx + 0x1d], 0
je 0x46e8df
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x3c]
jmp 0x46e944
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x46e91a
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
mov eax, dword [eax]
lea edx, [ebp - 0xc8]
push edx
mov dword [ebp - 0xbc], eax
push dword [ecx + 0x24]
call dword [eax + 0x30]
mov edx, dword [ebp - 0xc0]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0046ad2a
jmp 0x46e95f
call fcn.00468d9e
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705e5
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x19], al
je 0x46e94c
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xc4], eax
jmp 0x46e95f
mov ecx, dword [ecx]
lea edx, [ebp - 0xc8]
call fcn.0046164e
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc4]
jmp 0x46ce40
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
test ecx, ecx
je case.default.0x46aec5
call fcn.0045f005
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
xor edx, edx
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edx
test eax, eax
je 0x46e9ee
lea edx, [ebp - 0xc8]
mov ecx, eax
call fcn.00461d25
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
xor edx, edx
mov al, byte [ebp - 0xc8]
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
mov eax, dword [ebx + 8]
test eax, eax
jle case.default.0x46aec5
cmp dword [ebp - 0xc8], 0
je case.default.0x46aec5
jmp 0x46aedc
inc dword [edi + 0x7c]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xc8], 1
cmp dword [ecx + 0x48], 0
je 0x46ea6a
lea eax, [ebp - 0xc8]
mov edx, ecx
push eax
mov ecx, esi
call fcn.00471b88
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x46eab3
mov ecx, dword [ecx]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xcc], ecx
call fcn.00461cfa
cmp dword [ebp - 0xc8], 0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x1a], cl
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x1c], cl
cmp dword [ebp - 0xc8], 0
jmp 0x46bf43
xor edx, edx
cmp dword [esi + 0xe0], edx
jne 0x470659
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
test eax, eax
je case.default.0x46aec5
lea ecx, [ebp - 0xcc]
push ecx
cmp dword [eax + 0x48], edx
je 0x46eb0a
mov edx, eax
mov ecx, esi
call fcn.00471dae
jmp 0x46eb1a
mov dword [ebp - 0xcc], 1
push dword [eax]
call dword [ebx + 0x10]
pop ecx
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0xcc]
pop ecx
mov ecx, dword [ebp - 0xd0]
xor edx, edx
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
cmp dword [ebp - 0xcc], edx
jne 0x46eb5b
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov al, byte [ebx + 3]
test al, al
je 0x46eb5b
movzx eax, al
inc dword [edi + eax*4 + 0x74]
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], dl
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 8]
mov ecx, dword [eax]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x46b184
mov ecx, 0x4000
test word [esi + 0x1c], cx
je 0x46ebce
mov ecx, esi
call fcn.004662ef
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xd0]
xor edx, edx
jmp 0x46ebd8
xor edx, edx
mov ecx, edx
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x46b184
cmp dword [eax + 0x48], edx
je 0x46ebfa
push esi
mov esi, dword [ebp - 0xd8]
mov edx, eax
mov ecx, esi
call fcn.00471a4f
jmp 0x46fdcf
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0xc8], ecx
mov esi, dword [esi + 4]
mov dword [ebp - 0xc4], esi
test byte [ebx + 3], 0x10
je 0x46ec17
mov eax, dword [eax + 0x4c]
jmp 0x46ec19
mov eax, edx
push eax
push dword [ebx + 0xc]
mov eax, ecx
mov ecx, dword [ebp - 0xec]
push edx
push edx
cdq
push 0x4ea428
push edx
push eax
mov edx, esi
call fcn.00463f9c
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0x1c
and dword [eax + 0x50], 0
jmp 0x46b184
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je case.default.0x46aec5
mov eax, dword [eax + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0xbc], ax
mov byte [ebp - 0xba], 0
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
xor ebx, ebx
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xc8]
push eax
push ebx
push ebx
push ebx
lea edx, [ebp - 0xc0]
call fcn.00461d6e
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x46ecd7
cmp dword [ebp - 0xc8], ebx
jne 0x46ecd7
mov ecx, dword [ebp - 0xcc]
call fcn.00464172
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], ebx
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ebx, dword [ebp - 0xe4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
xor eax, eax
inc eax
mov word [ebx + 0x1c], ax
cmp dword [ebp - 0xd0], 0
je case.default.0x46aec5
mov ecx, dword [ebp - 0xcc]
call fcn.00468d9e
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705e5
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x1c], 0
jne case.default.0x46aec5
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0xc8]
push eax
call fcn.00469465
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4705e5
mov eax, dword [ebp - 0xc8]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xc4]
push 4
mov dword [ebx + 0x14], eax
pop eax
jmp 0x46c2af
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
cmp dword [ecx], 0
je case.default.0x46aec5
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xc4], ax
cmp byte [ebx + 3], 0
push 2
setne al
pop edx
add al, dl
mov byte [ebp - 0xc2], al
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00469546
cmp byte [ebx], 0x64
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
pop ecx
jne 0x46edf2
neg eax
jmp 0x46edf3
inc eax
mov dword [ebp - 0xcc], eax
test eax, eax
jle case.default.0x46aec5
jmp 0x46aed9
mov eax, dword [ebp - 0xd8]
xor edx, edx
mov esi, edx
mov dword [ebp - 0xcc], esi
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x46ee54
cmp dword [ecx + 0x34], 0xbdf20da3
jne 0x46ee41
mov eax, dword [ecx + 0x64]
and al, 0xc
cmp al, 8
jae 0x46ee41
cmp dword [ecx + 0x58], edx
jl 0x46ee41
inc esi
mov dword [ebp - 0xcc], esi
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
jne 0x46ee23
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
xor edx, edx
inc edx
mov word [ecx + 0x1c], dx
cmp dword [ebp - 0xcc], edx
jle 0x46ee7d
push 6
pop eax
push 2
pop ecx
mov dword [ebp - 0xd4], eax
mov byte [edi + 0x60], cl
jmp 0x47044c
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0xc4], ecx
mov eax, dword [eax + 0x10]
mov esi, dword [ebx + 4]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
call fcn.0045ecce
lea eax, [ebp - 0xd0]
push eax
mov edx, esi
mov ecx, edi
call fcn.004646af
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0045ed41
mov ecx, dword [ebp - 0xe4]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 0x14], edx
test eax, eax
jne 0x470446
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd8]
test edi, edi
je 0x47043e
mov ecx, dword [ebp - 0xc4]
mov ebx, dword [ebx + 4]
shl ecx, 4
add ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x46ef17
mov edx, dword [eax + 8]
cmp dword [edx + 0x20], edi
jne 0x46ef15
mov dword [edx + 0x20], ebx
mov eax, dword [eax]
test eax, eax
jne 0x46ef0a
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x46ef30
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x24], edi
jne 0x46ef2e
mov dword [ecx + 0x24], ebx
mov eax, dword [eax]
test eax, eax
jne 0x46ef23
mov al, byte [ebp - 0xc4]
mov edi, dword [ebp - 0xf8]
inc al
mov byte [ebp - 0xfe], al
jmp case.default.0x46aec5
xor ecx, ecx
mov dword [ebp - 0xd0], ecx
xor edx, edx
cmp dword [ebx + 0xc], ecx
mov ecx, dword [esi + 0x10]
lea eax, [ebp - 0xd0]
cmove eax, edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00464659
cmp dword [ebx + 0xc], 0
pop ecx
mov dword [ebp - 0xd4], eax
je 0x470452
mov edx, dword [ebp - 0xd0]
add dword [edi + 0x68], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x470452
mov ebx, dword [ebp - 0xdc]
imul ecx, ecx, 0x28
mov eax, edx
cdq
add dword [ecx + ebx + 0x10], eax
adc dword [ecx + ebx + 0x14], edx
jmp case.default.0x46aec5
and dword [ebp - 0xd0], 0
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 0xd8]
shl esi, 4
add esi, dword [eax + 0x10]
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xc8], esi
xor ebx, ebx
cmp byte [eax], 0x69
setne bl
inc ebx
mov dword [ebp - 0xcc], ebx
mov esi, dword [esi + 4]
mov ecx, esi
call fcn.0045ecce
push ebx
lea edx, [ebp - 0xd0]
mov ecx, esi
call fcn.00464377
pop ecx
mov ecx, esi
mov dword [ebp - 0xd4], eax
call fcn.0045ed41
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x46b184
mov edx, dword [ebx + 4]
cmp edx, 1
mov dword [ebp - 0xd0], edx
mov eax, str.sqlite_master
mov ecx, str.sqlite_temp_master
cmovne ecx, eax
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc4], esi
mov eax, dword [ebx + 4]
mov dword [ebp - 0xbc], eax
lea eax, [edi + 0x38]
mov dword [ebp - 0xc0], eax
push dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
push ecx
add edx, edx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.00454b75
add esp, 0x14
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x46f08b
push 7
pop eax
mov dword [ebp - 0xd4], eax
jmp 0x46f0e2
xor ebx, ebx
push ebx
lea eax, [ebp - 0xc4]
push eax
mov byte [esi + 0x81], 1
push fcn.00485575
push dword [ebp - 0xc8]
mov dword [ebp - 0xb8], ebx
push esi
call fcn.004828b8
mov edx, dword [ebp - 0xc8]
add esp, 0x14
test eax, eax
cmove eax, dword [ebp - 0xb8]
mov ecx, esi
mov dword [ebp - 0xd4], eax
call fcn.00453901
mov eax, dword [ebp - 0xd4]
mov byte [esi + 0x81], bl
test eax, eax
je 0x46f0ef
mov ecx, esi
call fcn.00479461
mov eax, dword [ebp - 0xd4]
cmp eax, 7
je 0x470685
jmp 0x470452
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.0047836c
jmp 0x46d2b9
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebx + 0x10]
shl esi, 4
add esi, dword [eax + 0x10]
push 0
mov ecx, edx
call fcn.0045545d
mov ecx, dword [esi + 0xc]
push eax
push 8
pop eax
add ecx, eax
call fcn.004565f0
mov esi, dword [ebp - 0xd8]
pop ecx
pop ecx
mov edx, eax
mov ecx, esi
call fcn.0047951d
push 2
pop eax
or dword [esi + 0x18], eax
jmp case.default.0x46aec5
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.004792f0
jmp 0x46b313
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.0048bea6
jmp 0x46b313
mov edx, dword [ebx + 8]
mov dword [ebp - 0xd0], edx
lea edx, [edx*4 + 4]
mov ecx, esi
call fcn.00453ac0
mov edx, eax
xor eax, eax
mov dword [ebp - 0xcc], edx
test edx, edx
je 0x470687
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xbc], ecx
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xd0], eax
jle 0x46f1ff
imul eax, eax, 0x28
lea ecx, [esi + eax]
call fcn.00466540
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xc8], eax
cmp eax, dword [ebp - 0xd0]
jl 0x46f1ca
mov edx, dword [ebp - 0xcc]
and dword [edx + eax*4], 0
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax + 0x10]
movzx eax, byte [ebx + 3]
mov ebx, dword [ebp - 0xd8]
push dword [ebp - 0xd0]
mov ecx, dword [ebx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004653ca
mov edx, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, ebx
mov dword [ebp - 0xc0], eax
call fcn.00453901
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xbc]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
mov ecx, esi
call fcn.004666f6
cmp dword [ebp - 0xc4], 0
je 0x46f291
mov edx, dword [ebp - 0xc0]
test edx, edx
je 0x470677
push fcn.004538a3
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.00466912
add esp, 0xc
movzx edx, byte [ebp - 0xfd]
mov ecx, esi
call fcn.004661ba
mov eax, dword [ebp - 0xd4]
mov esi, ebx
jmp 0x470452
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
test byte [esi + 0x1c], 0x20
jne 0x46f2db
mov ecx, esi
call fcn.004667a1
test byte [esi + 0x1c], 0x20
je 0x47067f
push dword [ebx + 0x14]
push dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
call fcn.004597a6
pop ecx
jmp 0x46b1ed
cmp dword [esi + 0xe0], 0
jne 0x470659
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
test byte [esi + 0x1c], 0x20
je 0x46f33f
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0xd0]
call fcn.004599aa
test eax, eax
je 0x46f33f
mov ecx, dword [ebx + 0xc]
push dword [ebp - 0xcc]
imul ecx, ecx, 0x28
push dword [ebp - 0xd0]
add ecx, dword [ebp - 0xdc]
call fcn.0046673d
jmp 0x46f2e9
mov ecx, esi
call fcn.004666f6
jmp 0x46d985
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xd0], edx
test byte [esi + 0x1c], 0x20
mov dword [ebp - 0xec], eax
jne 0x46f395
mov ecx, esi
call fcn.004667a1
test byte [esi + 0x1c], 0x20
je 0x47067f
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xec]
test edx, edx
je 0x46f3d6
push dword [eax + 0x14]
mov ecx, 0xff
push dword [eax + 0x10]
mov al, byte [ebp - 0xd0]
and al, 0xf
movzx eax, al
test edx, edx
cmovns ecx, eax
mov dl, cl
mov ecx, dword [esi + 0x10]
call fcn.004599f9
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x46d985
mov edx, dword [ebp - 0xd0]
test edx, edx
js 0x46b184
mov eax, dword [ebp - 0xec]
push dword [eax + 0x14]
push dword [eax + 0x10]
jmp 0x46f2e1
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], ecx
cmp byte [ebx + 3], 0
je 0x46f44f
mov eax, dword [edi + 0xa8]
mov esi, dword [edx + 0x14]
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x46f449
cmp dword [eax + 0x18], esi
je 0x46f439
mov eax, dword [eax + 4]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x46f427
mov esi, dword [ebp - 0xd8]
test eax, eax
jne case.default.0x46aec5
jmp 0x46f44f
mov esi, dword [ebp - 0xd8]
mov eax, dword [edi + 0xb0]
cmp eax, dword [esi + 0x78]
jl 0x46f47b
push str.too_many_levels_of_trigger_recursion
lea eax, [edi + 0x38]
push esi
push eax
mov dword [ebp - 0xd4], 1
call fcn.00453c57
add esp, 0xc
jmp case.default.0x46aec5
test byte [ecx + 0x1c], 0x40
jne 0x46f5ee
mov ecx, dword [edx + 8]
add ecx, dword [edx + 0xc]
mov dword [ebp - 0xd0], ecx
imul ecx, ecx, 0xa
mov eax, dword [edx + 0x10]
add ecx, 0x12
add ecx, dword [edx + 0xc]
lea edx, [eax + ecx*4]
mov ecx, esi
mov dword [ebp - 0xcc], edx
call fcn.00453aa0
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x470685
mov ecx, dword [ebp - 0xc8]
call fcn.004664ae
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xe0]
push 0x40
pop ecx
mov word [eax + 0x1c], cx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xbc]
mov dword [eax], edi
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 8]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x18]
mov dword [eax + 0x34], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x44]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x30]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x30], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0xc0]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0xbc]
mov dword [eax + 0x38], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx + 0x3c]
imul eax, eax, 0x28
add eax, 0x48
add eax, edx
lea ecx, [edx + 0x48]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], ecx
cmp ecx, eax
je 0x46f5f7
push 0x28
pop edi
mov eax, 0x80
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc4]
mov dword [eax], esi
mov ecx, dword [ebp - 0xc4]
add ecx, edi
mov dword [ebp - 0xc4], ecx
cmp ecx, dword [ebp - 0xc0]
jne 0x46f5b9
mov edi, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xbc]
jmp 0x46f5f7
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xbc], edx
inc dword [edi + 0xb0]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ebp - 0x108]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xbc]
xor ebx, ebx
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x104]
mov dword [eax + 0x24], ecx
mov ecx, dword [edi + 0x68]
mov eax, dword [ebp - 0xbc]
or dword [ebp - 0xe0], 0xffffffff
mov dword [eax + 0x44], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [edi + 0xa8], ecx
lea edx, [ecx + 0x20]
mov dword [edi + 8], edx
mov dword [edi + 0x68], ebx
mov eax, dword [ecx + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [ecx + 0x40]
mov ecx, dword [edi + 0x18]
inc ecx
imul ecx, ecx, 0x28
add ecx, edx
mov dword [ebp - 0xdc], edx
mov edx, dword [ebp - 0xb8]
mov dword [edi + 0x30], eax
mov dword [edi + 0x44], ecx
mov eax, dword [edx]
mov dword [ebp - 0x110], eax
mov dword [edi + 4], eax
mov eax, dword [edx + 4]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x30]
lea ecx, [ecx + eax*4]
mov dword [edi + 0xc0], ecx
mov eax, dword [edx + 0x10]
push eax
push ebx
push ecx
mov dword [edi + 0xbc], eax
call fcn.004acf20
jmp 0x46f473
mov esi, dword [edi + 0xa8]
mov dword [ebp - 0xd0], esi
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 8]
imul ecx, ecx, 0x14
mov edx, dword [ecx + eax + 4]
add edx, dword [ebx + 4]
mov eax, 0x1000
imul edx, edx, 0x28
add edx, dword [esi + 0xc]
mov dword [ebp - 0xcc], edx
jmp 0x46b1e1
cmp dword [ebx + 4], 0
mov eax, dword [ebx + 8]
cdq
je 0x46f6f3
add dword [esi + 0x1e8], eax
adc dword [esi + 0x1ec], edx
jmp case.default.0x46aec5
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x46aec5
cmp dword [ebx + 4], 0
je 0x46f71b
mov eax, dword [esi + 0x1e8]
or eax, dword [esi + 0x1ec]
jmp 0x46c3c0
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jmp 0x46c3c0
mov eax, dword [edi + 0xa8]
test eax, eax
jne 0x46f78d
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd0], ecx
call fcn.00466664
mov esi, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.00466664
mov eax, dword [ebp - 0xd0]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
cmp dword [eax + 0x14], edx
jg 0x46b184
jl 0x46f780
cmp dword [eax + 0x10], ecx
jae 0x46b184
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x46b184
mov eax, ecx
mov dword [ebp - 0xcc], eax
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x46f78b
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [eax + 0xc]
jmp 0x46f742
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
xor edx, edx
cmp dword [eax + ecx + 0x14], edx
jl case.default.0x46aec5
jg 0x46aed9
cmp dword [eax + ecx + 0x10], edx
jbe case.default.0x46aec5
jmp 0x46aed9
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
xor edx, edx
cmp dword [eax + ecx + 0x14], edx
jg case.default.0x46aec5
jl 0x46aed9
cmp dword [eax + ecx + 0x10], edx
jae case.default.0x46aec5
jmp 0x46aed9
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
cdq
add dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x10]
adc dword [ecx + 0x14], edx
or eax, dword [ecx + 0x14]
jmp 0x46c3c0
movzx eax, byte [ebx + 3]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x80], edx
xor edx, edx
mov esi, edx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xcc], esi
test eax, eax
jle 0x46f89b
mov eax, dword [ebp - 0xec]
push 0x28
pop edi
mov dword [eax + esi*4], ecx
mov ecx, dword [ebp - 0xc4]
call fcn.0046ab64
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc4]
inc esi
add ecx, edi
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc4], ecx
cmp esi, dword [ebp - 0xd0]
jge 0x46f895
mov eax, dword [ebp - 0x80]
jmp 0x46f85f
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
push 8
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x90], eax
inc dword [eax + 0x18]
mov ecx, dword [ebp - 0xc0]
xor eax, eax
inc eax
mov word [ebp - 0x9c], ax
pop eax
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x84], edx
test byte [ecx + 3], al
je 0x46f910
mov eax, dword [ebx - 4]
mov dword [ebp - 0x8c], eax
push dword [ebp - 0x80]
lea eax, [ebp - 0xc0]
push dword [ebp - 0xd0]
push eax
call dword [ecx + 0x10]
add esp, 0xc
cmp dword [ebp - 0x88], 0
je 0x46f95b
mov dl, 1
lea ecx, [ebp - 0xb8]
call fcn.00466d15
push eax
push 0x4f5294
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
mov eax, dword [ebp - 0x88]
add esp, 0x10
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0x84], 0
je 0x46f985
mov ecx, dword [ebx - 0x10]
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x46f985
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 0
push 1
call fcn.0046673d
pop ecx
pop ecx
lea ecx, [ebp - 0xb8]
call fcn.004664ae
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebx + 0x10]
call fcn.00466402
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x46f9d9
mov ecx, dword [ebp - 0xd0]
mov dl, 1
call fcn.00466d15
push eax
push 0x4f5294
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0x10
movzx edx, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xd0]
call fcn.004661ba
mov ecx, dword [ebp - 0xd0]
jmp 0x46badd
and dword [ebp - 0xcc], 0
or dword [ebp - 0xc4], 0xffffffff
or dword [ebp - 0xc8], 0xffffffff
mov edx, dword [ebx + 4]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xc8]
push eax
push dword [ebx + 8]
mov ecx, esi
call fcn.004978a0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0xd4], edx
cmp edx, 5
jne 0x46fa47
and dword [ebp - 0xd4], 0
mov dword [ebp - 0xcc], 1
xor eax, eax
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 0x28
mov dword [ebp - 0xc0], ecx
pop ebx
mov eax, dword [ebp + eax*4 - 0xcc]
cdq
push edx
push eax
call fcn.0046673d
mov eax, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc0]
inc eax
add ecx, ebx
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], ecx
cmp eax, 3
jl 0x46fa64
jmp case.default.0x46aec5
mov esi, dword [ebx + 0xc]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], esi
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xec], eax
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov dword [ebp - 0xcc], edx
movzx eax, byte [edx + 5]
cmove esi, eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], esi
cmp byte [edx + 0xf], 3
mov dword [ebp - 0xe8], edx
jae 0x46fb09
mov eax, dword [edx + 0x40]
xor ecx, ecx
cmp dword [eax], ecx
je 0x46fb11
cmp dword [edx + 0x4c], ecx
jl 0x46fb11
jg 0x46fb03
cmp dword [edx + 0x48], ecx
jbe 0x46fb11
mov eax, dword [ebp - 0xc4]
mov esi, eax
mov dword [ebp - 0xc8], esi
cmp byte [edx + 0xe], 0
mov ecx, 0x4ea428
jne 0x46fb22
mov ecx, dword [edx + 0x90]
mov dword [ebp - 0xc0], ecx
cmp esi, 5
jne 0x46fb51
call fcn.0045545d
test eax, eax
je 0x46fb41
mov ecx, edx
call fcn.0045cdf9
test eax, eax
jne 0x46fb51
mov eax, dword [ebp - 0xc4]
mov esi, eax
mov dword [ebp - 0xc8], esi
jmp 0x46fb57
mov eax, dword [ebp - 0xc4]
cmp esi, eax
je 0x46fc5c
push 5
pop edx
cmp eax, edx
je 0x46fb6e
cmp esi, edx
jne 0x46fc5c
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x36], 0
je 0x46fc25
cmp dword [ecx + 0x84], 1
jg 0x46fc25
cmp eax, edx
jne 0x46fbc7
mov ecx, dword [ebp - 0xe8]
call fcn.0045ceb8
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x46fc6c
mov edx, dword [ebp - 0xc8]
call fcn.0045cd44
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
jmp 0x46fc01
push 4
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0xe8]
jne 0x46fbf2
push 2
pop eax
mov edx, eax
call fcn.0045cd44
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
jmp 0x46fbf8
mov eax, dword [ebp - 0xec]
cmp dword [ebp - 0xd4], 0
jne 0x46fc6c
xor edx, edx
cmp esi, 5
sete dl
mov ecx, eax
inc edx
call fcn.0046578e
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
jmp 0x46fc68
cmp esi, edx
mov esi, dword [ebp - 0xd8]
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
mov dword [ebp - 0xd4], 1
push str.cannot_change__s_wal_mode_from_within_a_transaction
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0x10
jmp case.default.0x46aec5
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xe8]
test eax, eax
je 0x46fc78
mov esi, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], esi
mov edx, esi
call fcn.0045cd44
mov dword [ebp - 0xc8], eax
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov eax, 0xa02
mov dword [ebp - 0xe4], ebx
mov word [ebx + 0x1c], ax
mov ecx, dword [ebp - 0xc8]
cmp ecx, 6
jne 0x46fcaf
xor ecx, ecx
jmp 0x46fcb6
mov ecx, dword [ecx*4 + 0x4f0c38]
mov dword [ebx + 4], ecx
call fcn.0045545d
movzx edx, byte [ebp - 0xfd]
mov ecx, ebx
mov dword [ebx + 0x18], eax
mov byte [ebx + 0x1f], 1
call fcn.004661ba
jmp 0x46b184
lea ecx, [edi + 0x38]
mov edx, esi
call fcn.0048d569
jmp 0x46d2b9
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], ecx
call fcn.0046103d
mov dword [ebp - 0xd4], eax
cmp eax, 0x65
jne 0x470452
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
xor eax, eax
jmp 0x46d2b9
cmp dword [ebx + 4], 0
jne 0x46fd30
mov ecx, esi
call fcn.004695d8
jmp case.default.0x46aec5
or dword [edi + 0x64], 0x20
jmp case.default.0x46aec5
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x11c], al
test al, al
jne 0x46fd54
mov eax, 0x800
test dword [esi + 0x18], eax
jne case.default.0x46aec5
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
push dword [ebp - 0x11c]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004656f5
pop ecx
mov dword [ebp - 0xd4], eax
cmp al, 6
jne 0x470452
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x46fc4a
mov edx, dword [ebx + 0x10]
mov ecx, esi
mov dword [ebp - 0xd0], edx
call fcn.0048e411
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
test edx, edx
je 0x470452
mov edx, dword [edx + 8]
mov ecx, edi
call fcn.0046ad2a
jmp case.default.0x46aec5
mov edx, dword [ebx + 4]
lea eax, [edi + 0x38]
push eax
push dword [ebx + 0x10]
mov ecx, esi
call fcn.0048e0b0
pop ecx
pop ecx
jmp 0x46d2b9
mov eax, dword [edi + 0x64]
push 8
pop ecx
and eax, 0xfffffffb
or eax, ecx
mov dword [edi + 0x64], eax
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.0048e2c3
and dword [edi + 0x64], 0xfffffff3
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x470452
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x10]
lea edx, [ebp - 0xcc]
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc8], ecx
mov eax, dword [ecx]
push edx
push ecx
mov dword [ebp - 0xc4], eax
call dword [eax + 0x18]
mov edx, dword [ebp - 0xc8]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0046ad2a
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x470452
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
mov dword [eax], ecx
mov edx, dword [ebx + 4]
xor eax, eax
push eax
push 0xffffffffffffffff
push eax
mov ecx, edi
call fcn.0046ab8f
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x46fe9c
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x28], ecx
jmp case.default.0x46aec5
mov byte [esi + 0x38], 1
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
call dword [eax + 0x1c]
jmp 0x46b313
mov edx, dword [ebx + 0xc]
mov eax, dword [edi + 0x44]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], edx
lea esi, [edx + 0x28]
mov dword [ebp - 0xc0], esi
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xb4], eax
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xe8], eax
mov eax, dword [eax]
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov esi, dword [esi + 0x10]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xd0], esi
mov eax, dword [edx + 0x10]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xcc], eax
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xac], ecx
test esi, esi
jle 0x46ff98
lea eax, [ecx + 1]
imul eax, eax, 0x28
add eax, dword [ebp - 0xc0]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx + eax*4]
call fcn.0046ab64
mov ecx, dword [ebp - 0xac]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xa8]
inc ecx
mov dword [ebp - 0xac], ecx
cmp ecx, esi
jl 0x46ff38
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
jmp 0x46ff9e
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edi + 0x64]
push edx
and eax, 0xfffffff7
or eax, 4
push esi
mov dword [edi + 0x64], eax
push dword [ebx + 0x10]
mov eax, dword [ebp - 0xf4]
push dword [ebp - 0xec]
push ecx
call dword [eax + 0x20]
mov edx, dword [ebp - 0xb8]
and dword [edi + 0x64], 0xfffffff3
add esp, 0x14
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0046ad2a
cmp dword [ebp - 0xd4], 0
jne 0x46fffa
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xb0], eax
jmp 0x470000
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x47000e
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x1c], 0
jmp 0x46b184
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], ecx
cmp byte [esi + 0x1c], 0
jne 0x46b424
mov eax, dword [esi + 0x24]
push 0x40
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
pop eax
push eax
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.004acf20
mov edx, dword [ebp - 0xc8]
add esp, 0xc
lea ecx, [ebp - 0xb8]
call fcn.004668ec
mov eax, dword [ebp - 0x9c]
mov ecx, 0xbe01
and eax, ecx
or eax, 1
mov word [ebp - 0x9c], ax
push dword [ebx + 8]
lea eax, [ebp - 0xc0]
push eax
push dword [esi + 0x24]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x2c]
mov edx, dword [ebp - 0xd0]
add esp, 0xc
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0046ad2a
cmp dword [ebp - 0x88], 0
mov eax, dword [ebp - 0xd4]
cmovne eax, dword [ebp - 0x88]
movzx edx, byte [ebp - 0xfd]
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xd4], eax
call fcn.004661ba
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xb8]
call fcn.004668ec
mov ecx, dword [ebp - 0xc8]
call fcn.00466805
mov esi, dword [ebp - 0xd8]
jmp 0x46bae2
and dword [ebp - 0xc8], 0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], edx
cmp byte [edx + 0x1c], 0
jne case.default.0x46aec5
mov eax, dword [edx + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov eax, dword [edi + 0x64]
and eax, 0xfffffff7
or eax, 4
mov dword [ebp - 0xcc], ecx
mov dword [edi + 0x64], eax
push dword [edx + 0x24]
call dword [ecx + 0x24]
mov edx, dword [ebp - 0xd0]
and dword [edi + 0x64], 0xfffffff3
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0046ad2a
cmp dword [ebp - 0xd4], 0
jne 0x470192
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xc8], eax
jmp 0x470198
mov eax, dword [ebp - 0xc8]
test eax, eax
jmp 0x46c3c0
mov eax, dword [ebx + 0x10]
xor edx, edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
inc edx
mov dword [ebp - 0xcc], ecx
call fcn.004661ba
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x470452
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
push dword [eax + 4]
mov edx, dword [ecx]
push ecx
call dword [edx + 0x4c]
mov edx, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.0046ad2a
jmp 0x46d478
mov eax, dword [ebx + 0x10]
xor edx, edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov esi, dword [ebx + 8]
mov dword [ebp - 0xc8], esi
cmp dword [eax + 0x34], edx
je 0x46b184
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 0x3c]
mov byte [ebp - 0xf9], al
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xb4], ecx
test esi, esi
jle 0x4702a4
push 0x28
pop edi
call fcn.0046ab64
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xc4]
add ecx, edi
inc eax
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xc4], eax
cmp eax, dword [ebp - 0xc8]
jl 0x470261
mov edi, dword [ebp - 0xf8]
mov al, byte [ebx + 3]
mov esi, dword [ebp - 0xd8]
mov byte [esi + 0x3c], al
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb8]
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0xc8]
push dword [ebp - 0xd0]
call dword [eax + 0x34]
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0xf9]
mov byte [esi + 0x3c], al
mov edx, dword [ebp - 0xd0]
add esp, 0x10
mov ecx, edi
call fcn.0046ad2a
xor edx, edx
cmp dword [ebp - 0xd4], edx
jne 0x470324
cmp dword [ebx + 4], edx
je 0x470324
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x108], eax
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x104], ecx
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xd4]
cmp al, 0x13
jne 0x46e6ca
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x470360
mov al, byte [ebx + 3]
push 4
pop ecx
cmp al, cl
jne 0x47034c
mov eax, edx
jmp 0x46d2b9
cmp al, 5
jne 0x470355
push 2
pop eax
jmp 0x470358
movzx eax, al
mov byte [edi + 0x60], al
jmp case.default.0x46aec5
mov eax, dword [ebp - 0xd4]
jmp 0x46e6ca
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
and dword [edx + 0x14], 0
mov dword [edx + 0x10], eax
jmp case.default.0x46aec5
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
mov edx, dword [ebx + 0xc]
add ecx, ecx
xor esi, esi
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xec], ecx
test edx, edx
je 0x4703af
mov eax, dword [ecx + 4]
mov esi, dword [eax + 0x2c]
cmp esi, edx
cmovb esi, edx
call fcn.0045ecce
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test esi, esi
jle 0x4703c9
mov dword [eax + 0x84], esi
mov esi, dword [eax + 0x84]
call fcn.0045ed41
mov eax, esi
jmp 0x46f013
cmp dword [esi + 0x98], 0
je case.default.0x46aec5
test dword [edi + 0x64], 0x400
jne case.default.0x46aec5
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x470402
mov edx, dword [edi + 0xa0]
mov dword [ebp - 0xd0], edx
test edx, edx
je case.default.0x46aec5
mov ecx, edi
call fcn.0046a86b
push eax
mov dword [ebp - 0xcc], eax
push dword [esi + 0x9c]
call dword [esi + 0x98]
mov edx, dword [ebp - 0xcc]
pop ecx
pop ecx
mov ecx, esi
call fcn.00453901
jmp case.default.0x46aec5
mov edi, dword [ebp - 0xf8]
jmp 0x470452
mov edi, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe0]
inc edx
mov dword [ebp - 0xe0], edx
test eax, eax
jne 0x4706ac
mov ecx, dword [ebp - 0x120]
mov eax, edx
jmp 0x46ae2a
push 9
jmp 0x47069f
mov eax, dword [ebx + 4]
mov dword [edi + 0x5c], eax
mov al, byte [ebx + 8]
mov byte [edi + 0x60], al
mov eax, dword [ebp - 0xe0]
mov dword [edi + 0x58], eax
cmp dword [ebx + 0x10], ecx
je 0x4704c9
push dword [ebx + 0x10]
lea eax, [edi + 0x38]
push 0x4f5294
push esi
push eax
call fcn.00453c57
push dword [ebx + 0x10]
mov edx, dword [ebp - 0xe0]
push dword [edi + 0xa0]
push edx
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.00454d35
add esp, 0x24
jmp 0x4704e5
cmp dword [edi + 0x5c], ecx
je 0x4704e5
push dword [edi + 0xa0]
push eax
push str.constraint_failed_at__d_in___s_
push dword [ebx + 4]
call fcn.00454d35
add esp, 0x10
mov ecx, edi
call fcn.004688da
push 5
pop ecx
cmp eax, ecx
je 0x47053d
cmp dword [edi + 0x5c], 0
push 0x65
pop esi
push 1
pop eax
cmovne esi, eax
jmp 0x4706fa
cmp byte [esi + 0x38], 0
jne 0x470685
mov eax, dword [ebp - 0xe0]
inc eax
push 0x64
mov dword [edi + 0x58], eax
pop esi
jmp 0x4706fa
lea ecx, [ebp - 0xc0]
call fcn.004664ae
jmp 0x470685
mov edx, dword [ebp - 0xe0]
mov dword [edi + 0x58], edx
mov byte [esi + 0x36], bl
mov esi, ecx
mov dword [edi + 0x5c], ecx
jmp 0x4706fa
test edx, edx
je 0x470577
mov edx, 0x204
call fcn.00497145
mov esi, dword [ebp - 0xd8]
mov byte [esi + 0x36], 1
mov ecx, esi
call fcn.00496d97
xor esi, esi
inc esi
cmp dword [edi + 0x5c], ebx
push 0x65
pop eax
cmove esi, eax
jmp 0x4706fa
xor edx, edx
inc edx
mov ecx, edi
call fcn.00468885
mov esi, eax
test esi, esi
jne 0x4706fa
mov al, byte [ebp - 0xd0]
mov esi, dword [ebp - 0xd8]
mov ecx, edi
mov byte [esi + 0x36], al
call fcn.004688da
push 5
pop ecx
cmp eax, ecx
jne 0x47055f
mov edx, dword [ebp - 0xe0]
xor eax, eax
inc eax
sub al, byte [ebp - 0xd0]
mov dword [edi + 0x58], edx
mov byte [esi + 0x36], al
jmp 0x47053d
mov edx, dword [ebp - 0xe0]
mov dword [edi + 0x58], edx
jmp 0x47053d
mov ecx, 0x10709
call fcn.0049865f
jmp 0x4705df
push 0xd
pop eax
mov esi, dword [ebp - 0xd8]
cmp byte [esi + 0x38], 0
push 7
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xd4], eax
cmp eax, 0xc0a
je 0x4706a6
cmp eax, 0x204
je 0x470615
mov ecx, eax
mov edx, 0x4ea650
call fcn.004971f5
jmp 0x47061a
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x4f5294
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
mov eax, dword [ebp - 0xd4]
add esp, 0x10
jmp 0x4706a6
mov edi, dword [ebp - 0xf8]
jmp 0x470643
mov esi, dword [ebp - 0xd8]
push str.string_or_blob_too_big
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0xc
push 0x12
jmp 0x47069f
push 9
mov dword [ebp - 0xd4], 9
mov dword [edi + 0x5c], 9
pop ecx
jmp 0x470609
mov edi, dword [ebp - 0xf8]
jmp 0x470685
mov esi, ebx
jmp 0x470685
mov esi, eax
jmp 0x470685
mov esi, dword [ebp - 0xd8]
xor eax, eax
inc eax
push str.out_of_memory
mov byte [esi + 0x38], al
lea eax, [edi + 0x38]
push esi
push eax
call fcn.00453c57
add esp, 0xc
push 7
pop eax
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xe0]
push dword [edi + 0x38]
mov dword [edi + 0x5c], eax
push dword [edi + 0xa0]
push edx
push str.statement_aborts_at__d:___s___s
push eax
call fcn.00454d35
add esp, 0x14
mov ecx, edi
call fcn.004688da
cmp dword [ebp - 0xd4], 0xc0a
jne 0x4706de
mov byte [esi + 0x38], 1
mov al, byte [ebp - 0xfe]
xor esi, esi
inc esi
test al, al
je 0x4706fa
mov ecx, dword [ebp - 0xd8]
movzx edx, al
dec edx
call fcn.00479434
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x108]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x104]
mov dword [eax + 0x24], ecx
mov ecx, edi
call fcn.0046797c
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a2964
leave
ret