Function at 0x46b060
Capabilities:
Parse credit card information
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x344
mov eax, dword [0x6c3afc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov edx, dword [ebx + 8]
xor eax, eax
push esi
mov esi, dword [ebx]
mov cl, byte [esi + 0x3e]
push edi
mov edi, dword [ebx + 4]
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0x131], al
mov byte [ebp - 0x11d], cl
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], eax
mov eax, dword [esi + 0x20]
push ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0x114], edi
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], ecx
call fcn.00464b00
add esp, 4
cmp dword [ebx + 0x50], 7
je 0x4706e1
xor eax, eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x88], eax
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x14], eax
mov edx, dword [esi + 0xf0]
mov dword [esi + 0x1c4], eax
test edx, edx
jne 0x47072b
cmp dword [esi + 0x124], eax
je 0x46b135
mov ecx, dword [esi + 0x12c]
mov eax, dword [ebx + 0x7c]
div ecx
sub ecx, edx
mov dword [ebp - 0x198], ecx
mov eax, dword [ebx + 0x4c]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov dword [ebp - 0xec], ecx
cmp byte [esi + 0x41], 0
jne 0x4706e1
mov edi, dword [ebp - 0xec]
mov cl, byte [edi]
inc dword [ebp - 0x15c]
movzx eax, cl
lea edx, [eax - 1]
cmp edx, 0x9d
ja case.0x46b16e.62
jmp dword [edx*4 + 0x470760]
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + edx*8]
mov edx, 4
mov word [ecx + 8], dx
mov edx, edi
sub edx, dword [ebp - 0x114]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46f628
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x114]
lea edx, [ecx + edx*4]
mov ecx, 0x80
mov dword [ebp - 0xec], edx
mov word [eax + 8], cx
jmp 0x46f206
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + edx*8]
mov eax, dword [edi + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [edi + 8], 0
jne 0x46f628
jmp case.0x46b16e.62
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x114]
mov edx, dword [eax + edx*4 + 8]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4 - 0x14]
mov edx, 0x80
mov dword [ebp - 0xec], eax
mov word [ecx + 8], dx
jmp 0x46f206
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
sub edi, dword [ebp - 0x114]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov esi, dword [ecx]
mov edx, 4
mov word [ecx + 8], dx
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x114]
lea eax, [esi + esi*4]
lea edx, [ecx + eax*4]
mov dword [ebp - 0xec], edx
jmp 0x46f206
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x46b16e.62
mov ecx, edi
sub ecx, dword [ebp - 0x114]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [edi + 4], 0
jne 0x4704c0
mov ecx, dword [ebx + 0xb0]
test ecx, ecx
je 0x4704c0
mov edx, dword [ecx + 4]
mov eax, dword [ebx + 0x5c]
dec dword [ebx + 0xb8]
mov dword [ebx + 0xb0], edx
mov edx, dword [ebp - 0xdc]
add dword [edx + 0x54], eax
mov esi, ecx
mov dword [edx + 0x50], eax
call fcn.00465590
cmp dword [edi + 8], 4
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x154], ecx
jne 0x46b330
lea edx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edx*4 + 8]
dec eax
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x114], ecx
lea ecx, [ecx + eax*4]
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xec], ecx
jmp 0x46f206
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46b37f
call fcn.0046b020
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46b16e.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46b3c6
call fcn.0046b020
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x46b16e.62
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46b3ff
call fcn.0046b020
jmp 0x46b408
mov edx, 4
mov word [eax + 8], dx
mov ecx, 8
mov word [eax + 8], cx
mov edx, dword [edi + 0x10]
fld qword [edx]
fstp qword [eax]
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46b43b
call fcn.0046b020
jmp 0x46b444
mov ecx, 4
mov word [eax + 8], cx
mov esi, eax
mov eax, dword [edi + 0x10]
mov byte [edi], 0x19
mov dword [ebp - 0xfc], eax
call fcn.004482e0
cmp byte [ebp - 0x11d], 1
mov dword [edi + 4], eax
je 0x46b4dc
mov edx, dword [ebp - 0xfc]
push 0
push 1
push edx
or eax, 0xffffffff
mov ecx, esi
call fcn.004632b0
add esp, 0xc
mov dword [ebp - 0xd8], eax
cmp eax, 0x12
je 0x47070e
movzx ecx, byte [ebp - 0x11d]
mov eax, esi
call fcn.00462750
test eax, eax
jne 0x4706e1
mov edi, dword [ebp - 0xec]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edi + 1], 0xff
jne 0x46b4c6
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
call fcn.00445870
mov byte [edi + 1], 0xff
mov ecx, dword [esi + 0x10]
mov dword [edi + 0x10], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 4], edx
mov edi, dword [ebp - 0xec]
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
cmp eax, dword [ecx + 0x58]
jg 0x47070e
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46b50c
call fcn.0046b020
jmp 0x46b515
mov edx, 4
mov word [eax + 8], dx
mov ecx, 0xa02
mov word [eax + 8], cx
mov edx, dword [edi + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [edi + 4]
mov dl, byte [ebp - 0x11d]
mov dword [eax + 0xc], ecx
mov byte [eax + 0xa], dl
cmp byte [edi + 3], 0
je case.0x46b16e.62
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*8]
or esi, dword [edx + ecx*8 + 4]
je case.0x46b16e.62
mov ecx, 0xa10
mov word [eax + 8], cx
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46b582
call fcn.0046b020
jmp 0x46b58b
mov edx, 4
mov word [eax + 8], dx
mov esi, dword [edi + 0xc]
sub esi, dword [edi + 8]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe4]
neg eax
sbb eax, eax
and eax, 0x100
inc eax
movzx eax, ax
mov dword [ebp - 0xfc], eax
mov word [ecx + 8], ax
test esi, esi
jle case.0x46b16e.62
nop
mov eax, dword [ebp - 0xe4]
add eax, 0x28
mov dword [ebp - 0xe4], eax
call fcn.00462fd0
mov dx, word [ebp - 0xfc]
mov eax, dword [ebp - 0xe4]
dec esi
mov word [eax + 8], dx
test esi, esi
jg 0x46b5c0
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov cx, word [eax + 8]
mov edx, 0xff7f
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46b635
call fcn.0046b020
jmp 0x46b63e
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 0x10]
push 0
mov esi, eax
mov eax, dword [edi + 4]
push 0
push edx
mov ecx, esi
call fcn.004632b0
mov al, byte [ebp - 0x11d]
add esp, 0xc
mov byte [esi + 0xa], al
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x3c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8 - 0x28]
mov ecx, esi
call fcn.00463120
test eax, eax
jne 0x47070e
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46b6af
call fcn.0046b020
push 0x800
push esi
push eax
call fcn.00463180
add esp, 0xc
jmp case.0x46b16e.62
push 0x800
mov ecx, 4
push esi
push eax
mov word [eax + 8], cx
call fcn.00463180
add esp, 0xc
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edi + 8]
mov dword [ebp - 0xe0], edx
lea edx, [eax + eax*4]
lea esi, [ecx + edx*8]
lea ecx, [ecx]
mov eax, esi
call fcn.00463270
mov eax, 0x1000
test word [esi + 8], ax
je 0x46b717
mov eax, esi
call fcn.004628a0
test eax, eax
jne 0x4706db
mov edi, dword [ebp - 0xec]
add ebx, 0x28
add esi, 0x28
dec dword [ebp - 0xe0]
jne 0x46b6f0
mov ebx, dword [ebp - 0xf0]
jmp case.0x46b16e.62
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [ebp - 0xe8]
lea eax, [ecx + edx*8]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*8]
jmp 0x46b760
mov eax, dword [ebp - 0xe4]
push 0x1000
push eax
push esi
call fcn.00463180
mov ecx, 0x1000
add esp, 0xc
test word [esi + 8], cx
je 0x46b795
mov eax, esi
call fcn.004628a0
test eax, eax
jne 0x4706e1
mov edi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xe0]
mov edx, eax
dec eax
mov dword [ebp - 0xe0], eax
test edx, edx
je case.0x46b16e.62
add esi, 0x28
add dword [ebp - 0xe4], 0x28
jmp 0x46b760
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea edx, [eax + ecx*8]
mov ecx, dword [edi + 8]
push 0x1000
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
push edx
call fcn.00463180
add esp, 0xc
jmp case.0x46b16e.62
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x46b816
mov edx, dword [ebp - 0x198]
cmp dword [ebp - 0x15c], edx
jb 0x46b816
mov ecx, dword [ecx + 0x128]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x47011d
push 0
mov esi, ebx
call fcn.00466300
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x46b16e.62
push 1
push ebx
call fcn.004661e0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x46b16e.62
mov eax, dword [ebx + 0x48]
mov edx, dword [ebp - 0xe8]
add eax, 2
or eax, 1
mov dword [ebx + 0x48], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov dword [ebx + 0x14], esi
cmp dword [edi + 8], 0
mov dword [ebp - 0xfc], 0
jle 0x46b8bc
jmp 0x46b880
mov eax, 0x1000
test word [esi + 8], ax
je 0x46b8a0
mov eax, esi
call fcn.004628a0
test eax, eax
jne 0x4706e1
mov edi, dword [ebp - 0xec]
mov eax, esi
call fcn.004629b0
mov eax, dword [ebp - 0xfc]
inc eax
add esi, 0x28
mov dword [ebp - 0xfc], eax
cmp eax, dword [edi + 8]
jl 0x46b880
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x41], 0
jne 0x4706e1
mov ecx, dword [ebp - 0xec]
sub ecx, dword [ebp - 0x114]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [ebx + 0x4c], ecx
mov esi, 0x64
jmp 0x4701cc
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0xe8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
lea ecx, [esi + edx*8]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xe4], ecx
mov cl, byte [edx + 8]
or cl, al
mov dword [ebp - 0xf4], edx
test cl, 1
je 0x46b93f
mov eax, esi
call fcn.00462fd0
jmp case.0x46b16e.62
test eax, 0x4000
je 0x46b959
mov eax, dword [ebp - 0xe4]
call fcn.00462910
test eax, eax
jne 0x4706e1
mov eax, dword [ebp - 0xf4]
mov edx, 0x4000
test word [eax + 8], dx
je 0x46b977
call fcn.00462910
test eax, eax
jne 0x4706e1
mov ecx, dword [ebp - 0xe4]
test byte [ecx + 8], 0x12
jne 0x46b99e
mov edx, dword [ebp - 0x11d]
push 0
push edx
mov eax, ecx
call fcn.004629d0
add esp, 8
test eax, eax
jne 0x4706e1
mov eax, dword [ebp - 0xf4]
test byte [eax + 8], 0x12
jne 0x46b9c3
mov ecx, dword [ebp - 0x11d]
push 0
push ecx
call fcn.004629d0
add esp, 8
test eax, eax
jne 0x4706e1
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xf4]
add eax, dword [ecx + 0xc]
cdq
mov ecx, edx
mov edx, dword [ebp - 0xdc]
mov edi, eax
mov eax, dword [edx + 0x58]
cdq
mov dword [ebp - 0x220], edi
cmp ecx, edx
jg 0x47070e
jl 0x46b9fc
cmp edi, eax
ja 0x47070e
mov ebx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x220]
xor eax, eax
cmp esi, ebx
sete al
add ecx, 2
mov edi, esi
call fcn.00462770
test eax, eax
jne 0x4706db
mov ax, word [esi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, ebx
je 0x46ba4d
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
push edx
push eax
push ecx
call fcn.005dd900
add esp, 0xc
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xc]
mov ecx, dword [esi + 0x10]
mov eax, dword [eax + 0x10]
push edx
mov edx, dword [ebp - 0xf4]
add ecx, dword [edx + 0xc]
push eax
push ecx
call fcn.005dd900
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x220]
mov byte [eax + ecx], 0
mov edx, dword [esi + 0x10]
mov byte [edx + eax + 1], 0
mov dl, byte [ebp - 0x11d]
mov ecx, 0x200
add esp, 0xc
or word [esi + 8], cx
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], dl
jmp 0x46f200
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
call fcn.0046b000
mov ecx, dword [ebp - 0xe8]
movzx edx, ax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x108], edx
mov dword [ebp - 0xf4], eax
call fcn.0046b000
mov ecx, dword [ebp - 0xe8]
movzx edx, ax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0xe0], edx
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xf4]
mov cl, byte [eax + 8]
or cl, byte [esi + 8]
mov dword [ebp - 0xe4], edx
test cl, 1
jne 0x46bda9
mov dl, byte [ebp - 0xe0]
and dl, byte [ebp - 0x108]
test dl, 4
je 0x46bc63
mov edx, dword [ebp - 0xf4]
mov edx, dword [edx]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x148], edx
mov edx, dword [ebp - 0xf4]
mov edx, dword [edx + 4]
mov dword [ebp - 0x144], edx
movzx edx, byte [edi]
add edx, 0xffffffa7
mov byte [ebp - 0x119], 1
cmp edx, 3
ja case.default.0x46bb58
jmp dword [edx*4 + 0x4709d8]
push ecx
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.00449570
add esp, 0xc
test eax, eax
jne 0x46bc6a
jmp 0x46bc33
push ecx
push eax
lea edx, [ebp - 0x148]
call fcn.00449610
add esp, 8
test eax, eax
jne 0x46bc6a
jmp 0x46bc33
push ecx
push eax
lea ecx, [ebp - 0x148]
push ecx
call fcn.00449660
add esp, 0xc
test eax, eax
jne 0x46bc6a
jmp 0x46bc33
mov edx, eax
or edx, ecx
je 0x46bda9
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x46bbe1
cmp dword [ebp - 0x148], 0
jne 0x46bbe1
cmp dword [ebp - 0x144], 0x80000000
je 0x46bc6a
push ecx
mov ecx, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x144]
push eax
push ecx
call fcn.005e56e0
jmp 0x46bc27
mov edx, eax
or edx, ecx
je 0x46bda9
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x46bc12
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x144]
push eax
push ecx
call fcn.005f25c0
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
mov dword [eax], edx
mov dx, word [eax + 8]
mov dword [eax + 4], ecx
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov word [eax + 8], dx
jmp case.0x46b16e.62
mov byte [ebp - 0x119], 0
mov eax, esi
call fcn.00462d70
fstp qword [ebp - 0x100]
mov eax, dword [ebp - 0xf4]
call fcn.00462d70
movzx eax, byte [edi]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x46bc8d
jmp dword [eax*4 + 0x4709e8]
fadd qword [ebp - 0x100]
jmp 0x46bd3d
fsub qword [ebp - 0x100]
jmp 0x46bd3d
fmul qword [ebp - 0x100]
jmp 0x46bd3d
fld qword [ebp - 0x100]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x46bda5
fdivp st(1)
jmp 0x46bd3d
fld qword [ebp - 0x100]
call fcn.005df1b6
mov esi, eax
mov dword [ebp - 0x1ec], edx
call fcn.005df1b6
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x144], edx
mov edx, esi
or edx, ecx
je 0x46bda9
mov edx, esi
and edx, ecx
cmp edx, 0xffffffff
jne 0x46bd1c
mov dword [ebp - 0x1ec], 0
mov ecx, dword [ebp - 0x1ec]
mov esi, 1
push ecx
mov ecx, dword [ebp - 0x144]
push esi
push ecx
push eax
call fcn.005f25c0
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], edx
fild qword [ebp - 0x230]
sub esp, 8
fst qword [ebp - 0x100]
fstp qword [esp]
call fcn.004482b0
add esp, 8
test eax, eax
jne 0x46bda9
mov eax, dword [ebp - 0xe4]
fld qword [ebp - 0x100]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0xbe08
and dx, cx
or dx, 8
mov word [eax + 8], dx
mov dl, byte [ebp - 0xe0]
or dl, byte [ebp - 0x108]
test dl, 8
jne case.0x46b16e.62
cmp byte [ebp - 0x119], 0
jne case.0x46b16e.62
mov esi, eax
call fcn.00462dc0
jmp case.0x46b16e.62
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0xe4]
call fcn.00462fd0
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
test eax, eax
je case.0x46b16e.62
push 0
push 0
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.00463030
add esp, 8
jmp case.0x46b16e.62
movzx eax, byte [edi + 3]
mov esi, dword [ebp - 0xdc]
lea edx, [eax*4 + 0x1c]
push 0
push edx
mov dword [ebp - 0xfc], eax
call fcn.00445af0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4706e1
mov esi, dword [ebp - 0xec]
mov dword [ecx], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edx, esi
sub edx, dword [ebp - 0x114]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [ebp - 0xfc]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x1a], dl
mov dword [esi + 0x10], ecx
mov word [esi], 0xec24
mov edi, esi
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xe4], eax
cmp dword [esi], eax
je 0x46bea5
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], eax
js 0x46bea5
lea edx, [esi + ecx*4 + 0x1c]
mov dword [ebp - 0xe0], edx
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xe8]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xe0]
mov dword [eax], edx
sub eax, 4
dec ecx
mov dword [ebp - 0xe0], eax
jns 0x46be80
mov eax, dword [esi]
mov cx, word [eax + 8]
mov edx, 0xbe01
and cx, dx
mov edx, dword [ebp - 0x154]
or cx, 1
mov word [eax + 8], cx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x158]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
movzx edx, byte [esi + 0x1a]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
lea ecx, [esi + 0x1c]
push ecx
push edx
push esi
call eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x154], edx
je 0x46bf49
cmp dword [esi + 0x14], 0
je 0x46bf33
mov eax, dword [esi]
push eax
call fcn.00468830
add esp, 4
push eax
push 0x68f664
push ebx
call fcn.00463c70
mov ecx, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xd8], ecx
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x10]
mov ebx, dword [ebp - 0xf0]
push edx
push eax
call fcn.00466840
add esp, 8
mov ecx, dword [ebp - 0xe4]
test byte [ecx + 8], 0x12
je case.0x46b16e.62
movzx ecx, byte [ebp - 0x11d]
mov eax, dword [esi]
call fcn.00462750
mov ecx, dword [esi]
call fcn.00463120
test eax, eax
jne 0x47070e
jmp case.0x46b16e.62
mov edx, dword [ebp - 0xe8]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea ecx, [edx + ecx*8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [ebp - 0xe4], eax
test dl, 1
je 0x46bfb7
call fcn.00462fd0
jmp case.0x46b16e.62
call fcn.00462d00
mov ecx, esi
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
call fcn.00462d00
mov esi, eax
mov al, byte [edi]
cmp al, 0x55
jne 0x46bfe8
and dword [ebp - 0x130], esi
and dword [ebp - 0x12c], edx
jmp 0x46c0f6
cmp al, 0x56
jne 0x46bffd
or dword [ebp - 0x130], esi
or dword [ebp - 0x12c], edx
jmp 0x46c0f6
mov ecx, esi
or ecx, edx
je 0x46c0f6
test edx, edx
jg 0x46c035
jl 0x46c011
test esi, esi
jae 0x46c02a
mov cl, 0xaf
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x46c035
jg 0x46c023
cmp esi, 0xffffffc0
jbe 0x46c035
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x46c076
jg 0x46c035
cmp esi, 0x40
jb 0x46c076
cmp dword [ebp - 0x12c], 0
jg 0x46c062
jl 0x46c049
cmp dword [ebp - 0x130], 0
jae 0x46c062
cmp al, 0x57
je 0x46c062
or eax, 0xffffffff
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
jmp 0x46c0f6
xor eax, eax
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
jmp 0x46c0f6
mov edx, dword [ebp - 0x12c]
cmp al, 0x57
mov eax, dword [ebp - 0x130]
mov ecx, esi
jne 0x46c09b
call fcn.005e62f0
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], edx
jmp 0x46c0de
call fcn.005fa290
cmp dword [ebp - 0x12c], 0
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], edx
jg 0x46c0de
jl 0x46c0c0
cmp dword [ebp - 0x130], 0
jae 0x46c0de
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.005e62f0
or dword [ebp - 0x190], eax
or dword [ebp - 0x18c], edx
mov edx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov word [eax + 8], cx
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.00462e30
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea esi, [eax + edx*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x46c19b
test al, 8
jne 0x46c175
test al, 2
je 0x46c17a
push 1
mov eax, esi
call fcn.0046ae40
add esp, 4
jmp 0x46c17a
call fcn.00462dc0
movzx eax, word [esi + 8]
test al, 4
jne 0x46c19b
cmp dword [edi + 8], 0
jne 0x46f628
mov dword [ebp - 0xd8], 0x14
jmp 0x46e361
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 4
lea esi, [edx + ecx*8]
je case.0x46b16e.62
call fcn.00462e60
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edx, 0x4000
test word [esi + 8], dx
je 0x46c20c
mov eax, esi
call fcn.00462910
mov dl, byte [ebp - 0x11d]
mov cl, byte [edi + 8]
mov dword [ebp - 0xd8], eax
mov eax, esi
call fcn.00462f30
jmp case.0x46b16e.62
mov dl, byte [ebp - 0x11d]
mov cl, byte [edi + 8]
mov eax, esi
mov dword [ebp - 0xd8], 0
call fcn.00462f30
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xe4], ecx
mov ecx, eax
lea esi, [esi + edx*8]
mov dword [ebp - 0x10c], ecx
movzx ecx, word [esi + 8]
mov edx, eax
mov dword [ebp - 0xf4], ecx
or cl, dl
test cl, 1
je 0x46c2d0
mov al, byte [edi + 3]
test al, al
jns 0x46c296
test dl, 1
je 0x46c28c
mov eax, dword [ebp - 0xf4]
test al, 1
je 0x46c28c
test eax, 0x100
jne 0x46c28c
xor eax, eax
jmp 0x46c40a
mov eax, 1
jmp 0x46c40a
test al, 0x20
je 0x46c2c3
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
mov cx, word [eax + edx*8 + 8]
lea eax, [eax + edx*8]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x46b16e.62
test al, 0x10
jne 0x46f628
jmp case.0x46b16e.62
mov cl, byte [edi + 3]
and cl, 0x47
cmp cl, 0x43
jl 0x46c30f
and al, 0xe
cmp al, 2
jne 0x46c2f1
mov eax, dword [ebp - 0xe4]
push 0
call fcn.0046ae40
add esp, 4
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x46c39c
push 0
mov eax, esi
call fcn.0046ae40
add esp, 4
jmp 0x46c39c
cmp cl, 0x42
jne 0x46c39c
test al, 2
jne 0x46c35d
test al, 0xc
je 0x46c35d
mov ecx, dword [ebp - 0x11d]
mov eax, dword [ebp - 0xe4]
push 1
push ecx
call fcn.004629d0
mov eax, dword [ebp - 0xe4]
mov dx, word [eax + 8]
xor dx, word [ebp - 0x10c]
mov ecx, 0x1ff
and dx, cx
add esp, 8
xor dx, word [eax + 8]
movzx edx, dx
mov dword [ebp - 0x10c], edx
movzx eax, word [esi + 8]
test al, 2
jne 0x46c39c
test al, 0xc
je 0x46c39c
mov eax, dword [ebp - 0x11d]
push 1
push eax
mov eax, esi
call fcn.004629d0
mov cx, word [esi + 8]
xor cx, word [ebp - 0xf4]
mov edx, 0x1ff
and cx, dx
add esp, 8
xor cx, word [esi + 8]
movzx eax, cx
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xe4]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x46c3bc
call fcn.00462910
and dword [ebp - 0x10c], 0xbfff
mov edx, 0x4000
test word [esi + 8], dx
je 0x46c3d8
mov eax, esi
call fcn.00462910
and dword [ebp - 0xf4], 0xbfff
mov eax, dword [ebp - 0xdc]
cmp byte [eax + 0x41], 0
jne 0x4706e1
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0xe4]
mov ecx, esi
call fcn.004674e0
mov edi, dword [ebp - 0xec]
mov edx, dword [ebp - 0x10c]
movzx ecx, byte [edi]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x46c415
jmp dword [ecx*4 + 0x4709f8]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x46c450
xor ecx, ecx
test eax, eax
setne cl
jmp 0x46c450
xor ecx, ecx
test eax, eax
sets cl
jmp 0x46c450
xor ecx, ecx
test eax, eax
setle cl
jmp 0x46c450
xor ecx, ecx
test eax, eax
setg cl
jmp 0x46c450
xor ecx, ecx
test eax, eax
setns cl
mov eax, ecx
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 8], dx
mov dx, word [ebp - 0xf4]
mov word [esi + 8], dx
test byte [edi + 3], 0x20
je 0x46c7bc
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dx, word [ecx + 8]
mov esi, 0xbe04
and dx, si
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x194], eax
jmp case.0x46b16e.62
test byte [edi + 3], 1
jne 0x46c4bd
mov dword [ebp - 0x194], 0
mov edx, dword [edi + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x104], edx
mov edx, dword [edi + 8]
xor esi, esi
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x118], edx
test eax, eax
jle 0x46c582
add ecx, 0x14
mov dword [ebp - 0x110], ecx
mov eax, dword [ebp - 0x194]
test eax, eax
je 0x46c503
mov ecx, dword [eax + esi*4]
jmp 0x46c505
mov ecx, esi
mov eax, dword [ebp - 0xfc]
mov edx, dword [eax + 0x10]
movzx eax, byte [esi + edx]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x108], eax
lea eax, [ecx + edx]
add ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [edx + eax*8]
lea ecx, [edx + ecx*8]
mov edx, dword [ebp - 0x110]
mov edx, dword [edx]
call fcn.004674e0
mov dword [ebp - 0x174], eax
test eax, eax
jne 0x46c56b
add dword [ebp - 0x110], 4
inc esi
cmp esi, dword [ebp - 0xe0]
jl 0x46c4f4
mov dword [ebp - 0x194], eax
jmp case.0x46b16e.62
cmp dword [ebp - 0x108], 0
je 0x46c582
mov eax, dword [ebp - 0x174]
neg eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x194], 0
jmp case.0x46b16e.62
mov eax, dword [ebp - 0x174]
mov edx, dword [ebp - 0x114]
test eax, eax
jns 0x46c5b6
mov edi, dword [edi + 4]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xec], eax
jmp 0x46f206
jne 0x46c5cd
mov edi, dword [edi + 8]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xec], eax
jmp 0x46f206
mov edi, dword [edi + 0xc]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xec], eax
jmp 0x46f206
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
lea ecx, [edx + ecx*8]
je 0x46c5ff
mov esi, 2
jmp 0x46c611
call fcn.00462d00
or eax, edx
je 0x46c60f
mov esi, 1
jmp 0x46c611
xor esi, esi
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x46c62e
mov eax, 2
jmp 0x46c640
call fcn.00462d00
or eax, edx
je 0x46c63e
mov eax, 1
jmp 0x46c640
xor eax, eax
cmp byte [edi], 0x48
jne 0x46c652
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x6890e4]
jmp 0x46c65d
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x689128]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cmp eax, 2
jne 0x46c68a
mov ax, word [ecx + 8]
mov edx, 0xbe01
and ax, dx
or ax, 1
mov word [ecx + 8], ax
jmp case.0x46b16e.62
cdq
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0xbe04
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov eax, esi
mov dword [ebp - 0xe4], ecx
call fcn.00462fd0
mov ecx, dword [ebp - 0xe4]
test byte [ecx + 8], 1
jne case.0x46b16e.62
mov eax, 4
mov word [esi + 8], ax
call fcn.00462d00
or eax, edx
jne 0x46c700
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46b16e.62
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea edx, [esi + ecx*8]
lea esi, [esi + eax*8]
mov eax, esi
mov dword [ebp - 0xe4], edx
call fcn.00462fd0
mov ecx, dword [ebp - 0xe4]
test byte [ecx + 8], 1
jne case.0x46b16e.62
mov edx, 4
mov word [esi + 8], dx
call fcn.00462d00
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46b16e.62
mov eax, dword [ebx + 0xc8]
mov ecx, dword [edi + 4]
cmp byte [eax + ecx], 0
jne 0x46f628
mov byte [eax + ecx], 1
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
test byte [eax + edx*8 + 8], 1
lea eax, [eax + edx*8]
je 0x46c795
mov eax, dword [edi + 0xc]
jmp 0x46c7bc
call fcn.00462d70
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x46c7ac
mov eax, 1
jmp 0x46c7ae
xor eax, eax
cmp byte [edi], 0x2e
jne 0x46c7bc
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
test byte [eax + edx*8 + 8], 1
jne 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xf8], eax
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
lea esi, [edx + ecx*8]
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x38]
mov ebx, dword [edx + eax*4]
cmp byte [ebx + 0x1a], 0
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx]
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x10c], eax
je 0x46c8b1
mov esi, ebx
call fcn.00466cf0
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
jne 0x46e361
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebp - 0xf0]
cmp ecx, dword [edx + 0x48]
je 0x46ca09
cmp byte [ebx + 0x19], 0
je 0x46c8e8
test eax, eax
jne 0x46c8dc
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 0xc]
lea eax, [ecx + eax*8]
mov dword [ebx + 0x44], edx
mov dword [ebx + 0x40], edx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x160], edx
mov dword [ebx + 0x4c], eax
jmp 0x46c97b
test eax, eax
je 0x46c8d0
cmp byte [eax + 0x42], 1
je 0x46c8d0
mov edi, ebx
call fcn.00466d50
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0xd8], eax
jmp 0x46c858
mov dword [ebp - 0xd8], 0
jmp 0x46c86b
mov eax, esi
call fcn.00462fd0
jmp 0x46cd24
test byte [ebx + 0x1c], 4
mov esi, dword [ebp - 0x10c]
mov eax, esi
jne 0x46c92c
call fcn.0045b250
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x1d8], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x1d4], edx
mov edx, dword [ebp - 0x10c]
lea esi, [ebp - 0x160]
call fcn.0045b750
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp - 0x1d8]
mov dword [ebx + 0x40], eax
jmp 0x46c94b
call fcn.0045b250
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x10c]
lea esi, [ebp - 0x160]
mov dword [ebx + 0x40], ecx
call fcn.0045b750
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebp - 0x160]
cmp eax, ecx
ja 0x46c95d
mov dword [ebx + 0x44], eax
jmp 0x46c960
mov dword [ebx + 0x44], ecx
mov edx, dword [ebp - 0xdc]
cmp eax, dword [edx + 0x58]
ja 0x470708
mov edx, dword [ebp - 0x160]
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x48]
mov dword [ebx + 0x3c], ecx
mov ecx, dword [ebx + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x46c9a0
movzx eax, al
mov dword [ebp - 0x150], eax
mov ecx, 1
jmp 0x46c9c0
lea esi, [ebp - 0x150]
call fcn.004493c0
mov edx, dword [ebp - 0x160]
mov esi, dword [ebp - 0x124]
movzx ecx, al
mov eax, dword [ebp - 0x150]
movzx ecx, cl
mov dword [ebx + 0x48], ecx
xor ecx, ecx
mov word [ebx + 0x16], cx
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
cmp eax, 0x18003
ja 0x46c9ee
cmp eax, dword [ebx + 0x40]
ja 0x46c9ee
cmp edx, eax
jae 0x46ca19
xor eax, eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], eax
jmp 0x46ca19
mov eax, 0x12315
call fcn.004b7f40
mov ebx, dword [ebp - 0xf0]
mov dword [ebp - 0xd8], eax
jmp case.0x46b16e.62
movzx edx, word [ebx + 0x16]
cmp edx, dword [ebp - 0xf8]
jg 0x46cc31
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebp - 0xe4]
cmp eax, dword [ecx]
jae 0x46cc04
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x46caac
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], eax
mov edx, dword [ebx + 0x1c]
shr edx, 2
not edx
and edx, 1
push edx
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x10c]
push eax
lea eax, [ebp - 0x260]
call fcn.004635b0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46b725
mov edx, dword [ebp - 0x250]
mov dword [ebp - 0x110], edx
jmp 0x46cab2
mov dword [ebp - 0x110], eax
movzx ecx, word [ebx + 0x16]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + ecx*4]
mov eax, dword [eax]
mov dword [ebp - 0x150], edx
mov edx, dword [ebx + 0x48]
add edx, dword [ebp - 0x110]
add eax, dword [ebp - 0x110]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xe0], eax
lea eax, [ebx + ecx*4 + 0x54]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x108], eax
mov al, byte [edx]
cmp al, 0x80
jae 0x46cb0a
movzx eax, al
inc edx
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0xf4], edx
jmp 0x46cb36
mov ecx, dword [ebp - 0xf4]
lea esi, [ebp - 0x14c]
call fcn.004493c0
mov esi, dword [ebp - 0x124]
movzx ecx, al
add dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x108]
mov dword [edx], eax
call fcn.00466e90
mov edx, eax
mov eax, dword [ebp - 0x150]
add eax, edx
mov dword [ebp - 0x150], eax
cmp eax, edx
jb 0x46cbf5
mov edx, dword [ebp - 0xe4]
add dword [ebp - 0x108], 4
inc ecx
mov dword [edx + ecx*4], eax
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0x104], ecx
cmp ecx, dword [ebp - 0xf8]
jg 0x46cb8c
cmp edx, dword [ebp - 0xe0]
jb 0x46caf2
mov word [ebx + 0x16], cx
mov ecx, edx
sub ecx, dword [ebp - 0x110]
cmp dword [ebx + 0x4c], 0
mov dword [ebx + 0x48], ecx
jne 0x46cbc4
lea eax, [ebp - 0x260]
call fcn.00462c80
mov eax, dword [ebp - 0x150]
mov edx, 1
mov word [ebp - 0x258], dx
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe0]
cmp edx, ecx
jb 0x46cbd5
ja 0x46cbda
cmp eax, dword [ebx + 0x40]
jne 0x46cbda
cmp eax, dword [ebx + 0x40]
jbe 0x46cc04
mov eax, 0x12369
call fcn.004b7f40
mov ebx, dword [ebp - 0xf0]
mov dword [ebp - 0xd8], eax
jmp case.0x46b16e.62
mov edx, dword [ebp - 0xe0]
inc edx
mov dword [ebp - 0xf4], edx
jmp 0x46cb8c
movzx eax, word [ebx + 0x16]
cmp eax, dword [ebp - 0xf8]
jg 0x46cc31
cmp byte [edi + 1], 0xf8
jne 0x46c8dc
mov ecx, dword [edi + 0x10]
push 0x800
push ecx
push esi
call fcn.00463180
add esp, 0xc
jmp 0x46cd24
mov edx, 0x2460
test word [esi + 8], dx
je 0x46cc43
mov eax, esi
call fcn.00462fd0
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebx + eax*4 + 0x54]
mov edx, dword [ebx + 0x44]
mov dword [ebp - 0x14c], ecx
mov ecx, dword [ebp - 0xe4]
cmp edx, dword [ecx + eax*4 + 4]
jb 0x46cc80
mov ecx, dword [ebx + 0x4c]
mov edx, dword [ebp - 0xe4]
add ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x14c]
mov eax, esi
call fcn.00466fb0
jmp 0x46cd1b
mov cl, byte [edi + 3]
mov eax, dword [ebp - 0x14c]
test cl, 0xc0
je 0x46cc9b
cmp eax, 0xc
jb 0x46cc97
test al, 1
je 0x46cca6
test cl, cl
js 0x46cca6
call fcn.00466e90
mov edx, eax
test edx, edx
jne 0x46ccc8
mov edx, dword [ebp - 0x14c]
mov ecx, 0xd
cmp ecx, edx
sbb ecx, ecx
not ecx
lea eax, [ebp - 0x1d8]
and ecx, eax
mov eax, esi
call fcn.00466fb0
jmp 0x46cd1b
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0xe4]
shr ecx, 2
not ecx
and ecx, 1
push ecx
mov ecx, dword [ebp - 0xf8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x10c]
push eax
mov eax, esi
call fcn.004635b0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46b725
mov edx, dword [ebp - 0x14c]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.00466fb0
mov ecx, 0xefff
and word [esi + 8], cx
mov dl, byte [ebp - 0x11d]
mov byte [esi + 0xa], dl
movzx eax, word [esi + 8]
test eax, 0x1000
je 0x46b725
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xfc], ecx
test ecx, ecx
je 0x46b725
mov ebx, dword [esi + 0xc]
mov ecx, eax
and ecx, 0x12
mov dword [ebp - 0x118], ecx
lea ecx, [ebx + 2]
cmp dword [esi + 0x18], ecx
jge 0x46cdae
xor eax, eax
mov edi, esi
call fcn.00462770
test eax, eax
jne 0x4706db
mov edi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [esi + 0x10]
push ebx
push eax
push ecx
call fcn.005dd900
mov edx, dword [esi + 0x10]
mov byte [ebx + edx], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x118]
mov ebx, dword [ebp - 0xf0]
add esp, 0xc
or eax, 0x200
mov word [esi + 8], ax
jmp case.0x46b16e.62
mov edx, dword [esi + 0x14]
and eax, 0xd
mov dword [esi + 0x10], edx
mov word [esi + 8], ax
jmp 0x46cd71
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
mov esi, dword [edi + 0x10]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [ebp - 0xe4], eax
mov al, byte [esi]
test al, al
je case.0x46b16e.62
mov ecx, dword [ebp - 0x11d]
push ecx
mov ecx, dword [ebp - 0xe4]
inc esi
call fcn.0046aec0
mov al, byte [esi]
add dword [ebp - 0xe4], 0x28
add esp, 4
test al, al
jne 0x46cddf
jmp case.0x46b16e.62
mov ecx, dword [ebp - 0xe8]
mov esi, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
mov edi, dword [edi + 0xc]
lea edx, [ecx + edx*8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8 - 0x28]
mov dword [ebp - 0x124], eax
movzx eax, byte [ebx + 0x57]
mov dword [ebp - 0xfc], eax
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xe4], ecx
test esi, esi
je 0x46ce8c
mov al, byte [esi]
mov edi, edx
mov edx, dword [ebp - 0x11d]
push edx
mov ecx, edi
call fcn.0046aec0
mov al, byte [esi + 1]
inc esi
add esp, 4
add edi, 0x28
test al, al
jne 0x46ce70
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0xfc]
push eax
mov edx, esi
call fcn.00466d90
mov edi, eax
add esp, 4
mov dword [esi + 0x1c], edi
call fcn.00466e90
mov ecx, 0x4000
mov dword [ebp - 0xe0], eax
test word [esi + 8], cx
je 0x46cef4
mov edx, dword [ebp - 0x180]
or edx, dword [ebp - 0x17c]
je 0x46cedd
mov eax, esi
call fcn.00462910
test eax, eax
jne 0x4706e1
jmp 0x46cef4
mov eax, dword [esi]
cdq
add dword [ebp - 0x188], eax
mov eax, dword [esi]
adc dword [ebp - 0x184], edx
sub dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
cdq
add dword [ebp - 0x180], eax
adc dword [ebp - 0x17c], edx
cmp edi, 0x7f
ja 0x46cf13
mov eax, 1
jmp 0x46cf1e
push 0
push edi
call fcn.00449430
add esp, 8
add dword [ebp - 0xf4], eax
sub esi, 0x28
cmp esi, dword [ebp - 0x104]
jae 0x46ce92
cmp dword [ebp - 0xf4], 0x7e
jle 0x46cf69
mov eax, dword [ebp - 0xf4]
cdq
push edx
push eax
call fcn.00449430
mov esi, eax
mov eax, dword [ebp - 0xf4]
add eax, esi
mov dword [ebp - 0xf4], eax
cdq
push edx
push eax
call fcn.00449430
add esp, 0x10
cmp esi, eax
jge 0x46cf6f
inc dword [ebp - 0xf4]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x17c]
cdq
mov esi, eax
mov eax, dword [ebp - 0x180]
add eax, esi
mov edi, eax
adc ecx, edx
add edi, dword [ebp - 0x188]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x58]
adc ecx, dword [ebp - 0x184]
mov dword [ebp - 0x2cc], edx
cdq
cmp ecx, edx
jg 0x47070e
jl 0x46cfbe
cmp edi, eax
ja 0x47070e
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x18]
cmp ecx, dword [ebp - 0x1e8]
jge 0x46d021
mov ecx, dword [ebp - 0x1e8]
mov edi, dword [ebp - 0xe4]
xor eax, eax
call fcn.00462770
test eax, eax
jne 0x4706db
mov eax, edi
mov ecx, dword [ebp - 0xf4]
mov edi, dword [eax + 0x10]
mov dword [ebp - 0x108], edi
cmp ecx, 0x80
jae 0x46d02e
mov ebx, dword [ebp - 0x104]
mov eax, 1
movzx eax, al
mov byte [edi], cl
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x110], ecx
jmp 0x46d06c
mov edx, dword [eax + 0x14]
and word [eax + 8], 0xd
mov dword [eax + 0x10], edx
jmp 0x46cfec
mov eax, dword [ebp - 0x2cc]
push eax
push esi
mov esi, edi
call fcn.004491e0
mov ecx, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x104]
movzx eax, al
add esp, 8
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x110], ecx
jmp 0x46d06c
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0x108]
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0xfc], ecx
cmp ecx, 0x80
jae 0x46d087
mov byte [eax + edi], cl
mov eax, 1
jmp 0x46d09b
push 0
push ecx
lea esi, [eax + edi]
call fcn.004491e0
mov ecx, dword [ebp - 0xfc]
add esp, 8
mov esi, dword [ebp - 0x110]
movzx edx, al
mov eax, dword [ebp - 0x108]
add dword [ebp - 0xe0], edx
lea edi, [esi + eax]
mov eax, ebx
call fcn.00466eb0
add esi, eax
add ebx, 0x28
mov dword [ebp - 0x110], esi
cmp ebx, dword [ebp - 0x124]
jbe 0x46d060
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0xe4]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x188]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [ebp - 0x184]
je 0x46d100
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov byte [eax + 0xa], 1
jmp 0x46f200
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
xor ecx, ecx
lea edx, [ebp - 0x1c8]
push edx
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c4], ecx
call fcn.004601b0
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
add esp, 4
test word [eax + 8], dx
je 0x46d169
call fcn.0046b020
mov edx, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x46b16e.62
mov edx, dword [ebp - 0x1c8]
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x1c4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x46b16e.62
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov esi, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xe0], eax
test ecx, ecx
jne 0x46d27a
cmp dword [esi + 0x9c], ecx
jle 0x46d1ba
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x46d313
call fcn.004482e0
mov edx, dword [esi + 0x1f4]
add edx, dword [esi + 0x1f0]
mov dword [ebp - 0x104], eax
push edx
push 0
push esi
call fcn.004a64c0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
mov eax, dword [ebp - 0x104]
add eax, 0x21
push 0
push eax
call fcn.00445af0
mov esi, eax
add esp, 8
test esi, esi
je case.0x46b16e.62
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xe0]
inc ecx
push ecx
lea eax, [esi + 0x20]
push edx
push eax
mov dword [esi], eax
call fcn.005dd900
mov eax, dword [ebp - 0xdc]
add esp, 0xc
cmp byte [eax + 0x3f], 0
je 0x46d23c
mov byte [eax + 0x3f], 0
mov byte [eax + 0x46], 1
jmp 0x46d242
inc dword [eax + 0x1f0]
mov ecx, dword [eax + 0x1e8]
mov dword [esi + 0x18], ecx
mov edx, dword [eax + 0x1f8]
mov dword [eax + 0x1e8], esi
mov dword [esi + 8], edx
mov ecx, dword [eax + 0x1fc]
mov dword [esi + 0xc], ecx
mov edx, dword [eax + 0x200]
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0x204]
mov dword [esi + 0x14], eax
jmp case.0x46b16e.62
mov eax, dword [esi + 0x1e8]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x46d2d5
jmp 0x46d2a0
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx]
push ecx
push eax
call fcn.004485d0
add esp, 8
test eax, eax
je 0x46d2f9
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ecx + 0x18]
inc dword [ebp - 0xf8]
mov dword [ebp - 0xf4], eax
test eax, eax
jne 0x46d2a0
mov edx, dword [ebp - 0xe0]
push edx
push str.no_such_savepoint:__s
push ebx
call fcn.00463c70
add esp, 0xc
mov dword [ebp - 0xd8], 1
jmp case.0x46b16e.62
mov eax, dword [ebp - 0xe4]
xor ecx, ecx
cmp dword [esi + 0x9c], ecx
jle 0x46d32b
cmp eax, 1
jne 0x46d32b
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebx
call fcn.00463c70
add esp, 8
mov dword [ebp - 0xd8], 5
jmp case.0x46b16e.62
mov edx, dword [ebp - 0xf4]
cmp dword [edx + 0x18], ecx
jne 0x46d38b
cmp byte [esi + 0x46], cl
je 0x46d38b
mov dword [ebp - 0x108], 1
cmp eax, 1
jne 0x46d391
push eax
mov esi, ebx
call fcn.00466300
mov esi, eax
add esp, 4
test esi, esi
jne 0x4701cc
mov esi, dword [ebp - 0xdc]
mov eax, ebx
mov byte [esi + 0x3f], 1
call fcn.00466370
cmp eax, 5
je 0x470568
mov byte [esi + 0x46], 0
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0xd8], eax
jmp 0x46d4b5
mov dword [ebp - 0x108], ecx
mov edx, dword [esi + 0x1f0]
sub edx, dword [ebp - 0xf8]
dec edx
mov dword [ebp - 0xf8], edx
cmp eax, 2
jne 0x46d42d
mov eax, dword [esi + 0x18]
shr eax, 1
and eax, 1
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x10c], ecx
cmp dword [esi + 0x14], ecx
jle 0x46d433
xor edx, edx
cmp eax, ecx
sete dl
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xfc], edx
lea esp, [esp]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp - 0xe0]
push eax
mov eax, dword [edx + ecx + 4]
push 0x204
push eax
call fcn.0045ad20
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
mov eax, dword [ebp - 0x10c]
add dword [ebp - 0xe0], 0x10
inc eax
mov dword [ebp - 0x10c], eax
cmp eax, dword [esi + 0x14]
jl 0x46d3e0
xor ecx, ecx
jmp 0x46d433
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x10c], ecx
cmp dword [esi + 0x14], ecx
jle 0x46d49a
mov dword [ebp - 0xe0], 0
jmp 0x46d450
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xe4]
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ecx + eax + 4]
push edx
call fcn.0045af60
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
mov eax, dword [ebp - 0x10c]
add dword [ebp - 0xe0], 0x10
inc eax
mov dword [ebp - 0x10c], eax
cmp eax, dword [esi + 0x14]
jl 0x46d450
cmp dword [ebp - 0x104], 0
je 0x46d4b5
mov eax, esi
call fcn.00468250
mov eax, esi
call fcn.00480ac0
or dword [esi + 0x18], 2
mov edx, dword [ebp - 0xf4]
cmp dword [esi + 0x1e8], edx
je 0x46d4fa
jmp 0x46d4d0
mov eax, dword [esi + 0x1e8]
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1e8], ecx
mov ecx, esi
call fcn.00445870
mov edx, dword [ebp - 0xf4]
dec dword [esi + 0x1f0]
cmp dword [esi + 0x1e8], edx
jne 0x46d4d0
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xf4]
cmp ecx, 1
jne 0x46d536
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1e8], ecx
mov ecx, esi
call fcn.00445870
cmp dword [ebp - 0x108], 0
jne case.0x46b16e.62
mov esi, dword [ebp - 0xdc]
dec dword [esi + 0x1f0]
jmp 0x46d572
cmp dword [ebp - 0x108], 0
mov edx, dword [eax + 8]
mov dword [esi + 0x1f8], edx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x1fc], edx
mov edx, dword [eax + 0x10]
mov dword [esi + 0x200], edx
mov eax, dword [eax + 0x14]
mov dword [esi + 0x204], eax
je 0x46d572
cmp ecx, 2
jne case.0x46b16e.62
mov esi, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xe4]
push ecx
push edx
push esi
call fcn.004a64c0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x46d5ce
mov edx, dword [ebp - 0xdc]
cmp byte [edx + 0x3f], 0
jne 0x46d5ce
test ecx, ecx
jne 0x46d5ce
cmp dword [edx + 0x9c], ecx
jle 0x46d5ce
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x46d313
mov esi, dword [ebp - 0xdc]
movzx edx, byte [esi + 0x3f]
cmp eax, edx
jne 0x470593
test eax, eax
jne 0x46d5eb
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x46d5f9
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x46d5f9
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push ebx
call fcn.00463c70
add esp, 8
mov dword [ebp - 0xd8], 1
jmp case.0x46b16e.62
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x46d62c
mov eax, dword [ebp - 0xdc]
test dword [eax + 0x18], 0x2000000
jne 0x47062c
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0xdc]
mov eax, dword [esi + 0x10]
add edx, edx
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x46d735
push ecx
mov ecx, eax
push ecx
call fcn.00459fd0
add esp, 8
mov dword [ebp - 0xd8], eax
cmp eax, 5
je 0x47063b
test eax, eax
jne 0x46e361
cmp dword [edi + 8], eax
je 0x46d70d
test byte [ebx + 0x58], 0x20
je 0x46d70d
cmp byte [esi + 0x3f], al
je 0x46d694
cmp dword [esi + 0x98], 1
jle 0x46d70d
cmp dword [ebx + 0x68], 0
jne 0x46d6af
mov edx, dword [esi + 0x1f0]
inc dword [esi + 0x1f4]
add edx, dword [esi + 0x1f4]
mov dword [ebx + 0x68], edx
mov eax, dword [ebx + 0x68]
dec eax
push eax
push 0
push esi
call fcn.004a64c0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46d6dd
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebp - 0xe0]
call fcn.0045af00
mov dword [ebp - 0xd8], eax
mov ecx, dword [esi + 0x1f8]
mov dword [ebx + 0x98], ecx
mov edx, dword [esi + 0x1fc]
mov dword [ebx + 0x9c], edx
mov eax, dword [esi + 0x200]
mov dword [ebx + 0xa0], eax
mov ecx, dword [esi + 0x204]
mov dword [ebx + 0xa4], ecx
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0x19c]
push edx
push 1
call fcn.004600d0
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x10]
add esp, 8
add eax, eax
mov edx, dword [ecx + eax*8 + 0xc]
mov eax, dword [edx + 4]
jmp 0x46d741
mov dword [ebp - 0x19c], 0
xor eax, eax
cmp byte [edi + 3], 0
je case.0x46b16e.62
mov ecx, dword [ebp - 0x19c]
cmp ecx, dword [edi + 0xc]
jne 0x46d75f
cmp eax, dword [edi + 0x10]
je case.0x46b16e.62
mov esi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [esi + 0x2c]
mov ecx, ebx
call fcn.00445870
push ebx
mov ebx, str.database_schema_has_changed
call fcn.00445ce0
mov ecx, dword [ebp - 0xdc]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 0x10]
mov edx, eax
add edx, edx
mov edx, dword [ecx + edx*8 + 0xc]
mov ecx, dword [ebp - 0x19c]
add esp, 4
cmp dword [edx], ecx
je 0x46d7bd
mov edi, dword [ebp - 0xdc]
mov esi, eax
call fcn.00480a90
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0xf0]
or dword [esi + 0x58], 8
mov ebx, dword [ebp - 0xf0]
mov dword [ebp - 0xd8], 0x11
jmp case.0x46b16e.62
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea edx, [ebp - 0x1fc]
push edx
mov edx, dword [ebp - 0xdc]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
call fcn.004600d0
mov eax, dword [edi + 8]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
add esp, 8
test word [eax + 8], cx
je 0x46d82a
call fcn.0046b020
mov ecx, eax
mov eax, dword [ebp - 0x1fc]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46b16e.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, eax
mov eax, dword [ebp - 0x1fc]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea esi, [eax + edx*8]
call fcn.00462e30
mov ecx, dword [esi]
mov edx, dword [edi + 8]
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
push ecx
push edx
call fcn.00460130
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, 1
jne 0x46d8ae
mov ecx, dword [ebp - 0xe0]
mov eax, dword [esi]
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ebp - 0xdc]
or dword [eax + 0x18], 2
jmp 0x46d8c1
cmp eax, 2
jne 0x46d8c1
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx + 0xc]
mov al, byte [esi]
mov byte [edx + 0x4c], al
cmp dword [edi + 4], 1
jne case.0x46b16e.62
mov eax, dword [ebp - 0xdc]
call fcn.00468250
and dword [ebx + 0x58], 0xfffffff7
jmp case.0x46b16e.62
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
test esi, esi
je case.0x46b16e.54
mov edx, dword [esi + 0x20]
cmp edx, dword [edi + 8]
je 0x46da45
test byte [ebx + 0x58], 8
je 0x46d90d
mov dword [ebp - 0xd8], 0x204
jmp case.0x46b16e.62
mov esi, dword [ebp - 0xdc]
mov edx, dword [edi + 8]
xor eax, eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x108], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xfc], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x104], edx
mov esi, dword [eax + 4]
mov dword [ebp - 0x118], esi
cmp cl, 0x37
jne 0x46d961
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x110], 1
cmp al, byte [ebx + 0x57]
jae 0x46d96b
mov byte [ebx + 0x57], al
jmp 0x46d96b
mov dword [ebp - 0x110], 0
test byte [edi + 3], 4
je 0x46d993
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0xe8]
lea esi, [edx + ecx*8]
call fcn.00462e30
mov esi, dword [esi]
mov dword [ebp - 0x104], esi
cmp esi, 2
jl 0x470662
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x46d9b5
mov ecx, dword [edi + 0x10]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x108], ecx
movzx ecx, word [ecx + 6]
add eax, ecx
mov dword [ebp - 0xe0], eax
jmp 0x46d9c2
cmp al, 0xf2
jne 0x46d9c2
mov edx, dword [edi + 0x10]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0xf0]
push 1
push eax
push ecx
push edx
call fcn.0046ad30
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4706db
mov ecx, dword [esi]
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x104]
or dword [esi + 0x1c], 8
push ecx
mov ecx, dword [ebp - 0x118]
push edi
push edx
mov byte [esi + 0x19], 1
mov dword [esi + 0x20], eax
call fcn.0045b0a0
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xd8], eax
xor eax, eax
add esp, 0xc
mov dword [esi + 8], edi
cmp byte [ecx + 1], 0xfa
mov edi, ecx
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
mov dl, byte [edi + 3]
mov eax, dword [esi]
and dl, 3
mov byte [eax + 0x43], dl
jmp case.0x46b16e.62
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0xf0]
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.0046ad30
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4706db
or dword [esi + 0x1c], 1
mov ebx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xdc]
mov byte [esi + 0x19], 1
movzx eax, byte [ebx + 3]
mov ecx, dword [edx]
push 0x41e
or eax, 5
push eax
push 0
push ecx
lea ecx, [esi + 4]
call fcn.00458f90
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46db52
mov edx, dword [esi + 4]
push 1
push edx
call fcn.00459fd0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46db52
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x46db31
movzx eax, byte [ebx + 3]
or eax, 2
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x1f8]
push ecx
call fcn.0045fbb0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46db2b
mov edx, dword [esi]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [esi + 4]
push edx
push eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x1f8]
push 1
call fcn.0045b0a0
add esp, 0xc
mov dword [ebp - 0xd8], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x46db52
mov eax, dword [esi]
mov ecx, dword [esi + 4]
push eax
push 0
push 1
mov eax, 1
call fcn.0045b0a0
add esp, 0xc
or dword [esi + 0x1c], 4
mov dword [ebp - 0xd8], eax
xor ecx, ecx
cmp byte [ebx + 3], 8
setne cl
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 0x1c]
and ecx, 8
xor dword [esi + 0x1c], ecx
jmp 0x46f200
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xf0]
push 1
push 0xffffffffffffffff
push edx
push eax
call fcn.0046ad30
add esp, 0x10
test eax, eax
je 0x4706db
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 8], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xdc]
push eax
push ecx
call fcn.00471f80
add esp, 0xc
mov dword [ebp - 0xd8], eax
jmp 0x46f206
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x2c4], edx
adc edx, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edx
mov eax, ecx
mov ecx, dword [ebp - 0x2c4]
or eax, ecx
je 0x46f628
jmp case.0x46b16e.62
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0xf0]
push 0
push 0xffffffffffffffff
push ecx
push edx
call fcn.0046ad30
add esp, 0x10
test eax, eax
je 0x4706db
mov ecx, dword [ebp - 0xec]
mov byte [eax + 0x19], 1
mov edx, dword [ecx + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], edx
jmp 0x46f206
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov ecx, dword [ecx + eax*4]
mov eax, ebx
call fcn.004654c0
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov dword [eax + edx*4], 0
jmp case.0x46b16e.62
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x38]
mov esi, dword [edx + ecx*4]
test byte [esi + 0x1c], 4
mov dword [ebp - 0x10c], eax
mov byte [esi + 0x19], 0
je 0x46dd3b
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
and dl, 0xe
mov dword [ebp - 0xf4], eax
cmp dl, 2
jne 0x46dc99
push 0
call fcn.0046ae40
add esp, 4
mov ecx, dword [ebp - 0xf4]
call fcn.00462d00
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0xf4]
movzx eax, word [eax + 8]
mov dword [ebp - 0x1a4], edx
test al, 4
jne 0x46dd06
test al, 8
je 0x46f628
fild qword [ebp - 0x1a8]
mov ecx, dword [ebp - 0xf4]
fcom qword [ecx]
fnstsw ax
test ah, 0x41
jne 0x46dcee
test byte [ebp - 0x10c], 1
fstp st(0)
jne 0x46dd06
dec dword [ebp - 0x10c]
jmp 0x46dd06
fcomp qword [ecx]
fnstsw ax
test ah, 5
jp 0x46dd06
test byte [ebp - 0x10c], 1
je 0x46dd06
inc dword [ebp - 0x10c]
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1a8]
lea ecx, [ebp - 0x138]
push ecx
mov ecx, dword [esi]
push 0
push edx
push eax
push 0
push ecx
call fcn.0045bae0
mov edx, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a4]
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], ecx
jmp 0x46dda0
mov edx, dword [esi + 8]
mov cx, word [edi + 0x10]
dec eax
test al, 1
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x2e4], edx
sete dl
mov word [ebp - 0x2e0], cx
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2dc], eax
lea edx, [edx + edx - 1]
mov byte [ebp - 0x2de], dl
mov edx, 0x4000
test word [eax + 8], dx
je 0x46dd84
call fcn.00462910
mov edx, dword [esi]
lea eax, [ebp - 0x138]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x2e4]
push ecx
push edx
call fcn.0045bae0
add esp, 0x18
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
mov edx, dword [ebp - 0x10c]
xor ecx, ecx
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], ecx
mov eax, dword [ebp - 0x138]
cmp edx, 0x41
jl 0x46ddf8
cmp eax, ecx
jl 0x46dde1
jne 0x46ddd6
cmp edx, 0x42
je 0x46dde1
mov dword [ebp - 0x138], ecx
jmp case.0x46b16e.62
lea eax, [ebp - 0x138]
mov dword [ebp - 0x138], ecx
mov ecx, dword [esi]
push eax
push ecx
call fcn.0045c070
jmp 0x46de2b
cmp eax, ecx
jg 0x46de16
jne 0x46de03
cmp edx, 0x3f
je 0x46de16
mov edx, dword [esi]
xor eax, eax
cmp byte [edx + 0x42], 1
setne al
mov dword [ebp - 0x138], eax
jmp 0x46de3c
mov dword [ebp - 0x138], ecx
mov edx, dword [esi]
lea ecx, [ebp - 0x138]
push ecx
push edx
call fcn.0045c1f0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
cmp dword [ebp - 0x138], 0
jne 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
mov byte [esi + 0x19], 0
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + edx*8]
call fcn.00462d00
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp case.0x46b16e.62
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi + 4]
mov ecx, dword [edx + ecx*4]
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
xor esi, esi
lea eax, [edx + eax*8]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x10c], esi
cmp dword [edi + 0x10], esi
jle 0x46df1f
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x2bc], ecx
mov cx, word [edi + 0x10]
xor edx, edx
mov word [ebp - 0x2b8], cx
mov dword [ebp - 0x2b4], eax
cmp dx, cx
jae 0x46df14
xor eax, eax
mov dword [ebp - 0x104], eax
jmp 0x46dee0
add eax, dword [ebp - 0x2b4]
mov edx, 0x4000
test word [eax + 8], dx
je 0x46defd
call fcn.00462910
mov cx, word [ebp - 0x2b8]
mov eax, dword [ebp - 0x104]
movzx edx, cx
inc esi
add eax, 0x28
mov dword [ebp - 0x104], eax
cmp esi, edx
jl 0x46dee0
lea esi, [ebp - 0x2bc]
jmp 0x46df8e
mov eax, dword [ebp - 0x110]
mov edi, dword [eax + 8]
push 0xbf
lea ebx, [ebp - 0x10c]
lea edx, [ebp - 0xc8]
call fcn.00467130
mov esi, eax
add esp, 4
test esi, esi
je 0x4706db
mov eax, dword [ebp - 0xf4]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x46df61
call fcn.00462910
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x110]
push esi
push edx
mov edx, dword [ecx + 8]
push eax
push edx
call fcn.00467190
mov edi, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xf0]
add esp, 0x10
xor ecx, ecx
mov byte [esi + 6], 0
cmp byte [edi], 0x44
mov dword [ebp - 0x104], ecx
jne 0x46dfca
xor eax, eax
cmp ax, word [esi + 4]
jae 0x46dfca
mov eax, dword [esi + 8]
add eax, 8
test byte [eax], 1
jne 0x46dfc0
movzx edx, word [esi + 4]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x46dfad
jmp 0x46dfca
mov dword [ebp - 0x104], 1
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx]
lea eax, [ebp - 0x1dc]
push eax
push 0
push 0
push 0
push esi
push edx
call fcn.0045bae0
mov ecx, dword [ebp - 0xdc]
mov esi, eax
mov eax, dword [ebp - 0x10c]
add esp, 0x18
mov dword [ebp - 0xd8], esi
call fcn.00445870
test esi, esi
jne case.0x46b16e.62
mov ecx, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x110]
xor eax, eax
test ecx, ecx
mov dword [esi + 0xc], ecx
sete al
mov cl, 1
sub cl, al
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
cmp byte [edi], 0x46
jne 0x46e044
test eax, eax
jne 0x46f628
jmp case.0x46b16e.62
cmp dword [ebp - 0x104], 0
jne 0x46f628
test eax, eax
je 0x46f628
jmp case.0x46b16e.62
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
mov ecx, dword [esi]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*8]
mov dword [ebp - 0x1b8], edx
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx + eax*8 + 4]
lea edx, [ebp - 0x104]
push edx
push 0
push eax
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x1b8]
push eax
push 0
push ecx
mov dword [ebp - 0x104], 0
call fcn.0045bae0
mov ecx, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x104]
add esp, 0x18
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x3c], 0
mov word [esi + 0x19], 0
mov dword [esi + 0xc], eax
test eax, eax
jne 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46e10d
call fcn.0046b020
jmp 0x46e116
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
xor esi, esi
lea eax, [edx + ecx*8]
mov ecx, 0x2460
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x110], esi
test word [eax + 8], cx
je 0x46e172
call fcn.0046b020
jmp 0x46e17b
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x38]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
test byte [eax + 0x1c], 2
mov dword [ebp - 0xf8], eax
jne 0x46e229
mov esi, eax
mov eax, dword [esi]
lea edi, [ebp - 0x110]
call fcn.0045ba90
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
cmp dword [ebp - 0x110], eax
je 0x46e1cd
mov dword [ebp - 0x140], 1
xor esi, esi
jmp 0x46e217
mov esi, dword [esi]
mov eax, esi
call fcn.0045b250
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0xd8], 0
cmp esi, 0x7fffffff
jl 0x46e20d
jg 0x46e201
cmp eax, 0xffffffff
jb 0x46e20d
mov eax, dword [ebp - 0xf8]
or dword [eax + 0x1c], 2
jmp 0x46e21d
add dword [ebp - 0x140], 1
adc esi, 0
mov dword [ebp - 0x13c], esi
mov edi, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xf0]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x46e2c9
mov ecx, dword [ebx + 0xb0]
test ecx, ecx
je 0x46e259
mov eax, dword [ecx + 4]
test eax, eax
je 0x46e24e
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x46e245
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x46e265
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0xe8]
lea esi, [edx + ecx*8]
call fcn.00462e30
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x46e280
cmp ecx, 0x7fffffff
je 0x46e357
mov edx, dword [ebp - 0xf8]
test byte [edx + 0x1c], 2
jne 0x46e357
mov edx, dword [ebp - 0x13c]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x46e2b8
jl 0x46e2aa
cmp dword [ebp - 0x140], eax
jae 0x46e2b8
mov edx, ecx
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x140]
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0xf8]
test byte [ecx + 0x1c], 2
je 0x46e390
mov dword [ebp - 0x104], 0
lea edx, [ebp - 0x140]
push edx
push 8
call fcn.00447850
mov esi, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x140]
mov edx, dword [ebp - 0xf8]
lea ecx, [ebp - 0x110]
push ecx
and esi, 0x3fffffff
add eax, 1
push 0
adc esi, 0
push esi
push eax
mov dword [ebp - 0x140], eax
mov eax, dword [edx]
push 0
push eax
mov dword [ebp - 0x13c], esi
call fcn.0045bae0
add esp, 0x20
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e390
cmp dword [ebp - 0x110], eax
jne 0x46e390
mov eax, dword [ebp - 0x104]
inc eax
mov dword [ebp - 0x104], eax
cmp eax, 0x64
jl 0x46e2e3
mov dword [ebp - 0xd8], 0xd
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x41], 0
je 0x470677
mov dword [ebp - 0xd8], 7
mov ecx, dword [ebp - 0xd8]
mov eax, str.unknown_error
call fcn.004b6000
jmp 0x4706aa
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x140]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0xe4]
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov esi, dword [ebx + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea edx, [eax + edx*8]
mov dword [ebp - 0xe0], edx
mov edx, dword [edi + 4]
mov esi, dword [esi + edx*4]
cmp cl, 0x54
jne 0x46e3f5
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x16c], eax
jmp 0x46e40d
mov eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x170], eax
mov edx, eax
mov eax, dword [ebp - 0x16c]
test byte [edi + 3], 1
je 0x46e416
inc dword [ebx + 0x5c]
test byte [edi + 3], 2
je 0x46e434
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x154], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0xe0]
movzx eax, word [edx + 8]
test al, 1
je 0x46e44a
xor ecx, ecx
mov dword [edx + 0x10], ecx
mov dword [edx + 0xc], ecx
mov dl, byte [edi + 3]
test dl, 0x10
je 0x46e457
mov ecx, dword [esi + 0xc]
jmp 0x46e459
xor ecx, ecx
test eax, 0x4000
je 0x46e46a
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax]
jmp 0x46e46c
xor eax, eax
push ecx
movzx ecx, dl
shr ecx, 3
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x16c]
push eax
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push edx
mov edx, dword [ebp - 0x170]
push eax
mov eax, dword [esi]
push ecx
push edx
push 0
call fcn.0045f440
add esp, 0x20
mov dword [ebp - 0xd8], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
test eax, eax
jne case.0x46b16e.62
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je case.0x46b16e.62
mov eax, dword [edi + 0x10]
test eax, eax
je case.0x46b16e.62
mov edx, dword [ebp - 0x16c]
push edx
mov edx, dword [ebp - 0x170]
push edx
movsx edx, byte [esi + 0x18]
push eax
mov eax, dword [ebp - 0xdc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xd0]
add edx, edx
mov edx, dword [esi + edx*8]
push edx
mov dl, byte [edi + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x46b16e.62
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x38]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
call fcn.0045f650
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x46e587
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x46e587
mov eax, dword [edi + 0x10]
test eax, eax
je 0x46e587
test byte [esi + 0x1c], 4
je 0x46e587
mov edx, dword [esi + 0x34]
push edx
mov edx, dword [esi + 0x30]
push edx
movsx edx, byte [esi + 0x18]
push eax
mov eax, dword [ebp - 0xdc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xd0]
add edx, edx
mov edx, dword [esi + edx*8]
push edx
push 9
push eax
call ecx
add esp, 0x18
test byte [edi + 8], 1
je case.0x46b16e.62
inc dword [ebx + 0x5c]
jmp case.0x46b16e.62
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ebp - 0xdc]
add dword [eax + 0x54], ecx
mov dword [eax + 0x50], ecx
mov dword [ebx + 0x5c], 0
jmp case.0x46b16e.62
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x38]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, dword [edi + 0x10]
lea esi, [ebp - 0xf4]
push esi
push edx
push ecx
mov dword [ebp - 0xf4], 0
call fcn.004741e0
add esp, 0xc
cmp dword [ebp - 0xf4], 0
mov dword [ebp - 0xd8], eax
jne 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
call fcn.00474140
mov ecx, dword [edi + 0xc]
mov edx, dword [ebx + 0x38]
mov dword [ebp - 0xd8], eax
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x3c], 0
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
lea esi, [edx + ecx*8]
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
test byte [eax + 0x1c], 4
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], edx
mov eax, edx
jne 0x46e6ad
call fcn.0045b250
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x238], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x47070e
jl 0x46e69f
cmp dword [ebp - 0x238], eax
ja 0x47070e
mov ecx, dword [ebp - 0x238]
mov dword [ebp - 0xe0], ecx
jmp 0x46e6d2
call fcn.0045b250
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
cmp eax, dword [ecx + 0x58]
ja 0x47070e
mov ecx, eax
cmp ecx, 0x20
ja 0x46e6dc
mov ecx, 0x20
cmp dword [esi + 0x18], ecx
jge 0x46e752
xor eax, eax
mov edi, esi
call fcn.00462770
test eax, eax
jne 0x4706db
mov edi, dword [ebp - 0xec]
mov ax, word [esi + 8]
mov ecx, dword [ebp - 0xe0]
mov edx, 0xbe10
and ax, dx
or ax, 0x10
mov word [esi + 8], ax
mov eax, dword [ebp - 0xfc]
mov dword [esi + 0xc], ecx
test byte [eax + 0x1c], 4
jne 0x46e75f
mov eax, dword [esi + 0x10]
push 0
push eax
push ecx
mov ecx, dword [ebp - 0xf8]
push 0
push ecx
call fcn.0045b410
mov ebx, dword [ebp - 0xf0]
add esp, 0x14
mov dword [ebp - 0xd8], eax
mov byte [esi + 0xa], 1
jmp case.0x46b16e.62
mov edx, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], edx
jmp 0x46e6fc
mov edx, dword [esi + 0x10]
mov eax, dword [ebp - 0xf8]
push edx
push ecx
push 0
push eax
call fcn.0045b700
mov ebx, dword [ebp - 0xf0]
add esp, 0x10
mov dword [ebp - 0xd8], eax
mov byte [esi + 0xa], 1
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46e7a8
call fcn.0046b020
jmp 0x46e7b1
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x38]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 0x19], 0
je 0x46e7da
mov eax, dword [ebp - 0xe4]
mov edx, 1
mov word [eax + 8], dx
jmp case.0x46b16e.62
cmp byte [esi + 0x1a], 0
je 0x46e7f1
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [esi + 0x34]
jmp 0x46e8ab
cmp dword [esi + 0x24], 0
je 0x46e837
mov eax, dword [esi + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [ebp - 0x1b0]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
push esi
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00468310
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0xe4]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1ac]
add esp, 0x10
mov dword [eax + 4], edx
jmp case.0x46b16e.62
mov ecx, dword [esi]
cmp byte [ecx + 0x42], 1
je 0x46e87a
mov edi, esi
call fcn.00466d50
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
mov edi, dword [ebp - 0xec]
cmp byte [esi + 0x19], 0
je 0x46e886
mov eax, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xf0]
mov edx, 1
mov word [eax + 8], dx
jmp case.0x46b16e.62
mov dword [ebp - 0xd8], 0
jmp 0x46e85a
mov esi, dword [esi]
mov eax, esi
call fcn.0045b250
mov ecx, dword [esi + 0x10]
mov ebx, dword [ebp - 0xf0]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x1ac], edx
mov dword [eax], ecx
mov edx, dword [ebp - 0x1ac]
mov dword [eax + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je case.0x46b16e.62
mov esi, eax
call fcn.00457980
jmp case.0x46b16e.62
mov eax, dword [ebx + 0x38]
mov edx, dword [edi + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
xor ebx, ebx
lea edi, [ebp - 0xe4]
mov dword [ebp - 0xe4], ebx
call fcn.0045ba90
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xec]
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], bl
mov dword [esi + 0x3c], ebx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
mov edi, eax
cmp dword [eax + 8], ebx
jle 0x46b725
cmp ecx, ebx
mov ebx, dword [ebp - 0xf0]
jne 0x46f628
jmp case.0x46b16e.62
inc dword [ebx + 0x74]
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
cmp dword [esi + 0x38], 0
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x124], 1
je 0x46e997
lea edi, [ebp - 0x124]
mov eax, esi
call fcn.00474080
mov edi, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xf0]
mov dword [ebp - 0xd8], eax
jmp 0x46e9e1
mov edx, dword [ebp - 0xe0]
mov esi, dword [edx]
call fcn.0045b7e0
test eax, eax
jne 0x46e9c8
cmp byte [esi + 0x42], al
jne 0x46e9b9
mov dword [ebp - 0x124], 1
jmp 0x46e9c8
mov dword [ebp - 0x124], 0
call fcn.0045b940
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov esi, eax
mov eax, dword [ebp - 0x124]
mov byte [esi + 0x19], al
test eax, eax
jne 0x46f628
jmp case.0x46b16e.62
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [ebp - 0xdc]
push eax
lea ebx, [ebp - 0x164]
mov eax, esi
mov dword [ebp - 0x164], 0
call fcn.004740d0
add esp, 4
jmp 0x46ea5d
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x38]
cmp dword [edx + ecx*4], 0
je case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x164], edx
mov ecx, dword [esi]
mov edx, dword [edi + 0x10]
lea eax, [ebp - 0x164]
push eax
push ecx
call edx
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [ebp - 0x164], 0
mov dword [ebp - 0xd8], eax
jne 0x46ea90
mov ecx, dword [ebp - 0xf0]
mov byte [esi + 0x19], 0
movzx eax, byte [edi + 3]
inc dword [ecx + eax*4 + 0x6c]
lea eax, [ecx + eax*4 + 0x6c]
mov ebx, ecx
jmp case.0x46b16e.14
mov ebx, dword [ebp - 0xf0]
mov byte [esi + 0x19], 1
jmp 0x4700bd
test byte [edi + 3], 1
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x104], ecx
lea esi, [eax + edx*8]
je 0x46eac6
inc dword [ebx + 0x5c]
mov edx, 0x4000
test word [esi + 8], dx
je 0x46eaec
mov eax, esi
call fcn.00462910
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46b725
mov ecx, dword [ebp - 0x104]
cmp byte [edi], 0x6e
jne 0x46eb07
push esi
mov eax, ecx
call fcn.00473180
add esp, 4
mov dword [ebp - 0xd8], eax
jmp case.0x46b16e.62
test byte [edi + 3], 0x10
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
je 0x46eb18
mov edx, dword [ecx + 0xc]
jmp 0x46eb1a
xor edx, edx
push edx
mov edx, dword [edi + 0xc]
push edx
push 0
push 0
cdq
push 0x688621
push edx
push eax
mov eax, dword [ecx]
push esi
call fcn.0045f440
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x104]
add esp, 0x20
mov dword [eax + 0x3c], 0
jmp case.0x46b16e.62
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi + 4]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov dx, word [edi + 0xc]
mov dword [ebp - 0x304], eax
mov eax, dword [edi + 8]
mov word [ebp - 0x300], dx
mov edx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [ebp - 0x1f4]
push edx
push 0
push 0
mov dword [ebp - 0x2fc], eax
push 0
lea eax, [ebp - 0x304]
push eax
push ecx
mov dword [ebp - 0xfc], ecx
mov byte [ebp - 0x2fe], 0
call fcn.0045bae0
add esp, 0x18
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46ebcf
cmp dword [ebp - 0x1f4], eax
jne 0x46ebcf
mov eax, dword [ebp - 0xfc]
call fcn.0045f650
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x3c], 0
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46ebf9
call fcn.0046b020
jmp 0x46ec02
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x38]
mov esi, eax
mov eax, dword [edi + 4]
mov ebx, dword [ecx + eax*4]
mov edx, dword [ebx]
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebx]
mov dword [ebp - 0xfc], edx
cmp byte [ecx + 0x42], al
je 0x46ecab
mov edi, ebx
call fcn.00466d50
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46e361
mov edi, dword [ebp - 0xec]
cmp byte [ebx + 0x19], 0
jne 0x46b725
mov eax, dword [ebp - 0xdc]
lea edx, [ebp - 0x1c0]
push edx
xor ebx, ebx
push eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x1bc], ebx
call fcn.00468020
add esp, 8
mov dword [ebp - 0xd8], eax
cmp eax, ebx
jne 0x46e361
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0xf0]
mov eax, 4
mov dword [esi], ecx
mov dword [esi + 4], edx
mov word [esi + 8], ax
jmp case.0x46b16e.62
mov dword [ebp - 0xd8], 0
jmp 0x46ec44
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + edx*4]
mov ax, word [edi + 0x10]
mov edx, dword [ebx + 8]
mov word [ebp - 0x314], ax
mov eax, dword [edi + 0xc]
cmp cl, 0x74
mov dword [ebp - 0x318], edx
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
sbb cl, cl
mov byte [ebp - 0x312], cl
lea ecx, [eax + edx*8]
lea edx, [ebp - 0xe0]
push edx
lea eax, [ebp - 0x318]
mov dword [ebp - 0x310], ecx
mov ecx, dword [ebp - 0xdc]
push eax
push ecx
mov dword [ebp - 0xe0], 0
call fcn.00468160
add esp, 0xc
test byte [edi], 1
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
jne 0x46ed36
neg eax
jmp 0x46ed37
inc eax
mov ebx, dword [ebp - 0xf0]
test eax, eax
jg 0x46f628
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46ed68
call fcn.0046b020
jmp 0x46ed71
mov edx, 4
mov word [eax + 8], dx
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0xa4]
inc ecx
cmp dword [eax + 0x98], ecx
jle 0x46eda4
mov dword [ebp - 0xd8], 6
mov byte [ebx + 0x56], 2
jmp case.0x46b16e.62
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x10]
lea edx, [ebp - 0x108]
push edx
mov edx, ebx
add edx, edx
mov eax, dword [eax + edx*8 + 4]
push ecx
mov dword [ebp - 0x108], 0
call fcn.00460080
mov ecx, eax
mov eax, dword [ebp - 0x108]
mov edx, 4
mov word [esi + 8], dx
cdq
add esp, 8
mov dword [ebp - 0xd8], ecx
mov dword [esi], eax
mov dword [esi + 4], edx
test ecx, ecx
jne 0x46b725
mov esi, dword [ebp - 0x108]
test esi, esi
je 0x46b725
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
mov eax, ebx
call fcn.00483400
inc bl
mov byte [ebp - 0x131], bl
jmp 0x46f200
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 4]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x118]
and eax, ecx
mov ecx, dword [ebp - 0xdc]
push eax
mov eax, dword [edi + 8]
push edx
mov edx, dword [ecx + 0x10]
add eax, eax
mov dword [ebp - 0x118], 0
mov eax, dword [edx + eax*8 + 4]
call fcn.0045fda0
add esp, 8
cmp dword [edi + 0xc], 0
mov dword [ebp - 0xd8], eax
je 0x46b725
mov eax, dword [ebp - 0x118]
add dword [ebx + 0x5c], eax
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle 0x46b725
mov edx, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x46b16e.62
mov ecx, dword [ebx + 0x38]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x46eebe
mov edx, dword [ebp - 0xdc]
push edx
mov ebx, ecx
call fcn.00472490
mov ebx, dword [ebp - 0xf0]
add esp, 4
jmp case.0x46b16e.62
mov eax, dword [eax]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push ecx
call fcn.0045fda0
add esp, 8
mov dword [ebp - 0xd8], eax
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46eef9
call fcn.0046b020
jmp 0x46ef02
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebp - 0xdc]
mov esi, eax
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [edi], 0x7a
mov eax, dword [eax + 4]
setne cl
lea edx, [ebp - 0xfc]
mov dword [ebp - 0xfc], 0
inc ecx
push ecx
push edx
call fcn.0045fbb0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xfc]
cdq
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x46ef62
mov ecx, str.sqlite_master
mov esi, dword [ebp - 0xdc]
lea edx, [ebx + 0x2c]
mov dword [ebp - 0x214], edx
mov edx, dword [edi + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x210], eax
add eax, eax
mov dword [ebp - 0x218], esi
mov edx, dword [ecx + eax*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.00447570
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x46efab
mov dword [ebp - 0xd8], 7
jmp 0x46f003
push 0
lea eax, [ebp - 0x218]
push eax
push fcn.00495b20
push edi
push esi
mov byte [esi + 0x91], 1
mov dword [ebp - 0x20c], 0
call fcn.00491fc0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46efea
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0xd8], ecx
mov eax, edi
mov ecx, esi
call fcn.00445870
cmp dword [ebp - 0xd8], 0
mov byte [esi + 0x91], 0
je 0x46f00a
mov eax, esi
call fcn.00480ac0
cmp dword [ebp - 0xd8], 7
je 0x4706e1
jmp 0x46f206
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xdc]
call fcn.0047ed70
mov dword [ebp - 0xd8], eax
jmp 0x46f200
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xdc]
push edx
call fcn.00480ee0
add esp, 4
jmp 0x46f200
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
push eax
mov eax, dword [edi + 4]
push ecx
call fcn.00480850
add esp, 8
jmp case.0x46b16e.62
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0xdc]
push edx
push eax
mov eax, dword [edi + 4]
call fcn.004a1ad0
add esp, 8
jmp case.0x46b16e.62
mov edi, dword [edi + 8]
mov esi, dword [ebp - 0xdc]
lea ecx, [edi*4 + 4]
push 0
push ecx
mov dword [ebp - 0x108], edi
call fcn.00445af0
add esp, 8
mov dword [ebp - 0x110], eax
test eax, eax
je 0x4706e1
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
xor esi, esi
lea eax, [ecx + edx*8]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0x108], esi
jle 0x46f114
mov dword [ebp - 0xe0], eax
jmp 0x46f0f0
mov ecx, dword [ebp - 0xe0]
call fcn.00462d00
mov ecx, dword [ebp - 0x110]
add dword [ebp - 0xe0], 0x28
mov dword [ecx + esi*4], eax
inc esi
cmp esi, dword [ebp - 0x108]
jl 0x46f0f0
mov eax, dword [ebp - 0x110]
mov dword [eax + esi*4], 0
mov ecx, dword [edi]
mov esi, dword [ebp - 0xdc]
lea edx, [ebp - 0x1cc]
push edx
mov edx, dword [ebp - 0x108]
push ecx
push edx
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [ebp - 0xec]
movzx ecx, byte [eax + 3]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
call fcn.00460c90
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x110]
add esp, 0x10
mov ecx, esi
call fcn.00445870
mov esi, dword [ebp - 0x1cc]
mov eax, esi
cdq
sub dword [edi], eax
mov eax, dword [ebp - 0xe4]
sbb dword [edi + 4], edx
call fcn.00462fd0
test esi, esi
je 0x46f1ab
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x4706e1
mov ecx, dword [ebp - 0xe4]
push fcn.004457c0
push 1
push eax
or eax, 0xffffffff
call fcn.004632b0
add esp, 0xc
movzx ecx, byte [ebp - 0x11d]
mov eax, dword [ebp - 0xe4]
call fcn.00462750
jmp 0x46f206
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
test byte [eax + ecx*8 + 8], 0x20
lea esi, [eax + ecx*8]
lea edx, [edi + edi*4]
lea ebx, [eax + edx*8]
jne 0x46f1ef
mov edi, esi
call fcn.00463070
test byte [esi + 8], 0x20
je 0x4706db
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push eax
push ecx
mov edi, dword [esi]
call fcn.0044f170
add esp, 8
mov ebx, dword [ebp - 0xf0]
mov edi, dword [ebp - 0xec]
add edi, 0x14
cmp dword [ebp - 0xd8], 0
mov dword [ebp - 0xec], edi
jne 0x470127
mov esi, dword [ebp - 0xdc]
jmp 0x46b144
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
test byte [eax + edx*8 + 8], 0x20
lea eax, [eax + edx*8]
mov dword [ebp - 0xe4], eax
je 0x46f28c
mov ecx, eax
mov eax, dword [ecx]
lea esi, [ebp - 0x208]
call fcn.0044f510
test eax, eax
je 0x46f286
mov edx, dword [ebp - 0x204]
mov edi, dword [edi + 0xc]
mov eax, dword [ebp - 0x208]
push edx
mov edx, dword [ebp - 0xe8]
lea ecx, [edi + edi*4]
push eax
lea eax, [edx + ecx*8]
call fcn.00463030
add esp, 8
jmp 0x4700bd
mov eax, dword [ebp - 0xe4]
call fcn.00462fd0
jmp case.0x46b16e.14
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x10]
lea ebx, [ecx + edx*8]
mov dword [ebp - 0xe0], eax
jne 0x46f2d5
mov edi, esi
call fcn.00463070
test byte [esi + 8], 0x20
je 0x4706db
mov edi, dword [ebp - 0xec]
cmp dword [ebp - 0xe0], 0
je 0x46f30a
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
mov eax, dword [ebp - 0xe0]
push ecx
push edx
push eax
mov eax, dword [esi]
call fcn.0044f560
add esp, 0xc
test eax, eax
jne 0x46f622
cmp dword [ebp - 0xe0], eax
jl 0x46b725
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push ecx
push edx
jmp 0x46f1f6
cmp byte [edi + 3], 0
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
mov ecx, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0xe0], edx
je 0x46f357
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ecx + 0x14]
test eax, eax
je 0x46f357
cmp dword [eax + 0x1c], ecx
je 0x46b725
mov eax, dword [eax + 4]
test eax, eax
jne 0x46f347
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebp - 0xdc]
cmp eax, dword [ecx + 0x80]
jl 0x46f388
push str.too_many_levels_of_trigger_recursion
push ebx
mov dword [ebp - 0xd8], 1
call fcn.00463c70
add esp, 8
jmp case.0x46b16e.62
test byte [edx + 8], 0x40
jne 0x46f485
mov ecx, dword [ebp - 0x108]
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
add edi, eax
lea edx, [edi + edi*4 + 0xa]
lea eax, [eax + edx*2]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0xdc]
cdq
push edx
push eax
call fcn.00445ac0
mov esi, eax
add esp, 8
test esi, esi
je 0x4706e1
mov eax, dword [ebp - 0xe0]
call fcn.00462c80
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x108]
mov dword [eax], esi
mov edx, 0x40
mov word [eax + 8], dx
mov edx, dword [ebp - 0xec]
sub edx, dword [ebp - 0x114]
mov dword [esi], ebx
mov dword [esi + 0x3c], edi
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x2c], eax
mov edx, dword [ebx + 8]
mov dword [esi + 0x10], edx
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x34], eax
mov edx, dword [ebx + 0x38]
mov dword [esi + 0x18], edx
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x28], eax
mov edx, dword [ebx + 4]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x30], eax
mov ecx, dword [ecx + 0x14]
mov dword [esi + 0x1c], ecx
mov edx, dword [ebx + 0xc8]
mov dword [esi + 0x14], edx
mov eax, dword [ebx + 0xc4]
lea ecx, [edi + edi*4 + 0xa]
mov dword [esi + 0x38], eax
lea ecx, [esi + ecx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x46f48d
mov edx, dword [ebp - 0xdc]
jmp 0x46f470
mov edi, 0x80
mov word [eax + 8], di
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x46f470
jmp 0x46f48d
mov edx, dword [ebp - 0xe0]
mov esi, dword [edx]
inc dword [ebx + 0xb8]
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x154]
mov dword [esi + 4], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], ecx
mov eax, dword [ebx + 0x5c]
mov dword [esi + 0x44], eax
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x50]
mov dword [esi + 0x48], edx
lea ecx, [esi + 0x28]
mov dword [ebx + 0xb0], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0x5c], 0
mov eax, dword [esi + 0x3c]
mov dword [ebx + 0x1c], eax
movzx edx, word [esi + 0x40]
mov dword [ebx + 0x24], edx
lea eax, [eax + eax*4 + 5]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x108]
mov dword [ebx + 0x38], edx
mov dword [ebp - 0xe8], ecx
mov ecx, dword [eax]
mov dword [ebx + 4], ecx
mov esi, dword [eax + 4]
mov dword [ebx + 0x20], esi
mov esi, dword [ebx + 0x24]
lea edx, [edx + esi*4]
mov dword [ebx + 0xc8], edx
mov eax, dword [eax + 0x10]
push eax
mov dword [ebp - 0x114], ecx
add ecx, 0xffffffec
push 0
push edx
mov dword [ebx + 0xc4], eax
mov dword [ebp - 0xec], ecx
call fcn.005de050
add esp, 0xc
jmp 0x46f206
mov eax, dword [edi + 8]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46f550
call fcn.0046b020
jmp 0x46f559
mov edx, 4
mov word [eax + 8], dx
mov edx, dword [ebx + 0xb0]
mov ecx, dword [edx + 0x2c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [edi + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.00463180
add esp, 0xc
jmp case.0x46b16e.62
mov ecx, dword [ebp - 0xdc]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [edi + 8]
cdq
je 0x46f5b0
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.0x46b16e.62
cmp dword [edi + 4], 0
je 0x46f5c7
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.0x46b16e.62
add dword [ebx + 0x90], eax
adc dword [ebx + 0x94], edx
jmp case.0x46b16e.62
cmp dword [edi + 4], 0
je 0x46f5f8
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x1f8]
or edx, dword [eax + 0x1fc]
jne 0x46b725
jmp 0x46f610
mov edx, dword [ebx + 0x90]
or edx, dword [ebx + 0x94]
jne 0x46b725
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x200]
or ecx, dword [eax + 0x204]
jne case.0x46b16e.62
mov ebx, dword [ebp - 0xf0]
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x114]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [ebp - 0xec], edx
jmp 0x46f206
mov ecx, dword [ebx + 0xb0]
test ecx, ecx
je 0x46f668
mov eax, dword [ecx + 4]
test eax, eax
je 0x46f65d
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x46f654
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
jmp 0x46f674
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + edx*8]
mov esi, ecx
mov dword [ebp - 0xe4], ecx
call fcn.00462e30
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea esi, [eax + edx*8]
call fcn.00462e30
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [ebp - 0xe4]
cmp dword [edx + 4], esi
jg case.0x46b16e.62
jl 0x46f6b6
cmp dword [edx], ecx
jae 0x46b725
mov eax, dword [ebp - 0xe4]
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 4], 0
jg 0x46f628
jl case.0x46b16e.62
cmp dword [ecx + eax*8], 0
ja 0x46f622
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [ecx + 4], 0
jl 0x46f628
jg case.0x46b16e.62
cmp dword [ecx], 0
jb 0x46f622
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
mov edx, esi
or edx, dword [ecx + 4]
je 0x46b725
mov eax, dword [edi + 0xc]
cdq
add eax, esi
adc edx, dword [ecx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46f628
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
add dword [ecx + eax*8], 0xffffffff
mov edx, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
adc dword [eax + 4], 0xffffffff
or edx, dword [eax + 4]
je 0x46f622
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x2ec], edx
adc edx, 0
mov dword [eax], esi
mov dword [eax + 4], edx
mov eax, ecx
mov ecx, dword [ebp - 0x2ec]
or eax, ecx
je 0x46f622
jmp case.0x46b16e.62
movzx eax, byte [edi + 3]
mov esi, dword [ebp - 0xdc]
lea edx, [eax*4 + 0x1c]
push 0
push edx
mov dword [ebp - 0xfc], eax
call fcn.00445af0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4706e1
mov esi, dword [ebp - 0xec]
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edx, esi
sub edx, dword [ebp - 0x114]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [ebp - 0xfc]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x1a], dl
mov dword [esi + 0x10], ecx
mov word [esi], 0xec90
mov edi, esi
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x118], eax
cmp dword [esi + 8], eax
je 0x46f88a
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi + 8], eax
js 0x46f88a
lea edx, [esi + ecx*4 + 0x1c]
mov dword [ebp - 0xfc], edx
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xe8]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xfc]
mov dword [eax], edx
sub eax, 4
dec ecx
mov dword [ebp - 0xfc], eax
jns 0x46f85f
mov eax, dword [ebp - 0x118]
inc dword [eax + 0xc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x320], ecx
mov dword [ebp - 0x328], 0
mov eax, 1
mov word [ebp - 0x338], ax
mov eax, dword [esi + 4]
lea edx, [ebp - 0x340]
mov dword [esi], edx
movzx edx, byte [esi + 0x1a]
lea ecx, [esi + 0x1c]
push ecx
push edx
mov word [esi + 0x18], 0
mov eax, dword [eax + 0x10]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x46f910
cmp dword [esi + 0x14], 0
je 0x46f905
lea ecx, [ebp - 0x340]
push ecx
call fcn.00468830
add esp, 4
push eax
push 0x68f664
push ebx
call fcn.00463c70
mov edx, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xd8], edx
lea eax, [ebp - 0x340]
call fcn.00462c80
cmp byte [esi + 0x18], 0
je 0x46b725
mov eax, dword [edi - 0x10]
test eax, eax
je 0x46b725
push 0
push 1
jmp 0x46bdc8
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea esi, [eax + edx*8]
mov eax, esi
call fcn.00462ab0
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x46f969
push esi
call fcn.00468830
add esp, 4
push eax
push 0x68f664
push ebx
call fcn.00463c70
add esp, 0xc
movzx ecx, byte [ebp - 0x11d]
mov eax, esi
call fcn.00462750
mov ecx, esi
call fcn.00463120
test eax, eax
jne 0x47070e
jmp case.0x46b16e.62
or eax, 0xffffffff
lea ecx, [ebp - 0xcc]
push ecx
mov ecx, dword [edi + 4]
lea edx, [ebp - 0xd0]
push edx
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [edi + 8]
push eax
push ecx
xor esi, esi
push edx
mov dword [ebp - 0xd4], esi
call fcn.004b6a30
add esp, 0x14
mov dword [ebp - 0xd8], eax
cmp eax, 5
jne 0x46f9e2
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], 1
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp + esi*4 - 0xd4]
cdq
push edx
push eax
mov eax, dword [ebp - 0xe0]
call fcn.00463030
add dword [ebp - 0xe0], 0x28
inc esi
add esp, 8
cmp esi, 3
jl 0x46f9f7
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46fa3f
call fcn.0046b020
jmp 0x46fa48
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
mov edx, dword [eax + 4]
mov dword [ebp - 0xfc], eax
mov eax, dword [edx]
movzx ecx, byte [eax + 5]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xe0], ecx
cmp esi, 0xffffffff
jne 0x46fa85
mov esi, ecx
cmp byte [eax + 0x10], 3
jae 0x46faa1
mov edx, dword [eax + 0x40]
cmp dword [edx], 0
je 0x46faa3
cmp dword [eax + 0x4c], 0
jl 0x46faa3
jg 0x46faa1
cmp dword [eax + 0x48], 0
jbe 0x46faa3
mov esi, ecx
cmp byte [eax + 0xf], 0
je 0x46fab0
mov eax, 0x688621
jmp 0x46fab6
mov eax, dword [eax + 0xa8]
cmp esi, 5
jne 0x46fadb
call fcn.004482e0
test eax, eax
je 0x46fb69
mov eax, dword [ebp - 0xf8]
call fcn.00454860
test eax, eax
je 0x46fb69
mov eax, dword [ebp - 0xe0]
cmp esi, eax
je 0x46fb6f
cmp eax, 5
je 0x46faf7
cmp esi, 5
jne 0x46fb6f
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x3f], 0
je 0x46fb94
cmp dword [ecx + 0x98], 1
jg 0x46fb94
cmp eax, 5
jne 0x46fb32
mov eax, dword [ebp - 0xf8]
call fcn.00454a00
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x46fb69
mov eax, esi
jmp 0x46fb3c
cmp eax, 4
jne 0x46fb47
mov eax, 2
mov ecx, dword [ebp - 0xf8]
call fcn.004546b0
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
mov eax, dword [ebp - 0xfc]
call fcn.004612a0
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x46fb6f
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xf8]
mov eax, esi
call fcn.004546b0
mov edx, dword [ebp - 0xe4]
mov ecx, 0xa02
mov word [edx + 8], cx
cmp eax, 6
jne 0x46fbc1
xor eax, eax
jmp 0x46fbc8
mov dword [ebp - 0xd8], 1
mov eax, str.into
cmp esi, 5
je 0x46fbad
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebx
call fcn.00463c70
add esp, 0xc
jmp case.0x46b16e.62
mov eax, dword [eax*4 + 0x689904]
mov esi, dword [ebp - 0xe4]
mov dword [esi + 0x10], eax
call fcn.004482e0
movzx ecx, byte [ebp - 0x11d]
mov dword [esi + 0xc], eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.00462750
jmp case.0x46b16e.62
mov eax, dword [ebp - 0xdc]
lea ecx, [ebx + 0x2c]
call fcn.004a4d70
mov dword [ebp - 0xd8], eax
jmp case.0x46b16e.62
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.0045a8c0
add esp, 4
mov dword [ebp - 0xd8], eax
cmp eax, 0x65
jne case.0x46b16e.62
mov dword [ebp - 0xd8], 0
jmp 0x46f628
cmp dword [edi + 4], 0
jne 0x46fc58
mov eax, dword [ebp - 0xdc]
call fcn.00468250
jmp case.0x46b16e.62
or dword [ebx + 0x58], 8
jmp case.0x46b16e.62
mov cl, byte [edi + 0xc]
test cl, cl
jne 0x46fc7b
mov eax, dword [ebp - 0xdc]
test dword [eax + 0x18], 0x4000
jne case.0x46b16e.62
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
push edx
mov edx, dword [ebp - 0xdc]
mov edx, dword [edx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.004611c0
add esp, 4
mov dword [ebp - 0xd8], eax
cmp al, 6
jne case.0x46b16e.62
mov eax, dword [edi + 0x10]
push eax
push str.database_table_is_locked:__s
push ebx
call fcn.00463c70
add esp, 0xc
jmp case.0x46b16e.62
mov edi, dword [edi + 0x10]
mov eax, dword [ebp - 0xdc]
call fcn.004a6430
mov dword [ebp - 0xd8], eax
test edi, edi
je 0x46f200
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0xf0]
push ecx
push edx
call fcn.00468310
jmp 0x46f1fd
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0xe8]
xor eax, eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0xdc]
lea ecx, [edi + edi*4]
mov dword [ebp - 0x268], eax
lea edi, [edx + ecx*8]
lea eax, [ebp - 0x288]
call fcn.004631f0
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x288]
push eax
call fcn.00468830
add esp, 4
test eax, eax
je 0x46fd94
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
add ecx, 0x2c
push ecx
mov ecx, dword [ebp - 0xdc]
push eax
mov eax, dword [edx + 4]
call fcn.004a5f00
add esp, 8
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x288]
call fcn.00462c80
jmp 0x46f200
mov esi, dword [ebp - 0xdc]
inc dword [esi + 0xa4]
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
mov ecx, esi
call fcn.004a6200
add esp, 4
dec dword [esi + 0xa4]
mov dword [ebp - 0xd8], eax
jmp case.0x46b16e.62
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xf8], 0
mov esi, dword [ecx + 8]
test esi, esi
je 0x46fe59
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x46fe59
mov ecx, dword [eax + 0x18]
lea edx, [ebp - 0xf8]
push edx
push esi
call ecx
push esi
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00468310
add esp, 0x10
cmp dword [ebp - 0xd8], 0
jne case.0x46b16e.62
mov edx, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0xf0]
push 0
push 0xffffffffffffffff
mov dword [edx], esi
mov eax, dword [edi + 4]
push 0
push eax
call fcn.0046ad30
add esp, 0x10
test eax, eax
je 0x4706c4
mov ecx, dword [ebp - 0xf8]
mov dword [eax + 0x24], ecx
inc dword [esi + 4]
jmp case.0x46b16e.62
mov dword [ebp - 0xd8], 6
jmp case.0x46b16e.62
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea edx, [eax + edx*8]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x24]
mov dword [ebp - 0x124], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [ebp - 0x118], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x108], ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x110], eax
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xfc], ecx
xor ecx, ecx
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x104], 0
test eax, eax
jle 0x46fee1
mov esi, dword [ebp - 0xfc]
add edx, 0x50
lea esp, [esp]
mov dword [esi + ecx*4], edx
inc ecx
add edx, 0x28
cmp ecx, eax
jl 0x46fed0
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x108]
push edx
mov edx, dword [ebp - 0x118]
push eax
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edx + 0x20]
push ecx
push esi
call eax
mov ecx, dword [ebp - 0x110]
add esp, 0x14
push ecx
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00468310
add esp, 8
cmp dword [ebp - 0xd8], 0
jne 0x46ff37
mov edx, dword [ebp - 0x118]
mov eax, dword [edx + 0x28]
push esi
call eax
add esp, 4
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
mov ecx, dword [ebp - 0x124]
mov byte [ecx + 0x19], 0
jne 0x46f628
jmp case.0x46b16e.62
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x19], 0
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea esi, [eax + edx*8]
je 0x46ff7d
mov eax, esi
call fcn.00462fd0
jmp case.0x46b16e.62
mov edx, dword [ecx + 0x24]
mov eax, dword [edx]
mov dword [ebp - 0x118], eax
mov eax, dword [eax]
mov dword [ebp - 0xfc], eax
xor eax, eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x2a8], esi
mov dx, word [esi + 8]
mov eax, 0xbe01
and dx, ax
or dx, 1
mov word [esi + 8], dx
mov edx, dword [edi + 8]
mov ecx, dword [ecx + 0x24]
push edx
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0x2a8]
push eax
mov eax, dword [edx + 0x2c]
push ecx
call eax
mov ecx, dword [ebp - 0x118]
add esp, 0xc
push ecx
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00468310
mov eax, dword [ebp - 0x294]
add esp, 8
test eax, eax
je 0x47001f
mov dword [ebp - 0xd8], eax
movzx ecx, byte [ebp - 0x11d]
mov eax, esi
call fcn.00462750
mov ecx, esi
call fcn.00463120
test eax, eax
jne 0x47070e
jmp case.0x46b16e.62
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
cmp byte [eax + 0x19], 0
mov dword [ebp - 0xfc], eax
jne case.0x46b16e.62
mov ecx, eax
mov eax, dword [ecx + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x24]
push eax
mov dword [ebp - 0x118], ecx
call edx
add esp, 4
push esi
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00468310
add esp, 8
cmp dword [ebp - 0xd8], 0
jne case.0x46b16e.14
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp - 0x118]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x4700bd
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0x114]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xec], eax
mov esi, dword [ebp - 0xdc]
mov ecx, dword [esi + 0xf0]
test ecx, ecx
jne 0x47072b
mov edi, dword [esi + 0x124]
test edi, edi
je 0x46f206
mov eax, dword [ebp - 0x15c]
cmp eax, dword [ebp - 0x198]
jb 0x46f206
mov ecx, dword [esi + 0x12c]
xor edx, edx
div ecx
sub ecx, edx
add ecx, dword [ebp - 0x15c]
mov edx, dword [esi + 0x128]
push edx
mov dword [ebp - 0x198], ecx
call edi
add esp, 4
test eax, eax
je 0x46f206
mov dword [ebp - 0xd8], 9
mov esi, dword [ebp - 0xf0]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0xa8]
mov edi, dword [ebp - 0xd8]
push ecx
mov ecx, dword [ebp - 0xec]
sub ecx, dword [ebp - 0x114]
push edx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push edi
mov dword [esi + 0x50], edi
call fcn.00447800
add esp, 0x14
mov eax, esi
call fcn.00466370
cmp edi, 0xc0a
jne 0x470186
mov ecx, dword [ebp - 0xdc]
mov byte [ecx + 0x41], 1
mov al, byte [ebp - 0x131]
mov esi, 1
test al, al
je 0x4701cc
movzx edi, al
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x10]
dec edi
mov edx, edi
add edx, edx
mov edx, dword [ecx + edx*8 + 0xc]
push edx
call fcn.004870e0
add esp, 4
cmp edi, esi
je 0x4701cc
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.004870e0
add esp, 4
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x154]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x15c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0xf0]
add dword [eax + 0x7c], ecx
cmp dword [eax + 0x64], 0
je 0x470202
push eax
call fcn.00464b80
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.005dd8e2
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 1
mov dword [ebp - 0xfc], eax
call fcn.00462750
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x46b16e.62
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x10]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
push edx
push esi
call eax
push esi
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00468310
add esp, 0x10
and dword [ebx + 0x58], 0xfffffff7
jmp case.0x46b16e.62
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x46fe59
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
test eax, eax
je 0x46fe59
cmp dword [eax + 0x34], 0
mov ecx, dword [edi + 8]
je case.0x46b16e.62
mov edx, dword [ebp - 0xdc]
mov al, byte [edx + 0x45]
mov esi, dword [ebx + 0xc]
mov byte [ebp - 0x119], al
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe8]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x4702db
jmp 0x4702d0
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x4702d0
mov dl, byte [edi + 3]
mov eax, dword [ebp - 0xdc]
mov byte [eax + 0x45], dl
mov eax, dword [ebp - 0xfc]
lea edx, [ebp - 0x228]
push edx
push esi
push ecx
mov ecx, dword [ebp - 0x118]
mov edx, dword [ecx + 0x34]
push eax
call edx
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov al, byte [ebp - 0x119]
push edx
push ebx
mov byte [ecx + 0x45], al
call fcn.00468310
add esp, 0x18
cmp dword [ebp - 0xd8], 0
jne 0x47035a
cmp dword [edi + 4], 0
je 0x47035a
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x224]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], ecx
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
cmp byte [ebp - 0xd8], 0x13
jne 0x46e591
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x10], 0
je 0x46e591
mov al, byte [edi + 3]
cmp al, 4
jne 0x47038a
mov dword [ebp - 0xd8], 0
jmp case.0x46b16e.62
cmp al, 5
jne 0x47039b
mov eax, 2
mov byte [ebx + 0x56], al
jmp case.0x46b16e.62
movzx eax, al
mov byte [ebx + 0x56], al
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4703c4
call fcn.0046b020
jmp 0x4703cd
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp case.0x46b16e.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x470411
call fcn.0046b020
jmp 0x47041a
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edi + 0xc]
mov esi, eax
mov eax, dword [edi + 4]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
xor ebx, ebx
test ecx, ecx
je 0x470443
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x2c]
cmp ebx, ecx
jae 0x470443
mov ebx, ecx
call fcn.00459af0
mov ebx, dword [ebp - 0xf0]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46b16e.62
mov eax, dword [ebp - 0xdc]
cmp dword [eax + 0xb0], 0
je 0x4704b1
test dword [ebx + 0x58], 0x200
jne 0x4704b1
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x470482
mov edx, dword [ebx + 0xa8]
test edx, edx
je 0x4704b1
mov ecx, ebx
call fcn.0046a8b0
mov esi, eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0xb4]
mov edx, dword [eax + 0xb0]
push esi
push ecx
call edx
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov eax, esi
call fcn.00445870
cmp dword [edi + 8], 0
je case.0x46b16e.62
jmp 0x46f628
mov eax, dword [edi + 4]
mov dword [ebx + 0x50], eax
mov cl, byte [edi + 8]
mov byte [ebx + 0x56], cl
mov dword [ebx + 0x4c], esi
test eax, eax
je 0x47053e
mov al, byte [edi + 3]
test al, al
je 0x470501
movzx edx, al
mov ecx, dword [edx*4 + 0x689114]
test ecx, ecx
je 0x470503
mov eax, dword [edi + 0x10]
test eax, eax
je 0x470503
push eax
push ecx
push str._s_constraint_failed:__s
push ebx
call fcn.00463c70
add esp, 0x10
jmp 0x470521
xor ecx, ecx
mov eax, dword [edi + 0x10]
test eax, eax
je 0x470512
push eax
push 0x68f664
jmp 0x470518
push ecx
push str._s_constraint_failed
push ebx
call fcn.00463c70
add esp, 0xc
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [edi + 4]
push eax
push ecx
push esi
push str.abort_at__d_in___s_:__s
push edx
call fcn.00447800
add esp, 0x14
mov eax, ebx
call fcn.00466370
mov esi, 5
cmp eax, esi
jne 0x470556
mov dword [ebx + 0x50], esi
jmp 0x4701cc
mov esi, dword [ebx + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x4701cc
sub edi, dword [ebp - 0x114]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x4c], eax
mov byte [esi + 0x3f], 0
mov esi, 5
mov dword [ebx + 0x50], esi
jmp 0x4701cc
test ecx, ecx
je 0x4705c9
push 0x204
mov eax, esi
call fcn.004b5ea0
add esp, 4
mov byte [esi + 0x3f], 1
mov edi, esi
call fcn.004b54f0
mov edx, dword [ebp - 0xf0]
mov esi, dword [edx + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x4701cc
push 1
mov esi, ebx
call fcn.00466300
mov esi, eax
add esp, 4
test esi, esi
jne 0x4701cc
mov cl, byte [ebp - 0xfc]
mov esi, dword [ebp - 0xdc]
mov eax, ebx
mov byte [esi + 0x3f], cl
call fcn.00466370
cmp eax, 5
jne 0x4705aa
sub edi, dword [ebp - 0x114]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, 1
sub cl, byte [ebp - 0xfc]
mov dword [ebx + 0x4c], eax
mov byte [esi + 0x3f], cl
mov esi, 5
mov dword [ebx + 0x50], esi
jmp 0x4701cc
mov dword [ebp - 0xd8], 8
jmp 0x46e361
sub edi, dword [ebp - 0x114]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, 5
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x50], esi
jmp 0x4701cc
mov eax, 0x126b5
call fcn.004b7f40
mov dword [ebp - 0xd8], eax
jmp 0x46e361
cmp dword [ebp - 0xd8], 0xc0a
je 0x470127
cmp dword [ebp - 0xd8], 0x204
je 0x4706a5
mov ecx, dword [ebp - 0xd8]
mov eax, str.unknown_error
call fcn.004b6000
jmp 0x4706aa
mov eax, str.abort_due_to_ROLLBACK
mov edx, dword [ebp - 0xf0]
push eax
push 0x68f664
push edx
call fcn.00463c70
add esp, 0xc
jmp 0x470127
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp 0x4706e1
mov ebx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xdc]
push str.out_of_memory
push ebx
mov byte [eax + 0x41], 1
call fcn.00463c70
add esp, 8
mov dword [ebp - 0xd8], 7
jmp 0x470127
mov ebx, dword [ebp - 0xf0]
push str.string_or_blob_too_big
push ebx
call fcn.00463c70
add esp, 8
mov dword [ebp - 0xd8], 0x12
jmp 0x470127
mov eax, 9
mov dword [ebx + 0x50], eax
mov ecx, dword [str.interrupted]
mov dword [ebp - 0xd8], eax
mov eax, str.unknown_error
test ecx, ecx
je 0x47074a
mov eax, ecx
push eax
push 0x68f664
push ebx
call fcn.00463c70
add esp, 0xc
jmp 0x470127