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

Disassembly:
sub esp, 0x120
push ebx
push ebp
mov ebp, dword [esp + 0x12c]
push esi
push edi
xor ebx, ebx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 8]
mov dword [esp + 0x110], eax
mov ecx, dword [esi + 0x10]
push ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
mov edx, dword [ecx + 0xc]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x20], esi
mov byte [esp + 0x110], bl
mov al, byte [edx + 0x4d]
mov edx, dword [esi + 0x24]
mov byte [esp + 0xec], al
mov dword [esp + 0x118], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0xf4], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], edx
call fcn.00468ca0
mov eax, dword [ebp + 0x5c]
add esp, 4
cmp eax, 7
je 0x471f60
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x14], ebx
mov dword [esi + 0x1c4], ebx
mov eax, dword [esi + 0xf0]
cmp eax, ebx
jne 0x4720d9
cmp dword [esi + 0x124], ebx
je 0x46cfb9
mov eax, dword [ebp + 0x88]
cmp eax, ebx
jne 0x46cfaa
mov eax, dword [esi + 0x12c]
mov ecx, dword [ebp + 0x58]
mov dword [esp + 0x108], eax
mov dword [esp + 0x18], ecx
mov ebx, esi
jmp 0x46cfd8
xor edx, edx
div dword [esi + 0x12c]
mov dword [esp + 0x108], edx
mov ecx, dword [ebp + 0x58]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x46cfd8
mov edi, dword [esp + 0xf0]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x134]
mov al, byte [ebx + 0x40]
test al, al
jne 0x471f60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x100]
inc ecx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x100], ecx
lea esi, [eax + edx*4]
mov al, byte [eax + edx*4 + 2]
test al, 2
je 0x46d036
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
test word [edi + ecx*8 + 0x1c], 0x2460
lea eax, [edi + ecx*8]
mov dword [esp + 0x14], eax
je 0x46d030
mov edx, eax
push edx
call fcn.00468370
mov eax, dword [esp + 0x18]
add esp, 4
mov word [eax + 0x1c], 4
xor eax, eax
mov al, byte [esi]
dec eax
cmp eax, 0x93
ja case.default.0x46d046
jmp dword [eax*4 + 0x4721bc]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 0x18]
cdq
mov dword [ecx + 0x10], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 0x14], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 0x18], ecx
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [esp + 0x18], eax
jmp case.default.0x46d046
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x18]
lea ecx, [esi + esi*4]
mov edx, dword [edi + ecx*8 + 0x10]
lea ecx, [edi + ecx*8]
mov word [ecx + 0x1c], 4
mov dword [esp + 0x20], edx
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
jmp case.default.0x46d046
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
je case.default.0x46d046
mov eax, dword [esi + 4]
test eax, eax
jne 0x471e1e
mov edi, dword [ebp + 0xb8]
test edi, edi
je 0x471e1e
mov edx, dword [edi + 4]
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0xb8], edx
mov edx, dword [ebp + 0xc0]
dec edx
push eax
push ebx
mov dword [ebp + 0xc0], edx
call fcn.0046a780
push edi
call fcn.00469d80
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x100], ecx
mov ecx, dword [esi + 8]
add esp, 0xc
cmp ecx, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0xf8], edx
jne 0x46d138
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 + 8]
dec edx
mov dword [esp + 0x18], edx
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x110], eax
mov dword [esp + 0xf0], ecx
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x46d046
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx]
mov dword [eax + 0x10], ecx
mov edx, dword [edx + 4]
mov dword [eax + 0x14], edx
jmp case.default.0x46d046
mov eax, dword [esp + 0x14]
mov word [eax + 0x1c], 8
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0xc], ecx
jmp case.default.0x46d046
mov edx, dword [esi + 0x10]
mov byte [esi], 0x17
push edx
call fcn.0045a8d0
mov dword [esi + 4], eax
mov al, byte [esp + 0xec]
add esp, 4
cmp al, 1
je 0x46d23f
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
push 0
push 1
push 0xffffffffffffffff
push eax
push ecx
call fcn.00467f20
add esp, 0x14
cmp eax, 0x12
mov dword [esp + 0x10], eax
je 0x4720b2
mov edx, dword [esp + 0xe8]
mov edi, dword [esp + 0x14]
and edx, 0xff
push edx
push edi
call fcn.0046aa10
add esp, 8
test eax, eax
jne 0x471f60
mov dword [edi + 0x24], eax
mov ax, word [edi + 0x1c]
and eax, 0xfbff
or ah, 8
mov word [edi + 0x1c], ax
mov al, byte [esi + 1]
cmp al, 0xff
jne 0x46d22b
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.004591b0
add esp, 8
mov ebx, dword [esp + 0x1c]
mov byte [esi + 1], 0xff
mov eax, dword [edi + 4]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x18]
mov dword [esi + 4], ecx
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x58]
cmp edx, eax
jg 0x4720b2
mov eax, dword [esp + 0x14]
mov word [eax + 0x1c], 0xa02
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov edx, dword [esi + 4]
mov cl, byte [esp + 0xe8]
mov dword [eax + 0x18], edx
mov byte [eax + 0x1f], cl
jmp case.default.0x46d046
mov edx, dword [esi + 0xc]
mov ebp, dword [esi + 8]
sub edx, ebp
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov esi, dword [esi + 4]
neg esi
sbb esi, esi
and esi, 0x100
inc esi
mov word [esp + 0x24], si
mov word [eax + 0x1c], si
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle case.default.0x46d046
add eax, 0x28
mov dword [esp + 0x14], eax
test word [eax + 0x1c], 0x2460
je 0x46d2c1
push eax
call fcn.00468370
mov eax, dword [esp + 0x18]
add esp, 4
mov cx, word [esp + 0x24]
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x20]
dec ecx
test ecx, ecx
mov dword [esp + 0x20], ecx
jg 0x46d2a5
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x14]
push 0
push 0
push edx
push eax
push esi
call fcn.00467f20
mov cl, byte [esp + 0xfc]
add esp, 0x14
mov byte [esi + 0x1f], cl
jmp case.default.0x46d046
mov esi, dword [esi + 4]
mov eax, dword [ebp + 0x48]
lea edx, [esi + esi*4]
lea eax, [eax + edx*8 - 0x28]
push eax
mov dword [esp + 0x24], eax
call fcn.00478a60
add esp, 4
test eax, eax
jne 0x4720b2
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
push 0x800
push ecx
push edx
call fcn.00478a90
add esp, 0xc
jmp case.default.0x46d046
mov eax, dword [esi + 0xc]
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], ecx
mov esi, dword [esi + 8]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x2c], esi
lea edx, [esi + esi*4]
lea ebx, [edi + ecx*8]
mov ecx, eax
lea edi, [edi + edx*8]
dec eax
test ecx, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], eax
je case.default.0x46d046
xor esi, esi
mov edx, dword [edi + 0x24]
push ebx
mov dword [esp + 0x24], edx
push edi
mov dword [edi + 0x24], esi
call fcn.0046ccd0
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x24]
add ebx, 0x28
add edi, 0x28
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x46d379
mov dword [esp + 0x14], edi
jmp case.default.0x46d046
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], edx
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
lea ebx, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x14], esi
push 0x1000
push ebx
push esi
call fcn.00478a90
add esp, 0xc
test byte [esi + 0x1d], 0x10
je 0x46d3f5
push esi
call fcn.00468260
add esp, 4
test eax, eax
jne 0x471f60
mov eax, dword [esp + 0x20]
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x20], eax
je case.default.0x46d046
add esi, 0x28
add ebx, 0x28
mov dword [esp + 0x14], esi
jmp 0x46d3cf
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea ecx, [esi + esi*4]
lea eax, [eax + eax*4]
lea edx, [edi + ecx*8]
lea eax, [edi + eax*8]
push edx
push eax
mov dword [esp + 0x20], eax
call fcn.00478a90
add esp, 0xc
jmp case.default.0x46d046
push 0
push ebp
call fcn.0046a5a0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x46d046
push 1
push ebp
call fcn.0046a400
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x471ead
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
lea ecx, [eax + eax*4]
mov ax, word [ebx + 0x1c]
lea edx, [esi + esi*4]
lea ebp, [edi + ecx*8]
mov cl, al
lea esi, [edi + edx*8]
mov dl, byte [ebp + 0x1c]
mov dword [esp + 0x14], esi
or cl, dl
test cl, 1
je 0x46d4ae
push esi
call fcn.00468490
add esp, 4
jmp case.default.0x46d046
test ah, 0x40
je 0x46d4c4
push ebx
call fcn.004682c0
add esp, 4
test eax, eax
jne 0x471f60
test byte [ebp + 0x1d], 0x40
je 0x46d4db
push ebp
call fcn.004682c0
add esp, 4
test eax, eax
jne 0x471f60
test byte [ebx + 0x1c], 0x12
jne 0x46d500
mov edx, dword [esp + 0xe8]
and edx, 0xff
push edx
push ebx
call fcn.0046aee0
add esp, 8
test eax, eax
jne 0x471f60
test byte [ebp + 0x1c], 0x12
jne 0x46d524
mov eax, dword [esp + 0xe8]
and eax, 0xff
push eax
push ebp
call fcn.0046aee0
add esp, 8
test eax, eax
jne 0x471f60
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x18]
add eax, ecx
cdq
mov ecx, edx
mov edx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x4720b2
jl 0x46d553
cmp esi, eax
ja 0x4720b2
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov ax, word [esi + 0x1c]
and eax, 0xbe02
or al, 2
cmp esi, ebp
mov word [esi + 0x1c], ax
mov edx, dword [esp + 0x20]
sete cl
add edx, 2
push ecx
push edx
push esi
call fcn.00468140
add esp, 0xc
test eax, eax
jne 0x471f60
cmp esi, ebp
je 0x46d5a8
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 4]
mov edx, ecx
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x46d5ac
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 4]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebx + 4]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx], 0
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx + 1], 0
or byte [eax + 0x1d], 2
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0xe8]
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1f], dl
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0xf0]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.0046ce40
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
lea ebp, [ebx + ecx*8]
push ebp
call fcn.0046ce40
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov cx, word [ebp + 0x1c]
add esp, 8
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
xor edx, edx
mov dx, word [edi + 0x1c]
mov dword [esp + 0x14], eax
or ecx, edx
mov al, cl
mov dword [esp + 0x24], ecx
test al, 1
jne 0x46d865
mov al, byte [edi + 0x1c]
mov bl, byte [ebp + 0x1c]
and al, bl
and al, 4
cmp al, 4
jne 0x46d774
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x2c], ecx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x30], ebx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x34], edx
xor edx, edx
mov byte [esp + 0x20], 1
mov dl, byte [esi]
add edx, 0xffffffaa
cmp edx, 3
ja case.default.0x46d68d
jmp dword [edx*4 + 0x47240c]
push ecx
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00472550
add esp, 0xc
test eax, eax
jne 0x46d779
jmp 0x46d74c
push ecx
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.004725f0
add esp, 0xc
test eax, eax
jne 0x46d779
jmp 0x46d74c
push ecx
lea edx, [esp + 0x34]
push eax
push edx
call fcn.00472650
add esp, 0xc
test eax, eax
jne 0x46d779
jmp 0x46d74c
mov edx, eax
or edx, ecx
je 0x46d865
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x46d706
test ebx, ebx
jne 0x46d706
cmp dword [esp + 0x34], 0x80000000
je 0x46d779
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.004b0ca0
jmp 0x46d744
mov edx, eax
or edx, ecx
je 0x46d865
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x46d737
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.004b0d50
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x34]
and ecx, 0xbe04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.default.0x46d046
mov byte [esp + 0x20], 0
push edi
call fcn.0046af80
fstp qword [esp + 0x3c]
push ebp
call fcn.0046af80
fstp qword [esp + 0x48]
xor eax, eax
add esp, 8
mov al, byte [esi]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x46d79c
jmp dword [eax*4 + 0x47241c]
fld qword [esp + 0x40]
fadd qword [esp + 0x38]
jmp 0x46d84b
fld qword [esp + 0x40]
fsub qword [esp + 0x38]
jmp 0x46d84b
fld qword [esp + 0x40]
fmul qword [esp + 0x38]
jmp 0x46d84b
fld qword [esp + 0x38]
fcomp qword [0x4bc458]
fnstsw ax
test ah, 0x40
jne 0x46d865
fld qword [esp + 0x40]
fdiv qword [esp + 0x38]
jmp 0x46d84b
fld qword [esp + 0x38]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x40]
mov esi, eax
mov edi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
call sub.MSVCRT.dll__ftol
mov ecx, esi
mov dword [esp + 0x30], eax
or ecx, edi
mov dword [esp + 0x34], edx
je 0x46d865
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x46d82d
mov esi, 1
xor edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
push edi
push esi
push edx
push eax
call fcn.004b0d50
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], edx
fild qword [esp + 0x128]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.0045a880
add esp, 8
test eax, eax
je 0x46d877
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00468490
add esp, 4
jmp case.default.0x46d046
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov dx, word [eax + 0x1c]
and edx, 0xbe08
mov dword [eax + 0xc], ecx
or edx, 8
mov word [eax + 0x1c], dx
mov al, byte [esp + 0x24]
test al, 8
jne case.default.0x46d046
mov al, byte [esp + 0x20]
test al, al
jne case.default.0x46d046
mov eax, dword [esp + 0x14]
push eax
call fcn.004788a0
add esp, 4
jmp case.default.0x46d046
mov esi, dword [esi + 4]
test esi, esi
je case.default.0x46d046
lea ecx, [esi + esi*4]
push 0
push 0
lea edx, [edi + ecx*8]
push edx
call fcn.0046b490
add esp, 0xc
jmp case.default.0x46d046
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
xor eax, eax
test ecx, ecx
lea edi, [edi + edx*8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
jle 0x46d966
mov ecx, dword [esp + 0x70]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x24]
test byte [eax + 0x1d], 0x10
je 0x46d941
push eax
call fcn.00468260
add esp, 4
test eax, eax
jne 0x471f60
mov eax, dword [esp + 0x24]
push eax
call fcn.0046ce00
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x78]
add esp, 4
inc eax
add edi, 0x28
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
jl 0x46d91b
mov edx, dword [esi + 0x10]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x134]
xor eax, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], edx
push eax
push ecx
mov word [esp + 0x54], 1
mov dword [esp + 0x38], edi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebx
call fcn.0046ccd0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
and edx, 0xbe01
mov byte [esp + 0x75], 0
or edx, 1
add esp, 8
mov word [esp + 0x4c], dx
mov cl, byte [eax + 3]
test cl, 8
je 0x46d9d5
mov ecx, dword [esi - 4]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x2c]
push edx
push eax
call dword [ecx + 0xc]
mov eax, dword [edi + 0x24]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x104], eax
mov al, byte [edi + 0x40]
add esp, 0xc
mov dword [esp + 0xf4], edx
test al, al
jne 0x471f53
mov al, byte [esp + 0x6d]
test al, al
je 0x46da64
mov eax, dword [esp + 0x68]
test eax, eax
je 0x46da56
lea ecx, [esp + 0x30]
push ecx
call fcn.0046b2f0
push eax
push 0x4dad94
lea edx, [ebx + 0x38]
push edi
push edx
call fcn.0046a620
mov eax, dword [esp + 0x7c]
add esp, 0x14
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
push ecx
push ebp
push ebx
call fcn.0046a6b0
add esp, 0xc
mov edx, dword [esp + 0xe8]
lea eax, [esp + 0x30]
and edx, 0xff
push edx
push eax
call fcn.0046aa10
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push ecx
push esi
call fcn.0046ccd0
push esi
jmp 0x471a9d
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ebx, [edi + edx*8]
lea ecx, [edi + eax*8]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov al, byte [ecx + 0x1c]
lea edi, [edi + edx*8]
mov dl, byte [ebx + 0x1c]
or al, dl
mov dword [esp + 0x14], edi
test al, 1
je 0x46daca
push edi
call fcn.00468490
add esp, 4
jmp case.default.0x46d046
push ecx
call fcn.0046b000
push ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
call fcn.0046b000
mov ebx, eax
mov ebp, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
mov al, byte [esi]
add esp, 8
cmp al, 0x52
mov byte [esp + 0x38], al
jne 0x46db10
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
and ecx, ebx
and eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x46dc1f
cmp al, 0x53
jne 0x46db2d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
or ecx, ebx
or eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x46dc1f
mov ecx, ebx
or ecx, ebp
je 0x46dc1f
test ebp, ebp
jg 0x46db71
jl 0x46db41
test ebx, ebx
jae 0x46db66
mov dl, 0xa9
sub dl, al
cmp ebp, 0xffffffff
mov al, dl
mov byte [esp + 0x38], al
jl 0x46db98
jg 0x46db57
cmp ebx, 0xffffffc0
jbe 0x46db98
neg ebx
adc ebp, 0
mov dword [esp + 0x30], ebx
neg ebp
mov dword [esp + 0x34], ebp
test ebp, ebp
jl 0x46dbb7
jg 0x46db71
cmp ebx, 0x40
jb 0x46dbb7
mov ecx, dword [esp + 0x24]
test ecx, ecx
jg 0x46dbaa
jl 0x46db83
mov ecx, dword [esp + 0x20]
test ecx, ecx
jae 0x46dbaa
cmp al, 0x54
je 0x46dbaa
or eax, 0xffffffff
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x46dc1f
mov dword [esp + 0x30], 0x40
mov dword [esp + 0x34], 0
jmp 0x46db71
xor eax, eax
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x46dc1f
cmp al, 0x54
mov eax, dword [esp + 0x20]
mov ecx, ebx
jne 0x46dbd4
mov edx, dword [esp + 0x24]
call fcn.004b0f00
mov esi, eax
mov ebp, edx
mov dword [esp + 0x28], esi
jmp 0x46dc13
mov edi, dword [esp + 0x24]
mov edx, edi
call fcn.004b0c40
mov esi, eax
mov ebp, edx
test edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
jg 0x46dc17
jl 0x46dbf9
mov eax, dword [esp + 0x20]
test eax, eax
jae 0x46dc17
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.004b0f00
or esi, eax
or ebp, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x24]
and ecx, 0xbe04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.00478900
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x10]
cdq
add esp, 4
add ecx, eax
mov dword [edi + 0x10], ecx
mov eax, dword [edi + 0x14]
adc eax, edx
mov dword [edi + 0x14], eax
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xe8]
push ecx
push 0x63
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push edi
call fcn.00479dd0
mov ax, word [edi + 0x1c]
add esp, 0xc
test al, 4
jne 0x46e1cc
mov esi, dword [esi + 8]
test esi, esi
je 0x471f8e
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 4
je case.default.0x46d046
push eax
call fcn.00478930
add esp, 4
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea edi, [edi + eax*8]
mov ax, word [edi + 0x1c]
test al, 1
jne case.default.0x46d046
mov edx, dword [esp + 0xe8]
mov cl, al
shr cl, 3
and ecx, 2
push edx
or ecx, eax
push 0x61
push edi
mov word [edi + 0x1c], cx
call fcn.00479dd0
add esp, 0xc
test byte [edi + 0x1d], 0x40
je 0x46dd27
push edi
call fcn.004682c0
add esp, 4
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea edi, [edi + eax*8]
mov ax, word [edi + 0x1c]
test al, 1
jne case.default.0x46d046
test al, 0x10
jne 0x46dd7c
mov ecx, dword [esp + 0xe8]
push ecx
push 0x61
push edi
call fcn.00479dd0
mov dx, word [edi + 0x1c]
add esp, 0xc
and edx, 0xbe10
or edx, 0x10
mov word [edi + 0x1c], dx
jmp case.default.0x46d046
and eax, 0xfe10
mov word [edi + 0x1c], ax
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.00478960
add esp, 4
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
jne case.default.0x46d046
push eax
call fcn.00478900
add esp, 4
jmp case.default.0x46d046
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 1
jne case.default.0x46d046
push eax
call fcn.00478930
add esp, 4
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea ebp, [edi + ecx*8]
lea edx, [eax + eax*4]
mov ax, word [ebp + 0x1c]
lea ecx, [edi + edx*8]
mov word [esp + 0x26], ax
mov dword [esp + 0xec], ecx
mov dx, word [ecx + 0x1c]
mov word [esp + 0x28], dx
mov al, dl
mov dl, byte [esp + 0x26]
or al, dl
test al, 1
mov al, byte [esi + 3]
je 0x46de92
test al, 0x80
je 0x46de55
test dl, 1
je 0x46de47
test byte [esp + 0x28], 1
je 0x46de47
mov eax, dword [esp + 0x28]
test ah, 1
jne 0x46de47
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x46df21
mov eax, 1
mov dword [esp + 0x20], eax
jmp 0x46df21
test al, 8
je 0x46de66
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
test al, 0x10
je case.default.0x46d046
mov esi, dword [esi + 8]
lea ecx, [esi + esi*4]
mov dx, word [edi + ecx*8 + 0x1c]
lea eax, [edi + ecx*8]
and edx, 0xbe01
mov dword [esp + 0x14], eax
or edx, 1
mov word [eax + 0x1c], dx
jmp case.default.0x46d046
and al, 0x67
mov byte [esp + 0x24], al
je 0x46dedc
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
push ecx
push edx
push ebp
call fcn.00479dd0
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xf8]
push eax
push ecx
push edx
call fcn.00479dd0
mov al, byte [ebx + 0x40]
add esp, 0x18
test al, al
jne 0x471f60
mov ecx, dword [esp + 0xec]
test byte [ebp + 0x1d], 0x40
je 0x46def2
push ebp
call fcn.004682c0
mov ecx, dword [esp + 0xf0]
add esp, 4
test byte [ecx + 0x1d], 0x40
je 0x46df08
push ecx
call fcn.004682c0
mov ecx, dword [esp + 0xf0]
add esp, 4
mov eax, dword [esi + 0x10]
push eax
push ebp
push ecx
call fcn.00478ae0
mov ecx, dword [esp + 0xf8]
add esp, 0xc
mov dword [esp + 0x20], eax
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffb5
cmp edx, 4
ja case.default.0x46df2d
jmp dword [edx*4 + 0x47242c]
xor edx, edx
test eax, eax
sete dl
jmp 0x46df68
xor edx, edx
test eax, eax
setne dl
jmp 0x46df68
xor edx, edx
test eax, eax
setl dl
jmp 0x46df68
xor edx, edx
test eax, eax
setle dl
jmp 0x46df68
xor edx, edx
test eax, eax
setg dl
jmp 0x46df68
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x20], eax
mov dl, byte [esi + 3]
test dl, 0x10
je 0x46dfa2
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
mov dx, word [edi + eax*8 + 0x1c]
lea edi, [edi + eax*8]
and edx, 0xbe04
mov dword [esp + 0x14], edi
or edx, 4
mov word [edi + 0x1c], dx
mov eax, dword [esp + 0x20]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp 0x46dfae
test eax, eax
je 0x46dfae
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov ax, word [ebp + 0x1c]
mov edx, dword [esp + 0x26]
xor edx, eax
and edx, 0x1ff
xor edx, eax
mov word [ebp + 0x1c], dx
mov ax, word [ecx + 0x1c]
mov edx, dword [esp + 0x28]
xor edx, eax
and edx, 0x1ff
xor edx, eax
mov word [ecx + 0x1c], dx
jmp case.default.0x46d046
mov eax, dword [esi + 0x10]
mov dword [esp + 0x104], eax
jmp case.default.0x46d046
test byte [esi + 3], 1
jne 0x46dfff
mov dword [esp + 0x104], 0
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x30], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x2c], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x46e0c2
mov ebp, dword [esp + 0x104]
mov edi, dword [esp + 0xf0]
jmp 0x46e03d
mov edx, dword [esp + 0x30]
test ebp, ebp
je 0x46e047
mov ecx, dword [ebp + eax*4]
jmp 0x46e049
mov ecx, eax
mov dword [esp + 0x34], ecx
mov esi, dword [edx + eax*4 + 0xc]
mov dword [esp + 0x38], esi
mov edx, dword [edx + 8]
xor ebx, ebx
push esi
mov bl, byte [edx + eax]
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x40], ebx
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0x2c]
push eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.00478ae0
add esp, 0xc
mov dword [esp + 0x114], eax
test eax, eax
jne 0x46e0b1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x46e039
mov dword [esp + 0x104], 0
jmp case.default.0x46d046
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x46e0c2
neg eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x104], 0
jmp case.default.0x46d046
mov eax, dword [esp + 0x114]
test eax, eax
jge 0x46e0ea
mov esi, dword [esi + 4]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
jne 0x46e0f9
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov esi, dword [esi + 0xc]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
je 0x46e11f
mov ecx, 2
jmp 0x46e135
push eax
call fcn.0046b000
add esp, 4
or eax, edx
je 0x46e133
mov ecx, 1
jmp 0x46e135
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov dl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test dl, 1
je 0x46e156
mov eax, 2
mov dword [esp + 0x24], eax
jmp 0x46e174
push eax
call fcn.0046b000
add esp, 4
or eax, edx
je 0x46e16a
mov eax, 1
jmp 0x46e16c
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp byte [esi], 0x45
jne 0x46e187
lea edx, [eax + ecx*2]
xor eax, eax
mov al, byte [ecx + edx + 0x4bdc20]
jmp 0x46e195
lea eax, [eax + ecx*2]
xor edx, edx
mov dl, byte [ecx + eax + 0x4bdc2c]
mov eax, edx
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0xc]
cmp eax, 2
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x14], edi
jne 0x46e1c1
mov dx, word [edi + 0x1c]
and edx, 0xbe01
or edx, 1
mov word [edi + 0x1c], dx
jmp case.default.0x46d046
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
mov dword [edi + 0x14], edx
and eax, 0xbe04
or al, 4
mov word [edi + 0x1c], ax
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea ecx, [eax + eax*4]
lea edx, [esi + esi*4]
lea eax, [edi + ecx*8]
lea edi, [edi + edx*8]
mov dword [esp + 0x14], edi
test byte [eax + 0x1c], 1
je 0x46e206
push edi
call fcn.00468490
add esp, 4
jmp case.default.0x46d046
push eax
call fcn.0046b000
add esp, 4
or eax, edx
jne 0x46e229
mov eax, 1
cdq
push edx
push eax
push edi
call fcn.0046b490
add esp, 0xc
jmp case.default.0x46d046
xor eax, eax
cdq
push edx
push eax
push edi
call fcn.0046b490
add esp, 0xc
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
lea eax, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x14], esi
test byte [eax + 0x1c], 1
je 0x46e266
push esi
call fcn.00468490
add esp, 4
jmp case.default.0x46d046
push eax
call fcn.0046b000
not edx
not eax
push edx
push eax
push esi
call fcn.0046b490
add esp, 0x10
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0xd0]
add eax, edx
cmp byte [eax], 0
je 0x46e29d
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov byte [eax], 1
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
test al, 1
lea edi, [edi + ecx*8]
je 0x46e2bb
mov eax, dword [esi + 0xc]
jmp 0x46e2ee
push edi
call fcn.0046af80
fcomp qword [0x4bc458]
add esp, 4
fnstsw ax
test ah, 0x40
jne 0x46e2d8
mov eax, 1
jmp 0x46e2da
xor eax, eax
mov dword [esp + 0x20], eax
mov cl, byte [esi]
cmp cl, 0x28
jne 0x46e2f2
xor edx, edx
test eax, eax
sete dl
mov eax, edx
mov dword [esp + 0x20], eax
test eax, eax
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
jmp 0x471194
mov edx, dword [esi + 4]
xor ebp, ebp
mov dword [esp + 0x30], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x134]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x60]
mov dword [esp + 0x38], ebp
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0xf0]
mov dword [esp + 0x3c], ebp
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x44]
lea edx, [edi + ecx*8]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
cmp ecx, ebp
mov dword [esp + 0x40], ecx
je 0x46e433
push eax
call fcn.00478df0
add esp, 4
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x472065
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x46e3b7
mov dword [esp + 0x20], ebp
jmp 0x46e407
mov ecx, dword [esp + 0x134]
mov edx, dword [eax + 0x50]
cmp edx, dword [ecx + 0x54]
jne 0x46e3d6
mov edx, dword [eax + 0x54]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x3c], ecx
jmp 0x46e3fb
mov cl, byte [eax + 0x1f]
test cl, cl
je 0x46e41f
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.00466b40
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x46e4cd
mov edx, dword [esp + 0x5c]
mov ax, word [edx + 0x1c]
and eax, 0xbe01
or al, 1
mov word [edx + 0x1c], ax
jmp case.default.0x46d046
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.00473d60
add esp, 8
jmp 0x46e3f7
mov ecx, dword [eax + 0x10]
cmp ecx, ebp
jle 0x46e4b5
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0xa4], ecx
cmp byte [eax + 0x22], 0
je 0x46e48a
mov eax, dword [esp + 0x34]
push 0x1000
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
push ecx
push edx
call fcn.00478a90
mov eax, dword [esp + 0x68]
add esp, 0xc
test byte [eax + 0x1d], 0x10
je case.default.0x46d046
push eax
call fcn.00468260
add esp, 4
test eax, eax
jne 0x471f60
jmp case.default.0x46d046
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x20], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov cl, byte [esi + 3]
test cl, 0x20
je 0x46e4aa
xor ecx, ecx
mov dword [eax + 0x50], ecx
jmp 0x46e3f7
mov ecx, dword [ebx + 0x54]
mov dword [eax + 0x50], ecx
jmp 0x46e3f7
mov dword [esp + 0x20], ebp
mov ax, word [edx + 0x1c]
and eax, 0xbe01
or al, 1
mov word [edx + 0x1c], ax
jmp case.default.0x46d046
mov edx, dword [esp + 0x1c]
cmp ecx, dword [edx + 0x58]
ja 0x4720b2
mov edx, dword [eax + 0x14]
mov edi, dword [esp + 0x134]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 0x58]
mov ebp, dword [edi + 0x54]
mov dword [esp + 0x44], ecx
mov ebx, dword [eax + 0x50]
cmp ebx, ebp
jne 0x46e505
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x48], eax
jmp 0x46e7b8
xor ebx, ebx
lea ecx, [ecx + edx*4]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x48], ecx
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x54], edx
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x54]
mov dword [ecx + 0x50], eax
mov edx, dword [esp + 0x3c]
cmp edx, ebx
je 0x46e53b
mov dword [esp + 0x58], edx
jmp 0x46e59a
mov edx, dword [esp + 0x38]
mov al, byte [edx + 0x1f]
test al, al
je 0x46e55a
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.00473ee0
jmp 0x46e56c
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.00473f70
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa4]
add esp, 8
cmp ecx, edx
mov dword [esp + 0x58], eax
ja 0x46e58f
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov dword [edx + 0x60], eax
jmp 0x46e596
mov eax, dword [esp + 0x38]
mov dword [eax + 0x60], ebx
mov edx, dword [esp + 0x58]
mov cl, byte [edx]
cmp cl, 0x80
jae 0x46e5b5
and ecx, 0xff
mov eax, 1
mov dword [esp + 0x90], ecx
jmp 0x46e5d6
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.00466500
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x60]
add esp, 8
and eax, 0xff
and eax, 0xff
cmp ecx, 0x18003
mov dword [esp + 0x98], eax
jbe 0x46e600
push 0x108d0
call fcn.004a9a80
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov edi, dword [esp + 0x4c]
lea eax, [edi + edi*4 + 3]
cmp eax, ecx
mov dword [esp + 0x50], eax
jle 0x46e616
mov eax, ecx
mov dword [esp + 0x50], eax
cmp dword [esp + 0x3c], ebx
jne 0x46e672
cmp dword [esp + 0x9c], eax
jge 0x46e672
lea edx, [esp + 0x60]
xor ecx, ecx
push edx
mov edx, dword [esp + 0x3c]
mov word [esp + 0x80], bx
mov dword [esp + 0x64], ebx
mov cl, byte [edx + 0x1f]
push ecx
push eax
mov eax, dword [esp + 0x4c]
push ebx
push eax
call fcn.00478cf0
add esp, 0x14
cmp eax, ebx
mov dword [esp + 0x10], eax
jne case.default.0x46d046
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x58], edx
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x98]
add eax, edx
mov dword [esp + 0x88], eax
xor eax, eax
test edi, edi
mov dword [esp + 0x54], eax
jle 0x46e76b
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
cmp edi, edx
mov edx, dword [esp + 0x48]
jae 0x46e737
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x88]
mov al, byte [ecx]
cmp al, 0x80
jae 0x46e6d2
and eax, 0xff
inc ecx
mov dword [esp + 0xa0], eax
jmp 0x46e6f1
lea eax, [esp + 0xa0]
push eax
push ecx
call fcn.00466500
mov ecx, dword [esp + 0x90]
and eax, 0xff
add esp, 8
add ecx, eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.00478fe0
mov ecx, dword [esp + 0x94]
add esp, 4
add ecx, eax
mov dword [esp + 0x94], eax
cmp ecx, eax
mov dword [esp + 0x90], ecx
jb 0x46e75c
jmp 0x46e745
mov dword [edx + eax*4], 0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
inc eax
cmp eax, edx
mov dword [esp + 0x54], eax
jl 0x46e699
jmp 0x46e76b
mov eax, dword [esp + 0x8c]
inc eax
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x60]
push ecx
call fcn.00468330
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
add esp, 4
cmp eax, ecx
mov word [esp + 0x7c], 1
ja 0x46e93e
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x20]
cmp edx, edi
ja 0x46e93e
cmp eax, ecx
jne 0x46e7b4
cmp edx, edi
jne 0x46e93e
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
cmp dword [edx + eax*4], 0
je 0x46e8bf
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x46e80b
mov edx, dword [esp + 0x5c]
test word [edx + 0x1c], 0x2460
je 0x46e7f3
push edx
call fcn.00468370
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
add esp, 4
mov ecx, dword [ecx + eax*4]
push edx
mov edx, dword [esp + 0x4c]
push ecx
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x44]
add eax, edx
push eax
jmp 0x46e8a7
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xa0], eax
mov cl, byte [esi + 3]
test cl, 0xc0
je 0x46e83f
cmp eax, 0xc
jb 0x46e829
mov dl, al
test dl, 1
je 0x46e82e
test cl, 0x80
je 0x46e83f
cmp eax, 0xc
lea edx, [esp + 0x28]
sbb ecx, ecx
and ecx, edx
mov dword [esp + 0x58], ecx
jmp 0x46e8a0
push eax
call fcn.00478fe0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.0046ccd0
mov ecx, dword [esp + 0x44]
xor eax, eax
lea edx, [esp + 0x6c]
mov al, byte [ecx + 0x1f]
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x5c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00478cf0
add esp, 0x20
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x46d046
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x5c]
push edx
push eax
push ecx
call fcn.004790d0
mov eax, dword [esp + 0x68]
mov cl, byte [esp + 0xf4]
add esp, 0xc
mov byte [eax + 0x1f], cl
jmp 0x46e8f2
cmp byte [esi + 1], 0xf8
jne 0x46e8dd
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x5c]
push 0x800
push edx
push eax
call fcn.00478a90
add esp, 0xc
jmp 0x46e8f2
mov eax, dword [esp + 0x5c]
mov cx, word [eax + 0x1c]
and ecx, 0xbe01
or ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x84]
test eax, eax
je 0x46e928
mov eax, dword [esp + 0x5c]
and word [eax + 0x1c], 0xe7ff
mov eax, dword [esp + 0x5c]
or byte [eax + 0x1d], 2
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov dword [edx + 0x24], ecx
mov eax, dword [esp + 0x5c]
push eax
call fcn.00468260
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
push 0x10920
call fcn.004a9a80
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 4]
inc eax
lea ecx, [esi + esi*4]
lea esi, [edi + ecx*8]
mov cl, byte [eax - 1]
test cl, cl
mov byte [esp + 0x24], cl
mov dword [esp + 0x20], eax
je case.default.0x46d046
test byte [esi + 0x1d], 0x40
je 0x46e987
push esi
call fcn.004682c0
add esp, 4
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x24]
push edx
push eax
push esi
call fcn.00479dd0
mov eax, dword [esp + 0x2c]
add esp, 0xc
add esi, 0x28
mov cl, byte [eax]
inc eax
test cl, cl
mov byte [esp + 0x24], cl
mov dword [esp + 0x20], eax
jne 0x46e978
jmp case.default.0x46d046
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
mov ebx, dword [esi + 0x10]
lea ecx, [eax + eax*4]
mov dword [esp + 0x58], ebx
lea eax, [edi + ecx*8]
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x54], ecx
lea edx, [ecx + ecx*4]
xor ecx, ecx
mov cl, byte [ebp + 0x61]
lea edx, [eax + edx*8 - 0x28]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], edx
mov esi, dword [esi + 0xc]
cmp eax, edx
lea ecx, [esi + esi*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x14], ecx
mov ecx, eax
mov dword [esp + 0x24], ecx
ja 0x46eaf6
jmp 0x46ea22
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
test ebx, ebx
je 0x46ea54
mov edx, dword [esp + 0xe8]
push edx
mov edx, ecx
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dl, byte [edx + ebx]
push edx
push ecx
call fcn.00479dd0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, 0x4000
test word [ecx + 0x1c], si
je 0x46ea73
mov eax, dword [ecx + 0x18]
test eax, eax
jle 0x46ea73
push ecx
call fcn.004682c0
mov ecx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x5c]
push eax
push ecx
call fcn.00478ee0
push eax
mov dword [esp + 0x54], eax
call fcn.00478fe0
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x70], eax
push 0
cdq
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x58]
adc ebp, edx
push ecx
mov dword [esp + 0x40], ebp
call fcn.00472520
mov ecx, dword [esp + 0x44]
add esp, 0x14
add ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
test word [ecx + 0x1c], si
je 0x46ead3
mov edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x40]
add eax, edx
mov dword [esp + 0x40], eax
jmp 0x46eae3
mov eax, dword [esp + 0x64]
test eax, eax
je 0x46eae3
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x50]
add ecx, 0x28
cmp ecx, eax
mov dword [esp + 0x24], ecx
jbe 0x46ea1a
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.00472520
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
add ecx, eax
mov eax, ecx
mov dword [esp + 0x38], ecx
cdq
push edx
push eax
call fcn.00472520
mov ecx, dword [esp + 0x54]
add esp, 0x10
cmp ecx, eax
jge 0x46eb29
inc dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x28]
cdq
mov edi, eax
mov eax, dword [esp + 0x30]
mov ebx, edx
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
sub esi, edi
sbb ecx, ebx
mov ebx, dword [esp + 0x2c]
add esi, ebp
adc ecx, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4720b2
jl 0x46eb6d
cmp esi, eax
ja 0x4720b2
push 0
push esi
mov esi, dword [esp + 0x1c]
push esi
call fcn.00468140
add esp, 0xc
test eax, eax
jne 0x471f60
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 4]
cmp ecx, 0x80
mov dword [esp + 0x20], eax
jae 0x46eba1
mov byte [eax], cl
mov eax, 1
jmp 0x46ebab
push ecx
push eax
call fcn.00472440
add esp, 8
mov ecx, dword [esp + 0x50]
and eax, 0xff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x24], eax
ja 0x46ec29
mov edx, dword [esp + 0x5c]
push edx
push eax
call fcn.00478ee0
add esp, 8
cmp eax, 0x80
mov dword [esp + 0x48], eax
jae 0x46ebef
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx], al
mov eax, 1
jmp 0x46ec03
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x24]
add ecx, eax
push ecx
call fcn.00472440
add esp, 8
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
and eax, 0xff
add ebx, eax
mov eax, dword [esp + 0x24]
add eax, 0x28
mov dword [esp + 0x60], ebx
cmp eax, ecx
mov dword [esp + 0x24], eax
jbe 0x46ebc4
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x24], eax
ja 0x46ec6e
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x68]
sub ecx, eax
add eax, edx
push ecx
push eax
call fcn.00479000
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
add edi, eax
mov eax, dword [esp + 0x34]
add eax, 0x28
add esp, 0x10
cmp eax, ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x24], eax
jbe 0x46ec31
mov eax, dword [esp + 0x38]
mov word [esi + 0x1c], 0x410
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46ec93
mov dword [esi + 0x10], eax
mov word [esi + 0x1c], 0x4410
mov byte [esi + 0x1f], 1
jmp case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ecx
mov dword [esp + 0x28], eax
je 0x46ecc5
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.004778f0
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x46eccd
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x14], ecx
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0x10]
test eax, eax
mov dword [esp + 0x24], esi
jne 0x46ede8
mov eax, dword [ebx + 0x94]
test eax, eax
jle 0x46ed0e
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x46f0ca
push esi
call fcn.0045a8d0
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0x1f4]
add edx, dword [ebx + 0x1f0]
push edx
push 0
push ebx
call fcn.00482c20
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov eax, dword [esp + 0x28]
add eax, 0x21
push eax
push ebx
call fcn.00459430
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je case.default.0x46d046
lea ecx, [eax + 0x20]
mov dword [eax], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
lea ecx, [edx + 1]
mov edi, dword [eax]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [eax + 0x3e]
test cl, cl
je 0x46ed92
mov byte [eax + 0x3e], 0
mov byte [eax + 0x45], 1
jmp 0x46ed98
inc dword [eax + 0x1f0]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + 0x1e8]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0x1f8]
mov dword [eax + 0x1e8], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0x1fc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0x200]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 0x204]
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], edx
jmp case.default.0x46d046
mov dword [esp + 0x38], 0
mov ebx, dword [ebx + 0x1e8]
test ebx, ebx
mov dword [esp + 0x30], ebx
je 0x46ee34
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
push ecx
push edx
call fcn.0045a8f0
add esp, 8
test eax, eax
je 0x46ee2c
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x38], ecx
mov ebx, dword [eax + 0x18]
test ebx, ebx
mov dword [esp + 0x30], ebx
jne 0x46edfe
jmp 0x46ee34
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x46ee63
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x1c]
push ecx
push str.no_such_savepoint:__s
add eax, 0x38
push edx
push eax
call fcn.0046a620
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.default.0x46d046
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x94]
test eax, eax
mov eax, dword [esp + 0x20]
jle 0x46ee90
cmp eax, 1
jne 0x46ee90
mov ecx, dword [esp + 0x134]
push str.cannot_release_savepoint___SQL_statements_in_progress
add ecx, 0x38
push esi
push ecx
jmp 0x46f0cf
mov edx, dword [ecx + 0x18]
test edx, edx
jne 0x46eef2
mov cl, byte [esi + 0x45]
test cl, cl
je 0x46eef2
mov ebx, 1
cmp eax, ebx
jne 0x46eef4
mov edx, dword [esp + 0x134]
push ebx
push edx
call fcn.0046a5a0
mov esi, eax
add esp, 8
test esi, esi
jne 0x472179
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x134]
push edi
mov byte [esi + 0x3e], bl
call fcn.004689b0
add esp, 4
cmp eax, 5
je 0x471f9b
mov byte [esi + 0x45], 0
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x10], eax
jmp 0x46efc0
xor ebx, ebx
mov ecx, dword [esi + 0x1f0]
mov ebp, dword [esp + 0x38]
sub ecx, ebp
dec ecx
cmp eax, 2
mov dword [esp + 0x38], ecx
jne 0x46ef40
xor eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [esi + 0x14]
test edx, edx
jle 0x46ef40
mov ecx, dword [esi + 0x10]
push 4
shl eax, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.00467d70
mov eax, dword [esp + 0x44]
add esp, 8
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esi + 0x14]
cmp eax, ecx
jl 0x46ef17
mov ecx, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [esi + 0x14]
test edx, edx
jle 0x46ef90
mov edx, dword [esp + 0x1c]
jmp 0x46ef57
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + 0x10]
push ecx
mov ecx, dword [esp + 0x24]
shl eax, 4
push ecx
mov eax, dword [eax + edx + 4]
push eax
call fcn.0046a520
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [edx + 0x14]
cmp eax, ecx
jl 0x46ef53
mov eax, dword [esp + 0x20]
mov edi, 2
cmp eax, edi
jne 0x46efc0
mov esi, dword [esp + 0x1c]
test byte [esi + 0x18], 2
je 0x46efc4
push esi
call fcn.00479880
push esi
call fcn.0047d6a0
mov eax, dword [esi + 0x18]
add esp, 8
or eax, edi
mov dword [esi + 0x18], eax
jmp 0x46efc4
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x1e8]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
je 0x46f008
mov dword [esp + 0x34], eax
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1e8], ecx
mov edx, dword [esp + 0x34]
push edx
push esi
call fcn.004591b0
mov edi, dword [esi + 0x1f0]
mov eax, dword [esi + 0x1e8]
add esp, 8
dec edi
mov dword [esi + 0x1f0], edi
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jne 0x46efd2
cmp dword [esp + 0x20], 1
jne 0x46f03a
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x1e8], eax
mov ecx, dword [esp + 0x30]
push ecx
push esi
call fcn.004591b0
add esp, 8
test ebx, ebx
jne case.default.0x46d046
mov eax, dword [esp + 0x1c]
dec dword [eax + 0x1f0]
jmp 0x46f072
add ecx, 8
mov edx, dword [ecx]
mov dword [esi + 0x1f8], edx
mov eax, dword [ecx + 4]
mov dword [esi + 0x1fc], eax
mov ecx, dword [esp + 0x30]
add ecx, 0x10
test ebx, ebx
mov edx, dword [ecx]
mov dword [esi + 0x200], edx
mov eax, dword [ecx + 4]
mov dword [esi + 0x204], eax
jne case.default.0x46d046
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
push ecx
push edx
push eax
call fcn.00482c20
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 8]
test eax, eax
mov dword [esp + 0x24], esi
je 0x46f0e4
mov cl, byte [ebx + 0x3e]
test cl, cl
jne 0x46f0e4
test esi, esi
mov dword [esp + 0x28], 1
jne 0x46f0ec
mov ecx, dword [ebx + 0x94]
test ecx, ecx
jle 0x46f0ec
push str.cannot_commit_transaction___SQL_statements_in_progress
add ebp, 0x38
push ebx
push ebp
call fcn.0046a620
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.default.0x46d046
mov dword [esp + 0x28], 0
xor ecx, ecx
mov cl, byte [ebx + 0x3e]
cmp eax, ecx
jne 0x471fb3
test eax, eax
jne 0x46f104
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x46f112
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x46f112
mov eax, str.cannot_commit___no_transaction_is_active
push eax
add ebp, 0x38
push ebx
push ebp
call fcn.0046a620
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.default.0x46d046
mov eax, dword [esi + 8]
test eax, eax
je 0x46f141
test dword [ebx + 0x18], 0x2000000
jne 0x47202c
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
test eax, eax
mov dword [esp + 0x20], eax
je case.default.0x46d046
mov ecx, dword [esi + 8]
push ecx
push eax
call fcn.00464460
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x472036
test eax, eax
jne 0x472065
mov eax, dword [esi + 8]
test eax, eax
je case.default.0x46d046
test byte [ebp + 0x64], 0x80
je case.default.0x46d046
mov al, byte [ebx + 0x3e]
test al, al
je 0x46f1a5
cmp dword [ebx + 0x90], 1
jle case.default.0x46d046
mov eax, dword [ebp + 0x74]
test eax, eax
jne 0x46f1c6
mov edx, dword [ebx + 0x1f4]
inc edx
mov dword [ebx + 0x1f4], edx
mov eax, edx
mov edx, dword [ebx + 0x1f0]
add edx, eax
mov dword [ebp + 0x74], edx
mov eax, dword [ebp + 0x74]
dec eax
push eax
push 0
push ebx
call fcn.00482c20
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f1f3
mov ecx, dword [ebp + 0x74]
mov edx, dword [esp + 0x20]
push ecx
push edx
call fcn.00473c20
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1f8]
mov dword [ebp + 0xa0], eax
mov ecx, dword [ebx + 0x1fc]
mov dword [ebp + 0xa4], ecx
mov edx, dword [ebx + 0x200]
mov dword [ebp + 0xa8], edx
mov eax, dword [ebx + 0x204]
mov dword [ebp + 0xac], eax
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], eax
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], esi
mov edx, dword [ebx + 0x10]
shl eax, 4
push ecx
push esi
mov eax, dword [eax + edx + 4]
push eax
call fcn.004677e0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
cdq
mov dword [ecx + 0x10], eax
add esp, 0xc
mov dword [ecx + 0x14], edx
jmp case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 0x10]
shl ecx, 4
add ecx, edx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.00478900
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 8]
push eax
mov eax, dword [edx + 4]
push ecx
push eax
call fcn.00467820
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
add esp, 0x10
cmp eax, 1
jne 0x46f2bb
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ebx + 0x18]
or al, 2
mov dword [ebx + 0x18], eax
jmp 0x46f2cd
cmp eax, 2
jne 0x46f2cd
mov ecx, dword [esp + 0x20]
mov al, byte [edi + 0x10]
mov edx, dword [ecx + 0xc]
mov byte [edx + 0x4c], al
cmp dword [esi + 4], 1
jne case.default.0x46d046
push ebx
call fcn.00479880
mov eax, dword [ebp + 0x64]
add esp, 4
and al, 0xdf
mov dword [ebp + 0x64], eax
jmp case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 0x10]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x46f324
lea ecx, [esp + 0x20]
push ecx
push 1
push eax
call fcn.004677e0
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
add esp, 0xc
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov eax, dword [ecx + 4]
jmp 0x46f32e
mov dword [esp + 0x20], 0
xor eax, eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp edx, dword [esi + 8]
jne 0x46f344
cmp eax, dword [esi + 0xc]
je case.default.0x46d046
mov eax, dword [ebp + 0x38]
push eax
push ebx
call fcn.004591b0
push str.database_schema_has_changed
push ebx
call fcn.0046b810
mov dword [ebp + 0x38], eax
mov esi, dword [esi + 4]
mov edx, dword [ebx + 0x10]
mov ecx, esi
shl ecx, 4
add esp, 0x10
mov eax, dword [ecx + edx + 0xc]
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
cmp ecx, eax
je 0x46f382
push esi
push ebx
call fcn.0047d660
add esp, 8
mov eax, dword [ebp + 0x64]
mov dword [esp + 0x10], 0x11
or al, 0x20
mov dword [ebp + 0x64], eax
jmp case.default.0x46d046
test byte [ebp + 0x64], 0x20
je 0x46f3aa
mov dword [esp + 0x10], 4
jmp case.default.0x46d046
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
shl eax, 4
add eax, dword [ebx + 0x10]
mov dword [esp + 0x3c], eax
mov ebx, dword [eax + 4]
mov dword [esp + 0x34], ebx
mov bl, byte [esi]
cmp bl, 0x31
jne 0x46f3f4
mov bl, byte [ebp + 0x61]
mov dword [esp + 0x30], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
cmp al, bl
jae 0x46f3fc
mov byte [ebp + 0x61], al
jmp 0x46f3fc
mov dword [esp + 0x30], 0
test byte [esi + 3], 2
je 0x46f425
lea ecx, [edx + edx*4]
lea edi, [edi + ecx*8]
push edi
call fcn.00478900
mov edi, dword [edi + 0x10]
add esp, 4
cmp edi, 2
mov dword [esp + 0x28], edi
jl 0x47204a
mov ecx, dword [esp + 0x20]
mov al, byte [esi + 1]
cmp al, 0xfa
jne 0x46f44f
mov eax, dword [esi + 0x10]
mov edx, dword [ebp]
mov dword [esp + 0x24], eax
mov ecx, dword [edx + 0x10]
mov edx, dword [ecx + 0xc]
mov cl, byte [edx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov cx, word [edx + 6]
inc ecx
jmp 0x46f456
cmp al, 0xf2
jne 0x46f45a
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x2c]
push 1
push eax
push ecx
mov ecx, dword [esi + 4]
push ecx
push ebp
call fcn.00479cd0
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x471f60
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x38]
mov byte [edx + 0x20], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
call fcn.00473c50
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov dl, byte [esi + 3]
mov eax, dword [esp + 0x4c]
and edx, 1
push edx
mov ecx, dword [eax]
push ecx
call fcn.00478890
mov dl, byte [esi + 1]
mov eax, dword [esp + 0x54]
add esp, 0x1c
cmp dl, 0xfa
setne dl
mov byte [eax + 0x1e], dl
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x1e]
test cl, cl
sete cl
mov byte [eax + 0x1f], cl
jmp case.default.0x46d046
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.00479cd0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x471f60
xor edx, edx
mov byte [eax + 0x1c], 1
mov dl, byte [esi + 3]
mov ecx, dword [0x4bdc38]
mov eax, dword [esp + 0x20]
or edx, 5
push ecx
mov ecx, dword [ebx]
add eax, 4
push edx
push eax
push ebx
push 0
push ecx
call fcn.00472db0
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f609
mov edx, dword [esp + 0x20]
push 1
mov eax, dword [edx + 4]
push eax
call fcn.00464460
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f609
mov eax, dword [esi + 0x10]
test eax, eax
je 0x46f5e4
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov cl, byte [esi + 3]
lea edx, [esp + 0x11c]
or ecx, 2
push ecx
mov ecx, dword [eax + 4]
push edx
push ecx
call fcn.00477250
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f5da
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
mov edx, dword [eax]
mov eax, dword [eax + 4]
push edx
mov edx, dword [esp + 0x120]
push ecx
push 1
push edx
push eax
call fcn.00473c50
mov edx, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x24], eax
add esp, 0x14
mov dword [edx + 8], ecx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
mov ecx, dword [eax + 8]
mov dl, byte [edx + 0x4d]
mov byte [ecx + 4], dl
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1e], 0
jmp 0x46f609
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push ecx
push 0
push 1
push 1
push edx
call fcn.00473c50
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add esp, 0x14
mov byte [eax + 0x1e], 1
mov dl, byte [esi + 3]
cmp dl, 8
mov edx, dword [esp + 0x20]
setne cl
mov byte [edx + 0x20], cl
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x1e]
test cl, cl
sete cl
mov byte [eax + 0x1f], cl
jmp case.default.0x46d046
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.00479cd0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x471f60
mov ecx, dword [esi + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov eax, dword [edx + 8]
mov cl, byte [ecx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x20]
mov byte [edx + 0x21], 1
mov eax, dword [esp + 0x20]
push eax
push ebx
call fcn.0047af80
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
push 0
push 0xffffffffffffffff
push ecx
push edx
push ebp
call fcn.00479cd0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x471f60
mov byte [eax + 0x1c], 1
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1e], 1
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1f], 0
mov edx, dword [esp + 0x20]
mov cl, byte [esi + 3]
mov byte [edx + 0x22], cl
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov edx, dword [ecx + eax*4]
push edx
push ebp
call fcn.00468e80
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
add esp, 8
mov dword [ecx + eax*4], 0
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], eax
cmp dword [eax], 0
je 0x47119a
xor ecx, ecx
mov cl, byte [esi]
mov dword [esp + 0x24], ecx
mov byte [eax + 0x1c], 0
mov ecx, dword [esp + 0x28]
mov al, byte [ecx + 0x1e]
test al, al
je 0x46f8f4
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.0046ce40
push edi
call fcn.0046b000
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x5c], edx
add esp, 8
mov byte [eax + 0x19], 0
mov ax, word [edi + 0x1c]
test al, 4
jne 0x46f89c
test al, 8
je 0x47119a
mov eax, dword [esp + 0x50]
xor ebx, ebx
cmp eax, ebx
jne 0x46f842
mov ecx, dword [esp + 0x54]
mov eax, closesocket
cmp ecx, eax
jne 0x46f842
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], eax
fild qword [esp + 0x120]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
je 0x46f7bb
fld qword [edi + 8]
fcomp qword [0x4bc458]
fnstsw ax
test ah, 0x41
jne 0x46f842
mov dword [esp + 0x20], 1
fld qword [edi + 8]
fcomp qword [0x4bc458]
fnstsw ax
test ah, 1
mov eax, dword [esp + 0x24]
je 0x46f802
cmp eax, 0x39
jl 0x47119a
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.00473f90
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x472065
jmp 0x46f82b
cmp eax, 0x38
jg 0x47119a
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.00474280
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x472065
cmp dword [esp + 0x20], ebx
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esp + 0x24]
cmp eax, 0x37
je 0x46f877
cmp eax, 0x39
je 0x46f877
fild qword [esp + 0x50]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
jne 0x46f89e
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
jmp 0x46f89e
fild qword [esp + 0x50]
fcomp qword [edi + 8]
fnstsw ax
test ah, 1
je 0x46f89e
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add ecx, 1
adc eax, ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
jmp 0x46f89e
xor ebx, ebx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
push edx
mov edx, dword [ecx]
push eax
push ebx
push edx
call fcn.00474350
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x472065
cmp dword [esp + 0x20], ebx
jne 0x46f963
mov eax, dword [esp + 0x28]
mov byte [eax + 0x19], 1
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x54]
mov dword [ecx + 0x44], eax
jmp 0x46f963
mov edx, dword [esi + 0x10]
mov dword [esp + 0x48], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x24]
dec al
mov word [esp + 0x34], dx
and al, 1
mov byte [esp + 0x36], al
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x40], edi
test byte [edi + 0x1d], 0x40
je 0x46f933
push edi
call fcn.004682c0
mov ecx, dword [esp + 0x2c]
add esp, 4
lea eax, [esp + 0x20]
lea edx, [esp + 0x30]
push eax
mov eax, dword [ecx]
push 0
push 0
push 0
push edx
push eax
call fcn.00474350
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov ecx, dword [esp + 0x28]
xor ebx, ebx
mov byte [ecx + 0x19], al
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x50], ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp ecx, 0x39
jl 0x46f9b5
cmp eax, ebx
jl 0x46f993
jne 0x46f98a
cmp ecx, 0x3a
je 0x46f993
mov dword [esp + 0x20], ebx
jmp case.default.0x46d046
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.004746f0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x472065
jmp 0x46f9f5
cmp eax, ebx
jg 0x46f9d5
jne 0x46f9c0
cmp ecx, 0x37
je 0x46f9d5
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
push eax
call fcn.004746e0
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x46f9fd
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.00474870
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x472065
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x19], 0
cmp dword [esp + 0x20], ebx
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x20], eax
cmp dword [eax], 0
je case.default.0x46d046
mov byte [eax + 0x1c], 0
mov esi, dword [esi + 8]
lea ecx, [esi + esi*4]
lea eax, [edi + ecx*8]
push eax
call fcn.0046b000
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x3c], edx
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 1
jmp case.default.0x46d046
mov ecx, dword [ebp + 0x44]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
mov ecx, dword [eax]
test ecx, ecx
je 0x46fb64
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x46fab3
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov cx, word [esi + 0x10]
lea edx, [esp + 0x38]
mov word [esp + 0x3c], cx
mov dword [esp + 0x48], edi
mov byte [esp + 0x3e], 2
mov dword [esp + 0x30], edx
jmp 0x46fb04
mov eax, dword [eax + 8]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x54]
push 0x97
push edx
push eax
call fcn.00479320
add esp, 0x10
mov dword [esp + 0x30], eax
test eax, eax
je 0x471f60
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x18]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
mov ecx, dword [eax + 8]
push ecx
call fcn.00479390
mov eax, dword [esp + 0x40]
add esp, 0x10
mov cl, byte [eax + 6]
or cl, 2
mov byte [eax + 6], cl
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x28]
push edx
mov edx, dword [eax]
push 0
push 0
push 0
push ecx
push edx
call fcn.00474350
mov edi, eax
mov eax, dword [esi + 0x10]
add esp, 0x18
mov dword [esp + 0x10], edi
test eax, eax
jne 0x46fb3a
mov eax, dword [esp + 0x2c]
push eax
push ebx
call fcn.004591b0
add esp, 8
test edi, edi
jne case.default.0x46d046
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x20], ecx
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x24]
mov dword [eax + 0x50], edi
mov edx, dword [esp + 0x20]
cmp byte [esi], 0x3d
jne 0x46fb7e
test edx, edx
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
test edx, edx
jmp 0x471194
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
lea ebx, [edi + ecx*8]
lea eax, [edi + edx*8]
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 4]
xor edi, edi
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x24], eax
mov dword [eax + 0x4c], edi
mov eax, dword [esp + 0x24]
mov dword [eax + 0x50], edi
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 8]
mov dx, word [eax + 6]
mov word [esp + 0x20], di
cmp dx, di
mov word [esp + 0x2c], dx
jbe 0x46fbfb
mov eax, dword [esp + 0x20]
and eax, 0xffff
lea eax, [eax + eax*4]
test byte [ebp + eax*8 + 0x1c], 1
jne 0x46fc90
inc di
cmp di, dx
mov word [esp + 0x20], di
jb 0x46fbd8
mov eax, dword [esp + 0x28]
test eax, eax
je case.default.0x46d046
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 8]
inc edx
push ebx
mov dword [esp + 0x3c], ecx
mov word [esp + 0x40], dx
mov byte [esp + 0x42], 4
mov dword [esp + 0x4c], ebp
call fcn.00478900
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 0x10]
add edx, 0x4c
mov dword [esp + 0x54], eax
mov ecx, dword [ebx + 0x14]
push edx
push 0
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
push 0
lea eax, [esp + 0x48]
push 0
push eax
push ecx
call fcn.00474350
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x5a]
add esp, 0x1c
test al, 4
jne 0x47119a
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jne 0x46fc81
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
cmp edx, ecx
je 0x47119a
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x14], eax
jmp case.default.0x46d046
mov esi, dword [esi + 8]
mov dword [esp + 0x28], 0
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x44]
lea edi, [edi + ecx*8]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x24], eax
je 0x46fd44
xor ebx, ebx
lea ebp, [esp + 0x28]
mov dword [esp + 0x28], ebx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [edi + 0x14]
push ebp
push ebx
push edx
push ecx
push ebx
push eax
mov dword [esp + 0x4c], edx
call fcn.00474350
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x28], eax
add esp, 0x18
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x44], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp edx, ebx
sete dl
mov byte [eax + 0x19], dl
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x1c], bl
mov edx, dword [esp + 0x20]
mov dword [edx + 0x50], ebx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1d], bl
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x46fd38
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x4c], eax
jmp case.default.0x46d046
mov esi, dword [esi + 8]
mov dword [ecx + 0x4c], 0
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 0x34]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
add edx, 1
mov dword [eax + 0x30], edx
mov ecx, dword [eax + 0x34]
adc ecx, 0
mov dword [eax + 0x34], ecx
jmp case.default.0x46d046
mov eax, dword [ebp + 0x44]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x28], edx
mov eax, dword [edx]
cmp eax, ecx
je 0x470041
mov cl, byte [edx + 0x1b]
test cl, cl
jne 0x46ff40
push eax
call fcn.00473d50
mov ecx, eax
add esp, 4
or ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jne 0x46fe60
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00474280
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x46fe11
mov eax, 1
xor edx, edx
mov dword [esp + 0x20], eax
jmp 0x46fe5c
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00466b40
mov edx, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
cmp edx, 0x7fffffff
jl 0x46fe52
jg 0x46fe40
cmp eax, 0xffffffff
jb 0x46fe52
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1b], 1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x46fe60
add eax, 1
mov dword [esp + 0x20], eax
adc edx, 0
mov dword [esp + 0x24], edx
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x46ff10
mov ebp, dword [ebp + 0xb8]
test ebp, ebp
je 0x46fe9d
mov ecx, ebp
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 4]
test eax, eax
je 0x46fe8f
mov ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x46fe82
mov esi, dword [esi + 0xc]
mov ecx, dword [ecx + 0xc]
lea eax, [esi + esi*4]
lea edi, [ecx + eax*8]
jmp 0x46fea3
lea edx, [ebx + ebx*4]
lea edi, [edi + edx*8]
push edi
mov dword [esp + 0x38], edi
call fcn.00478900
mov eax, dword [esp + 0x38]
add esp, 4
mov ecx, dword [eax + 0x14]
lea edx, [eax + 0x10]
mov eax, dword [eax + 0x10]
cmp eax, 0xffffffff
jne 0x46fece
cmp ecx, 0x7fffffff
je 0x47205d
mov esi, dword [esp + 0x28]
mov bl, byte [esi + 0x1b]
test bl, bl
jne 0x47205d
mov esi, dword [esp + 0x24]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x46fefb
jl 0x46fef3
cmp dword [esp + 0x20], eax
jae 0x46fefb
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx], ecx
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp edx, 0x7fffffff
jg 0x46ff27
jl 0x46ff1f
cmp eax, 0xffffffff
jae 0x46ff27
add eax, 1
adc edx, 0
jmp 0x46ff2b
xor eax, eax
xor edx, edx
mov ecx, dword [esp + 0x28]
push edx
push eax
mov edx, dword [ecx]
push edx
call fcn.00473d10
mov edx, dword [esp + 0x34]
add esp, 0xc
mov al, byte [edx + 0x1b]
test al, al
je 0x47002a
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
and eax, 0x3fffffff
add ecx, 1
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], ecx
adc eax, 0
push esi
push 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], 0
push eax
mov eax, dword [edx]
push ecx
push 0
push eax
call fcn.00474350
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x470026
mov esi, 5
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x470016
mov ecx, dword [esp + 0x30]
inc ecx
cmp ecx, 0x64
mov dword [esp + 0x30], ecx
jge 0x470016
lea ecx, [esp + 0x20]
push ecx
push 8
call fcn.0045a710
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, esi
mov eax, dword [esp + 0x20]
jge 0x46ffda
mov ecx, dword [esp + 0x24]
and eax, 0xffffff
and ecx, 0
jmp 0x46ffe4
mov ecx, dword [esp + 0x24]
and ecx, 0x3fffffff
add eax, 1
lea edx, [esp + 0x2c]
adc ecx, 0
push edx
push 0
push ecx
mov dword [esp + 0x2c], eax
push eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
push 0
mov ecx, dword [eax]
push ecx
call fcn.00474350
add esp, 0x18
test eax, eax
je 0x46ff9b
mov dword [esp + 0x10], eax
jmp 0x470026
test eax, eax
mov dword [esp + 0x10], eax
jne 0x470026
test edx, edx
je 0x47205d
mov edx, dword [esp + 0x28]
mov byte [edx + 0x19], 0
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x24]
mov dword [eax + 0x14], edx
jmp case.default.0x46d046
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x30], edx
mov al, byte [esi]
cmp al, 0x42
mov eax, dword [esi + 0xc]
jne 0x470091
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov edx, dword [edi + 0x14]
jmp 0x470096
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
test byte [esi + 3], 1
je 0x4700a3
inc dword [ebp + 0x68]
test byte [esi + 3], 2
je 0x4700c5
mov dword [ebx + 0x20], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
test byte [ecx + 0x1c], 1
je 0x4700dd
xor eax, eax
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x20]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0x20]
jmp 0x4700df
xor eax, eax
test byte [esi + 3], 0x10
je 0x4700f2
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 0x4c]
mov dword [esp + 0x38], edx
jmp 0x4700f6
mov dword [esp + 0x38], eax
test byte [ecx + 0x1d], 0x40
je 0x4700ff
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], eax
push 0
push 0
mov edx, dword [ecx]
push edx
call fcn.00473d10
mov eax, dword [esp + 0x44]
mov cl, byte [esi + 3]
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x30]
and ecx, 8
push ecx
push edx
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x50]
push eax
push ecx
push 0
mov eax, dword [edx]
push eax
call fcn.004749b0
mov ecx, dword [esp + 0x60]
add esp, 0x30
test eax, eax
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x50], 0
jne case.default.0x46d046
mov eax, dword [ebx + 0xc8]
test eax, eax
je case.default.0x46d046
mov eax, dword [esi + 0x10]
test eax, eax
je case.default.0x46d046
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x2c]
shl eax, 4
push edx
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ecx]
push edx
mov dword [esp + 0x44], eax
mov edi, dword [esi + 0x10]
mov dword [esp + 0x48], edi
mov cl, byte [esi + 3]
and cl, 4
push edi
neg cl
sbb ecx, ecx
push eax
and ecx, 5
add ecx, 0x12
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 0xc4]
push ecx
push eax
call dword [ebx + 0xc8]
jmp 0x471e01
mov eax, dword [ebp + 0x44]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], eax
mov edx, dword [ebx + 0xc8]
cmp edx, ecx
je 0x47020d
cmp dword [esi + 0x10], ecx
je 0x47020d
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 0x44]
mov dword [esp + 0x24], edx
push eax
call fcn.00478df0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
push eax
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
call fcn.00473d10
mov edx, dword [esp + 0x34]
mov eax, dword [edx]
push eax
call fcn.00476ff0
mov ecx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
mov dword [ecx + 0x50], 0
jne 0x47028d
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
je 0x47028d
mov eax, dword [esi + 0x10]
test eax, eax
je 0x47028d
mov edx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov edx, dword [edx + eax]
mov eax, dword [ebx + 0xc4]
push edx
push 9
push eax
call ecx
add esp, 0x18
test byte [esi + 8], 1
je case.default.0x46d046
inc dword [ebp + 0x68]
jmp case.default.0x46d046
mov ecx, dword [ebp + 0x68]
push ecx
push ebx
call fcn.0046a780
add esp, 8
mov dword [ebp + 0x68], 0
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [esp + 0x24]
push eax
lea edi, [edi + edx*8]
push edi
push ecx
call fcn.0047bfd0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
add esp, 0xc
test eax, eax
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
lea ecx, [edi + ecx*8]
push ecx
push eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
call fcn.0047bf20
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [edi + ecx*8]
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
push eax
mov edx, dword [eax]
mov dword [esp + 0x28], edx
call fcn.00478df0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x1f]
test cl, cl
je 0x47039f
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x30]
push ecx
push edx
call fcn.00466b40
mov eax, dword [ebx + 0x58]
mov ecx, dword [esp + 0x3c]
cdq
add esp, 8
cmp ecx, edx
mov ecx, dword [esp + 0x30]
jg 0x4720b2
jl 0x470397
cmp ecx, eax
ja 0x4720b2
mov eax, ecx
mov dword [esp + 0x28], eax
jmp 0x4703c0
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.00473d60
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx + 0x58]
add esp, 8
cmp eax, ecx
ja 0x4720b2
mov esi, dword [esp + 0x14]
push 0
push eax
push esi
call fcn.00468140
add esp, 0xc
test eax, eax
jne 0x471f60
mov dx, word [esi + 0x1c]
mov ecx, dword [esp + 0x28]
and edx, 0xbe10
mov dword [esi + 0x18], ecx
or edx, 0x10
mov word [esi + 0x1c], dx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov cl, byte [eax + 0x1f]
mov eax, dword [esp + 0x24]
test cl, cl
mov ecx, dword [esi + 4]
push ecx
push edx
push 0
push eax
je 0x470420
call fcn.00466c00
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0x1f], 1
jmp case.default.0x46d046
call fcn.00473d80
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0x1f], 1
jmp case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x470458
mov eax, dword [esp + 0x14]
mov word [eax + 0x1c], 1
jmp case.default.0x46d046
mov cl, byte [eax + 0x1d]
test cl, cl
je 0x47046f
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x2c], edx
jmp 0x4704e6
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4704a2
mov ecx, dword [ecx]
lea edx, [esp + 0x28]
mov dword [esp + 0x30], ecx
push edx
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x24]
push eax
call dword [ecx + 0x30]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
push ecx
push ebp
call fcn.004798a0
add esp, 0x10
jmp 0x4704e6
push eax
call fcn.00478df0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x19]
test cl, cl
je 0x4704d2
mov edx, dword [eax + 0x40]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x44]
mov dword [esp + 0x2c], eax
jmp 0x4704e6
mov edx, dword [eax]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00466b40
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x14], edx
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x20]
mov byte [edx + 0x19], 0
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je case.default.0x46d046
push eax
call fcn.00467df0
add esp, 4
jmp case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
mov dword [esp + 0x28], 0
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x470567
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.00474280
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
mov cl, byte [esp + 0x28]
mov byte [eax + 0x1c], cl
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x20]
mov byte [eax + 0x19], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x50], 0
mov esi, dword [esi + 8]
test esi, esi
jle case.default.0x46d046
mov eax, dword [esp + 0x28]
test eax, eax
je case.default.0x46d046
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
inc dword [ebp + 0x80]
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4705e1
lea ecx, [esp + 0x28]
push ecx
push eax
push ebx
call fcn.0047b6e0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x470624
mov eax, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov dword [esp + 0x2c], eax
call fcn.00473f90
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
add esp, 8
test eax, eax
sete al
mov byte [ecx + 0x1a], al
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x20]
mov dword [eax + 0x50], 0
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x19], 0
mov eax, dword [esp + 0x20]
mov dl, byte [esp + 0x28]
mov byte [eax + 0x1c], dl
mov eax, dword [esp + 0x28]
test eax, eax
je case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
test eax, eax
mov dword [esp + 0x20], eax
je case.default.0x46d046
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x470675
lea ecx, [esp + 0x24]
push ecx
push eax
push ebx
call fcn.0047be60
add esp, 0xc
jmp 0x470683
mov eax, dword [eax]
lea edx, [esp + 0x24]
push edx
push eax
call dword [esi + 0x10]
add esp, 8
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x24]
mov dword [esp + 0x10], eax
mov byte [ecx + 0x1c], dl
mov eax, dword [esp + 0x20]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4706bd
mov eax, dword [esi + 8]
xor ecx, ecx
mov cl, byte [esi + 3]
dec eax
mov dword [esp + 0x18], eax
lea eax, [ebp + ecx*4 + 0x78]
mov ecx, dword [ebp + ecx*4 + 0x78]
inc ecx
mov dword [eax], ecx
mov edx, dword [esp + 0x20]
mov byte [edx + 0x19], 0
jmp 0x471b3b
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
mov ebp, dword [ecx]
lea edx, [eax + eax*4]
mov dword [esp + 0x24], ebp
test ebp, ebp
lea edi, [edi + edx*8]
je case.default.0x46d046
test byte [edi + 0x1d], 0x40
je 0x470711
push edi
call fcn.004682c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x46d046
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x47072c
push edi
push ecx
push ebx
call fcn.0047b100
add esp, 0xc
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov eax, dword [edi + 0x18]
mov dword [esp + 0x28], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x2c], edi
mov dl, byte [esi + 3]
test dl, 0x10
je 0x470747
mov ecx, dword [ecx + 0x4c]
jmp 0x470749
xor ecx, ecx
push ecx
mov ecx, dword [esi + 0xc]
push ecx
push 0
cdq
push 0
push 0x4e2868
push edx
push eax
push edi
push ebp
call fcn.004749b0
mov edx, dword [esp + 0x44]
add esp, 0x24
mov dword [esp + 0x10], eax
mov dword [edx + 0x50], 0
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
je case.default.0x46d046
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov ax, word [esi + 0xc]
mov word [esp + 0x34], ax
mov byte [esp + 0x36], 0
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea eax, [edi + edx*8]
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x44], eax
push 0
push 0
lea eax, [esp + 0x3c]
push 0
push eax
push ecx
call fcn.00474350
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4707ef
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4707ef
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00476ff0
add esp, 4
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x20]
mov dword [edx + 0x50], 0
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x24], eax
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov word [eax + 0x1c], 1
mov eax, dword [esp + 0x20]
test eax, eax
je case.default.0x46d046
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00478df0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov edx, dword [esp + 0x24]
mov al, byte [edx + 0x1c]
test al, al
jne case.default.0x46d046
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
push ecx
push ebx
call fcn.00479680
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472065
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x14], ecx
mov word [eax + 0x1c], 4
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
cmp dword [ecx], 0
je case.default.0x46d046
mov edx, dword [ecx + 8]
mov dword [esp + 0x28], edx
mov ax, word [esi + 0x10]
mov word [esp + 0x2c], ax
mov al, byte [esi + 3]
test al, al
setne dl
add edx, 2
mov byte [esp + 0x2e], dl
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
lea eax, [esp + 0x24]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004797c0
mov dword [esp + 0x1c], eax
mov al, byte [esi]
add esp, 0xc
cmp al, 0x6a
mov eax, dword [esp + 0x24]
jne 0x4708f3
neg eax
jmp 0x4708f4
inc eax
test eax, eax
mov dword [esp + 0x24], eax
jle case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov dword [esp + 0x24], 0
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x470955
mov ecx, 0xbdf20da3
cmp dword [eax + 0x34], ecx
jne 0x47094a
mov edi, dword [eax + 0x64]
test edi, 0x200
je 0x47094a
mov edx, edi
and edx, 0xc
cmp dl, 8
jae 0x47094a
mov edx, dword [eax + 0x58]
test edx, edx
jl 0x47094a
inc dword [esp + 0x24]
mov eax, dword [eax + 0x40]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x470925
mov ecx, dword [esp + 0x14]
mov eax, 1
mov word [ecx + 0x1c], ax
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jle 0x47097b
mov dword [esp + 0x10], 6
mov byte [ebp + 0x60], 2
jmp case.default.0x46d046
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x20]
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
push edx
mov edx, dword [ebx + 0x10]
shl eax, 4
push ecx
mov eax, dword [eax + edx + 4]
push eax
call fcn.004776b0
mov ecx, dword [esp + 0x20]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x10], edi
mov word [ecx + 0x1c], 4
mov eax, dword [esp + 0x20]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
test edi, edi
jne case.default.0x46d046
mov eax, dword [esp + 0x20]
test eax, eax
je case.default.0x46d046
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x2c]
push ecx
push eax
push edx
push ebx
call fcn.0047d9e0
mov al, byte [esp + 0x3c]
add esp, 0x10
inc al
mov byte [esp + 0x10c], al
jmp case.default.0x46d046
mov dword [esp + 0x20], 0
mov eax, dword [esi + 0xc]
neg eax
mov edx, dword [esi + 4]
lea ecx, [esp + 0x20]
sbb eax, eax
and eax, ecx
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [esi + 8]
shl eax, 4
push edx
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004774f0
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
add esp, 0xc
test eax, eax
je case.default.0x46d046
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 0x68]
add edx, eax
mov dword [ebp + 0x68], edx
mov esi, dword [esi + 0xc]
test esi, esi
jle case.default.0x46d046
lea ecx, [esi + esi*4]
mov esi, dword [edi + ecx*8 + 0x10]
cdq
lea ecx, [edi + ecx*8 + 0x10]
add esi, eax
mov dword [ecx], esi
mov eax, dword [ecx + 4]
adc eax, edx
mov dword [ecx + 4], eax
jmp case.default.0x46d046
mov dword [esp + 0x20], 0
mov eax, dword [esi + 4]
mov edi, dword [ebx + 0x10]
xor ecx, ecx
shl eax, 4
add eax, edi
mov dword [esp + 0x28], eax
mov dl, byte [esi]
cmp dl, 0x6f
lea edx, [esp + 0x20]
setne cl
inc ecx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 4]
push ecx
push edx
push eax
call fcn.00477250
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
add esp, 0xc
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
mov dword [esp + 0x20], eax
je 0x470acb
mov ecx, str.sqlite_master
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ebx
mov edx, dword [esi + 4]
add ebp, 0x38
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebp
mov edx, dword [esi + 0x10]
push edx
push ecx
mov ecx, dword [ebx + 0x10]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0046a310
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
jne 0x470b11
mov esi, 7
mov dword [esp + 0x10], esi
jmp 0x470b65
lea eax, [esp + 0x2c]
mov byte [ebx + 0x89], 1
mov ecx, dword [esp + 0x28]
push 0
push eax
push fcn.00480460
push ecx
push ebx
mov dword [esp + 0x4c], 0
call fcn.0047fc30
mov esi, eax
add esp, 0x14
test esi, esi
mov dword [esp + 0x10], esi
jne 0x470b4c
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x28]
push edx
push ebx
call fcn.004591b0
add esp, 8
mov byte [ebx + 0x89], 0
test esi, esi
je 0x470b6e
push ebx
call fcn.0047d6a0
add esp, 4
cmp esi, 7
je 0x471f60
jmp case.default.0x46d046
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.0047c670
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
push ecx
push edx
push ebx
call fcn.0047d930
add esp, 0xc
jmp case.default.0x46d046
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push ecx
push ebx
call fcn.0047d190
add esp, 0xc
jmp case.default.0x46d046
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push edx
push eax
push ebx
call fcn.00481a50
add esp, 0xc
jmp case.default.0x46d046
mov eax, dword [esi + 8]
mov dword [esp + 0x20], eax
lea ecx, [eax*4 + 4]
push ecx
push ebx
call fcn.00459430
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x471f60
mov ecx, dword [esi + 0xc]
lea edx, [ecx + ecx*4]
lea ecx, [edi + edx*8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 4]
lea edx, [ecx + ecx*4]
xor ecx, ecx
mov dword [esp + 0x28], ecx
lea edi, [edi + edx*8]
mov edx, dword [esp + 0x20]
test edx, edx
jle 0x470c4b
lea eax, [ecx + ecx*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.0046b000
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x470c1c
mov eax, dword [esp + 0x24]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x2c]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push ecx
xor ecx, ecx
mov cl, byte [esi + 3]
push edx
mov edx, dword [ebx + 0x10]
push eax
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.00477a20
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], eax
push ecx
push ebx
call fcn.004591b0
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
push edi
mov ebx, dword [edx + 0x10]
lea ecx, [edx + 0x10]
cdq
sub ebx, eax
mov dword [ecx], ebx
mov esi, dword [ecx + 4]
sbb esi, edx
mov dword [ecx + 4], esi
call fcn.00468490
mov eax, dword [esp + 0x4c]
add esp, 0x20
test eax, eax
je 0x470cd8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x471f60
push fcn.00459150
push 1
push 0xffffffffffffffff
push eax
push edi
call fcn.00467f20
add esp, 0x14
mov eax, dword [esp + 0xe8]
and eax, 0xff
push eax
push edi
call fcn.0046aa10
add esp, 8
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea ecx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
lea edx, [esi + esi*4]
lea ebx, [edi + ecx*8]
test al, 0x20
lea esi, [edi + edx*8]
jne 0x470d21
push ebx
call fcn.004789d0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 0x20
je 0x471f60
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call fcn.00472770
add esp, 0xc
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 0x20
mov dword [esp + 0xec], eax
je 0x470d8b
mov edx, eax
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx + 0x10]
push eax
call fcn.00472820
add esp, 8
test eax, eax
je 0x470d8b
mov esi, dword [esi + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
lea eax, [esi + esi*4]
push edx
lea ecx, [edi + eax*8]
push ecx
call fcn.0046b490
add esp, 0xc
jmp 0x471b3b
mov edx, dword [esp + 0xec]
push edx
call fcn.00468490
add esp, 4
jmp case.0x46d046.14
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
lea edi, [edi + ecx*8]
mov cl, byte [ebx + 0x1c]
test cl, 0x20
jne 0x470dd9
push ebx
call fcn.004789d0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 0x20
je 0x471f60
mov eax, dword [esp + 0x20]
test eax, eax
je 0x470e16
jl 0x470de4
and eax, 0xf
jmp 0x470de9
mov eax, 0xff
mov edx, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
push edx
mov edx, dword [ebx + 0x10]
push ecx
push eax
push edx
call fcn.004729b0
add esp, 0x10
mov dword [esp + 0x24], eax
test eax, eax
jne 0x47119a
mov eax, dword [esp + 0x20]
test eax, eax
jl case.default.0x46d046
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call fcn.00472770
add esp, 0xc
jmp case.default.0x46d046
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x28], edi
mov al, byte [esi + 3]
test al, al
je 0x470e79
mov eax, dword [ebp + 0xb8]
mov edx, dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], eax
je 0x470e79
cmp dword [eax + 0x18], edx
je 0x470e71
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x34], eax
jne 0x470e5f
jmp 0x470e79
test eax, eax
jne case.default.0x46d046
mov edx, dword [ebp + 0xc0]
mov eax, dword [ebx + 0x80]
cmp edx, eax
jl 0x470ea8
push str.too_many_levels_of_trigger_recursion
add ebp, 0x38
push ebx
push ebp
mov dword [esp + 0x1c], 1
call fcn.0046a620
add esp, 0xc
jmp case.default.0x46d046
test byte [edi + 0x1c], 0x40
jne 0x470fdd
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
add eax, edx
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
lea eax, [ecx + eax*4 + 0x48]
push eax
push ebx
mov dword [esp + 0x2c], eax
call fcn.0045e8b0
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x471f60
mov edx, dword [esp + 0x28]
push edx
call fcn.00468330
mov eax, dword [esp + 0x2c]
add esp, 4
mov word [eax + 0x1c], 0x40
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x10], ecx
mov eax, dword [esp + 0x34]
mov dword [eax], ebp
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x3c], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
mov dword [edx + 0x40], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x2c], ecx
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0x18]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0x44]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0x30]
mov dword [eax + 0x28], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0x30], eax
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0xd0]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0xcc]
mov dword [edx + 0x38], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x3c]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8 + 0x48]
lea ecx, [eax + 0x48]
cmp ecx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
je 0x470fe4
mov eax, 0x80
mov word [ecx + 0x1c], ax
mov edx, dword [esp + 0x2c]
mov dword [edx], ebx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
add ecx, 0x28
cmp ecx, edx
mov dword [esp + 0x2c], ecx
jne 0x470fba
mov eax, dword [esp + 0x34]
jmp 0x470fe4
mov eax, dword [edi + 0x10]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x134]
mov dword [esp + 0x18], 0xffffffff
mov ebx, dword [edx + 0xc0]
mov ecx, dword [edx + 0xb8]
inc ebx
mov dword [edx + 0xc0], ebx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xf4]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xf8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 0x68]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x68], 0
mov dword [edx + 0xb8], eax
lea ecx, [eax + 0x20]
mov dword [edx + 8], ecx
mov esi, dword [eax + 0x3c]
mov dword [edx + 0x18], esi
xor esi, esi
mov si, word [eax + 0x40]
mov eax, dword [edx + 0x18]
inc eax
mov dword [esp + 0xf0], ecx
mov dword [edx + 0x30], esi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x38]
mov dword [edx + 0x44], eax
mov esi, dword [ecx]
mov dword [esp + 0x110], esi
mov dword [edx + 4], esi
mov esi, dword [ecx + 4]
mov dword [edx + 0x1c], esi
mov esi, dword [edx + 0x30]
lea edi, [eax + esi*4]
xor eax, eax
mov dword [edx + 0xd0], edi
mov ecx, dword [ecx + 0x10]
mov dword [edx + 0xcc], ecx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp case.default.0x46d046
mov ebp, dword [ebp + 0xb8]
push 0x1000
mov dword [esp + 0x24], ebp
mov ebx, dword [esi + 4]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, dword [esp + 0x18]
add eax, ebx
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + edx*8]
push eax
push ecx
mov dword [esp + 0x30], eax
call fcn.00478a90
add esp, 0xc
jmp case.default.0x46d046
test dword [ebx + 0x18], 0x1000000
je 0x471118
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 0x200]
cdq
add ecx, eax
mov dword [ebx + 0x200], ecx
mov eax, dword [ebx + 0x204]
adc eax, edx
mov dword [ebx + 0x204], eax
jmp case.default.0x46d046
mov eax, dword [esi + 4]
test eax, eax
mov eax, dword [esi + 8]
cdq
je 0x471144
mov ecx, dword [ebx + 0x1f8]
add ecx, eax
mov dword [ebx + 0x1f8], ecx
mov eax, dword [ebx + 0x1fc]
adc eax, edx
mov dword [ebx + 0x1fc], eax
jmp case.default.0x46d046
mov ecx, dword [ebp + 0x98]
add ecx, eax
mov dword [ebp + 0x98], ecx
mov eax, dword [ebp + 0x9c]
adc eax, edx
mov dword [ebp + 0x9c], eax
jmp case.default.0x46d046
mov eax, dword [esi + 4]
test eax, eax
je 0x4711a7
mov edx, dword [ebx + 0x1f8]
mov eax, dword [ebx + 0x1fc]
or edx, eax
jne case.default.0x46d046
mov ecx, dword [ebx + 0x200]
mov edx, dword [ebx + 0x204]
lea eax, [ebx + 0x200]
or ecx, edx
jne case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov edx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x9c]
add ebp, 0x98
jmp 0x471178
mov ebp, dword [ebp + 0xb8]
test ebp, ebp
je 0x4711ed
mov ecx, ebp
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 4]
test eax, eax
je 0x4711df
mov ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4711d2
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea eax, [eax + edx*8]
jmp 0x4711f6
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
push eax
mov dword [esp + 0x24], eax
call fcn.00478900
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea esi, [edi + edx*8]
push esi
call fcn.00478900
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
add eax, 0x10
add esp, 8
mov edx, dword [eax + 4]
cmp edx, esi
jg case.default.0x46d046
jl 0x471236
mov edx, dword [eax]
cmp edx, ecx
jae case.default.0x46d046
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8 + 0x10]
mov eax, dword [edi + 4]
test eax, eax
jl case.default.0x46d046
jg 0x471260
cmp dword [edi], 0
jbe case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8 + 0x14]
test eax, eax
lea edi, [edi + ecx*8 + 0x10]
jg case.default.0x46d046
jl 0x47128e
cmp dword [edi], 0
jae case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0xc]
mov ebx, dword [edi + edx*8 + 0x10]
lea ecx, [edi + edx*8]
cdq
add ebx, eax
mov dword [ecx + 0x10], ebx
mov edi, dword [ecx + 0x14]
adc edi, edx
mov dword [ecx + 0x14], edi
mov eax, dword [ecx + 0x10]
mov edx, edi
or eax, edx
jne case.default.0x46d046
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x78], eax
xor eax, eax
lea edi, [edi + edx*8]
mov dword [esp + 0x24], eax
test ecx, ecx
mov dword [esp + 0x2c], edi
jle 0x47132a
mov ecx, dword [esp + 0x78]
mov dword [ecx + eax*4], edi
mov edx, dword [esp + 0x2c]
push edx
call fcn.0046ce00
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
add esp, 4
inc eax
add edi, 0x28
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edi
jl 0x4712fa
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov ebp, dword [esp + 0x1c]
xor edi, edi
lea ecx, [eax + eax*4]
lea eax, [ebx + ecx*8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], eax
mov edx, dword [eax + 0x18]
inc edx
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x30]
mov word [esp + 0x54], 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x64], edi
mov byte [esp + 0x74], 0
test byte [eax + 3], 8
je 0x47138b
mov edx, dword [esi - 4]
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
push ecx
lea ecx, [esp + 0x34]
push edx
push ecx
call dword [eax + 0x10]
mov eax, dword [esp + 0x7c]
add esp, 0xc
cmp eax, edi
je 0x4713d7
lea edx, [esp + 0x38]
push edx
call fcn.0046b2f0
push eax
mov eax, dword [esp + 0x13c]
push 0x4dad94
add eax, 0x38
push ebp
push eax
call fcn.0046a620
mov ecx, dword [esp + 0x84]
add esp, 0x14
mov dword [esp + 0x10], ecx
mov al, byte [esp + 0x74]
test al, al
je 0x4713fc
mov esi, dword [esi - 0x10]
cmp esi, edi
mov dword [esp + 0x24], esi
je 0x4713fc
lea edx, [esi + esi*4]
push edi
push 1
lea eax, [ebx + edx*8]
push eax
call fcn.0046b490
add esp, 0xc
lea ecx, [esp + 0x38]
push ecx
call fcn.00468330
add esp, 4
jmp case.default.0x46d046
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x20], edi
mov eax, dword [esi + 0x10]
push eax
push edi
call fcn.00468420
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x47144d
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0046b2f0
push eax
push 0x4dad94
add ebp, 0x38
push ebx
push ebp
call fcn.0046a620
add esp, 0x14
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x20]
and edx, 0xff
push edx
push eax
call fcn.0046aa10
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00478a60
add esp, 0xc
test eax, eax
jne 0x4720b2
jmp case.default.0x46d046
or eax, 0xffffffff
xor ebp, ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x24], ebp
mov ecx, dword [esi + 8]
lea eax, [esp + 0x28]
push edx
mov edx, dword [esi + 4]
push eax
push ecx
push edx
push ebx
call fcn.004a88f0
add esp, 0x14
cmp eax, 5
mov dword [esp + 0x10], eax
jne 0x4714c0
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], 1
xor eax, eax
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0xc]
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x30], edi
mov eax, dword [esp + eax*4 + 0x24]
cdq
push edx
push eax
push edi
call fcn.0046b490
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
add esp, 0xc
inc eax
add edi, 0x28
cmp eax, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edi
jl 0x4714d3
jmp case.default.0x46d046
mov edx, dword [esi + 0xc]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push eax
mov dword [esp + 0x24], eax
call fcn.0045e610
push eax
mov dword [esp + 0x2c], eax
call fcn.00462950
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, 0xffffffff
mov dword [esp + 0x2c], eax
jne 0x47153d
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x24]
push edx
call fcn.00472cd0
add esp, 4
test eax, eax
jne 0x471556
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x24]
push 1
push ecx
call fcn.0046a390
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, 5
mov dword [esp + 0x30], eax
jne 0x471605
push eax
call fcn.0045a8d0
add esp, 4
test eax, eax
je 0x471594
mov edx, dword [esp + 0x24]
push edx
call fcn.00465290
add esp, 4
test eax, eax
jne 0x471601
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4715ac
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
push ecx
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00472bd0
mov dword [esp + 0x30], eax
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x1c], edi
mov word [edi + 0x1c], 0xa02
mov eax, dword [esp + 0x30]
push eax
call fcn.00480440
push eax
mov dword [edi + 4], eax
call fcn.0045a8d0
mov ecx, dword [esp + 0xf8]
mov dword [edi + 0x18], eax
and ecx, 0xff
mov byte [edi + 0x1f], 1
push ecx
push edi
call fcn.0046aa10
jmp 0x471e01
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
je 0x47159c
cmp eax, 5
je 0x471617
cmp ecx, 5
jne 0x47159c
mov dl, byte [ebx + 0x3e]
test dl, dl
je 0x471699
cmp dword [ebx + 0x90], 1
jg 0x471699
cmp eax, 5
jne 0x471651
mov eax, dword [esp + 0x24]
push eax
call fcn.00472d00
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4715a4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
jmp 0x47165d
cmp eax, 4
jne 0x471669
mov eax, dword [esp + 0x24]
push 2
push eax
call fcn.00472bd0
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4715a4
mov eax, dword [esp + 0x20]
xor edx, edx
cmp ecx, 5
sete dl
inc edx
push edx
push eax
call fcn.00467890
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x47159c
cmp ecx, 5
mov dword [esp + 0x10], 1
mov eax, str.into
je 0x4716b0
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
add ebp, 0x38
push ebx
push ebp
call fcn.0046a620
add esp, 0x10
jmp case.default.0x46d046
add ebp, 0x38
push ebx
push ebp
call fcn.00481b00
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
push eax
mov dword [esp + 0x24], eax
call fcn.00473b30
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.default.0x46d046
mov esi, dword [esi + 8]
mov dword [esp + 0x10], 0
dec esi
mov dword [esp + 0x18], esi
jmp case.default.0x46d046
mov eax, dword [esi + 4]
test eax, eax
jne 0x47172f
push ebx
call fcn.00479880
add esp, 4
jmp case.default.0x46d046
mov eax, dword [ebp + 0x64]
or al, 0x20
mov dword [ebp + 0x64], eax
jmp case.default.0x46d046
mov al, byte [esi + 0xc]
test al, al
mov byte [esp + 0x118], al
jne 0x471756
mov eax, dword [ebx + 0x18]
test ah, 0x40
jne case.default.0x46d046
mov ecx, dword [esp + 0x118]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [ebx + 0x10]
push edx
shl eax, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004787c0
add esp, 0xc
cmp al, 6
mov dword [esp + 0x10], eax
jne case.default.0x46d046
mov eax, dword [esi + 0x10]
add ebp, 0x38
push eax
push str.database_table_is_locked:__s
push ebx
push ebp
call fcn.0046a620
add esp, 0x10
jmp case.default.0x46d046
mov esi, dword [esi + 0x10]
push esi
push ebx
mov dword [esp + 0x28], esi
call fcn.00482b90
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
je case.default.0x46d046
mov ecx, dword [eax + 8]
push ecx
push ebp
call fcn.004798a0
add esp, 8
jmp case.default.0x46d046
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
add ebp, 0x38
push ebp
push edx
push eax
push ebx
call fcn.00482460
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.default.0x46d046
mov ecx, dword [ebp + 0x64]
and ecx, 0xfffffffb
or ecx, 8
mov dword [ebp + 0x64], ecx
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push edx
push eax
push ebx
call fcn.00482a10
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x64]
add esp, 0xc
and al, 0xf3
mov dword [ebp + 0x64], eax
jmp case.default.0x46d046
xor eax, eax
lea edx, [esp + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x10]
push edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x2c], eax
push eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
call dword [ecx + 0x18]
mov edi, eax
mov eax, dword [esp + 0x30]
push eax
push ebp
mov dword [esp + 0x20], edi
call fcn.004798a0
add esp, 0x10
test edi, edi
jne case.default.0x46d046
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push edi
push 0xffffffffffffffff
mov dword [edx], ecx
mov eax, dword [esi + 4]
push edi
push eax
push ebp
call fcn.00479cd0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x47189b
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax]
mov dword [edx + 0x28], ecx
jmp case.default.0x46d046
mov byte [ebx + 0x40], 1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
push eax
call dword [ecx + 0x1c]
add esp, 4
jmp case.default.0x46d046
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x134]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xf0]
lea eax, [eax + edx*8]
mov edx, dword [ebx + 0x44]
mov dword [esp + 0x2c], eax
mov ebx, dword [ebx + 0xc]
lea edi, [eax + 0x28]
mov dword [esp + 0x30], edi
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x3c], ecx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x34], edx
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], eax
jle 0x471955
jmp 0x47191e
mov edi, dword [esp + 0x30]
lea ecx, [eax + eax*4 + 5]
lea edx, [edi + ecx*8]
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.0046ce00
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x47191a
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x134]
mov eax, dword [edi + 0x64]
and al, 0xf7
or al, 4
mov dword [edi + 0x64], eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esi + 0x10]
push ecx
mov ecx, dword [esp + 0x34]
push eax
push edx
call dword [ecx + 0x20]
mov edx, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [edi + 0x64]
push edx
and al, 0xf3
push edi
mov dword [esp + 0x2c], ebx
mov dword [edi + 0x64], eax
call fcn.004798a0
add esp, 0x1c
test ebx, ebx
jne 0x4719b0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push eax
call dword [ecx + 0x28]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4719c0
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x3c]
mov byte [edx + 0x1c], 0
jmp case.default.0x46d046
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x28], eax
mov cl, byte [ebx + 0x1c]
test cl, cl
je 0x4719f8
push eax
call fcn.00468490
add esp, 4
jmp case.default.0x46d046
mov eax, dword [ebx + 0x24]
lea edi, [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0x24], ecx
mov ecx, 0x12
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0046ccd0
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x38]
and ecx, 0xbe01
or ecx, 1
mov word [esp + 0x5c], cx
mov edx, dword [esi + 8]
mov ecx, dword [ebx + 0x24]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call fcn.004798a0
mov eax, dword [esp + 0x8c]
add esp, 0x1c
test eax, eax
je 0x471a71
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0xe8]
lea eax, [esp + 0x38]
and edx, 0xff
push edx
push eax
call fcn.0046aa10
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push ecx
push edx
call fcn.0046ccd0
mov eax, dword [esp + 0x38]
push eax
call fcn.00478a60
add esp, 0x14
test eax, eax
jne 0x4720b2
jmp case.default.0x46d046
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x28], 0
mov ecx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x2c], eax
mov cl, byte [eax + 0x1c]
test cl, cl
jne case.default.0x46d046
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp + 0x64]
and edx, 0xfffffff7
mov ecx, dword [ecx]
or edx, 4
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx]
mov dword [ebp + 0x64], edx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x24]
push eax
call dword [ecx + 0x24]
mov ecx, dword [ebp + 0x64]
mov edi, eax
and ecx, 0xfffffff3
mov dword [esp + 0x14], edi
mov dword [ebp + 0x64], ecx
mov ecx, dword [esp + 0x24]
push ecx
push ebp
call fcn.004798a0
add esp, 0xc
test edi, edi
jne 0x471b2b
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x24]
push eax
call dword [ecx + 0x28]
add esp, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x471b3b
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x18], esi
mov eax, dword [ebx + 0xf0]
test eax, eax
jne 0x4720d9
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x124]
test eax, eax
je case.default.0x46d046
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x100]
cmp ecx, edx
jb case.default.0x46d046
mov ecx, dword [esi + 0x128]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x472104
mov eax, dword [esi + 0x124]
test eax, eax
je case.default.0x46d046
mov ecx, dword [esi + 0x12c]
mov esi, dword [esp + 0x100]
mov eax, esi
xor edx, edx
div ecx
sub ecx, edx
add ecx, esi
mov dword [esp + 0x108], ecx
jmp case.default.0x46d046
mov edx, dword [esi + 0x10]
push 1
mov eax, dword [edx + 8]
mov dword [esp + 0x24], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
push edi
mov dword [esp + 0x2c], edi
call fcn.0046aa10
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x46d046
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x4c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
push edx
push ebp
call fcn.004798a0
mov eax, dword [ebp + 0x64]
add esp, 0x10
and al, 0xdf
mov dword [ebp + 0x64], eax
jmp case.default.0x46d046
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x34]
test edx, edx
je case.default.0x46d046
mov eax, dword [ebp + 0xc]
mov dl, byte [ebx + 0x44]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0xc]
mov byte [esp + 0xff], dl
mov dword [esp + 0x2c], 0
lea edx, [eax + eax*4]
test ecx, ecx
lea edi, [edi + edx*8]
mov dword [esp + 0x3c], edi
jle 0x471c95
push edi
call fcn.0046ce00
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add esp, 4
mov dword [edx + ecx*4], eax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add edi, 0x28
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], eax
jl 0x471c61
mov al, byte [esi + 3]
lea ecx, [esp + 0x30]
mov byte [ebx + 0x44], al
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
call dword [edx + 0x34]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x10f]
mov byte [ebx + 0x44], al
mov ecx, dword [esp + 0x30]
push ecx
push ebp
call fcn.004798a0
mov eax, dword [esp + 0x28]
add esp, 0x18
test eax, eax
jne 0x471d01
mov eax, dword [esi + 4]
test eax, eax
je 0x471d01
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xf4], eax
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xf8], edx
mov dword [ebx + 0x24], eax
cmp byte [esp + 0x10], 0x13
jne 0x470297
mov ecx, dword [esi + 0x10]
mov al, byte [ecx + 0x10]
test al, al
je 0x470297
mov al, byte [esi + 3]
cmp al, 4
jne 0x471d2e
mov dword [esp + 0x10], 0
jmp case.default.0x46d046
cmp al, 5
jne 0x471d3f
mov eax, 2
mov byte [ebp + 0x60], al
jmp case.default.0x46d046
and eax, 0xff
mov byte [ebp + 0x60], al
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.004641c0
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
jmp case.default.0x46d046
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0xc]
shl edx, 4
mov edi, dword [edx + eax + 4]
xor eax, eax
test ecx, ecx
je 0x471d9d
push edi
call fcn.004641c0
mov esi, dword [esi + 0xc]
add esp, 4
cmp eax, esi
jae 0x471d9d
mov eax, esi
push eax
push edi
call fcn.00473ae0
mov ecx, dword [esp + 0x1c]
add esp, 8
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x46d046
mov eax, dword [ebx + 0xa4]
test eax, eax
je case.default.0x46d046
mov eax, dword [ebp + 0x64]
test ah, 8
jne case.default.0x46d046
mov esi, dword [esi + 0x10]
test esi, esi
mov eax, esi
jne 0x471dd5
mov eax, dword [ebp + 0xb0]
test eax, eax
mov dword [esp + 0x20], eax
je case.default.0x46d046
push eax
push ebp
call fcn.004798e0
mov dword [esp + 0x2c], eax
mov ecx, dword [ebx + 0xa8]
push eax
push ecx
call dword [ebx + 0xa4]
mov edx, dword [esp + 0x34]
push edx
push ebx
call fcn.004591b0
add esp, 0x18
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc ecx
test eax, eax
mov dword [esp + 0x18], ecx
je 0x46cfc6
jmp 0x47210c
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x18]
mov dword [ebp + 0x5c], eax
mov cl, byte [esi + 8]
mov byte [ebp + 0x60], cl
mov dword [ebp + 0x58], edx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x471e6b
push eax
push 0x4dad94
lea eax, [ebp + 0x38]
push ebx
push eax
call fcn.0046a620
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp + 0xb0]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esi + 4]
push edx
push eax
push str.abort_at__d_in___s_:__s
push ecx
call fcn.0045a670
add esp, 0x24
jmp 0x471e8f
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x471e8f
mov edx, dword [ebp + 0xb0]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
push edx
push eax
push str.constraint_failed_at__d_in___s_
push ecx
call fcn.0045a670
add esp, 0x10
push ebp
call fcn.004689b0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x471fd2
mov dword [ebp + 0x5c], esi
jmp 0x472179
mov edx, dword [ebp + 0x54]
add edx, 2
or edx, 1
mov dword [ebp + 0x54], edx
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor eax, eax
mov dword [ebp + 0x14], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x471f2f
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x1d], 0x10
lea ecx, [edx + ecx*8]
je 0x471ef8
push ecx
call fcn.00468260
add esp, 4
test eax, eax
jne 0x471f60
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
push edx
call fcn.0046ae90
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
push edx
call fcn.0046ce00
mov eax, dword [esp + 0x2c]
add esp, 8
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
cmp eax, ecx
jl 0x471ed6
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x40]
test cl, cl
jne 0x471f60
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x134]
inc ecx
mov esi, 0x64
mov dword [edx + 0x58], ecx
jmp 0x472179
lea eax, [esp + 0x30]
push eax
call fcn.00468330
add esp, 4
mov ecx, dword [esp + 0x134]
mov eax, dword [esp + 0x1c]
push str.out_of_memory
add ecx, 0x38
push eax
push ecx
mov byte [eax + 0x40], 1
call fcn.0046a620
add esp, 0xc
mov dword [esp + 0x10], 7
jmp 0x47210c
mov dword [esp + 0x10], 0x14
jmp 0x472065
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x58], ecx
mov byte [esi + 0x3e], 0
mov esi, 5
mov dword [edi + 0x5c], esi
jmp 0x472179
test esi, esi
je 0x471fe4
push 0x204
push ebx
call fcn.004a7f60
add esp, 8
mov byte [ebx + 0x3e], 1
push ebx
call fcn.004a7ac0
add esp, 4
mov esi, dword [ebp + 0x5c]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x472179
push 1
push ebp
call fcn.0046a5a0
mov esi, eax
add esp, 8
test esi, esi
jne 0x472179
mov dl, byte [esp + 0x20]
push ebp
mov byte [ebx + 0x3e], dl
call fcn.004689b0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x471fc9
mov eax, dword [esp + 0x18]
mov cl, 1
mov dword [ebp + 0x58], eax
mov al, byte [esp + 0x20]
sub cl, al
mov byte [ebx + 0x3e], cl
mov dword [ebp + 0x5c], esi
jmp 0x472179
mov dword [esp + 0x10], 8
jmp 0x472065
mov edx, dword [esp + 0x18]
mov esi, 5
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x5c], esi
jmp 0x472179
push 0x10c5c
call fcn.004a9a80
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x472065
mov dword [esp + 0x10], 0xd
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x40]
test cl, cl
je 0x47207a
mov dword [esp + 0x10], 7
jmp 0x472088
cmp dword [esp + 0x10], 0xc0a
je 0x47210c
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004a8050
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x13c]
push 0x4dad94
add eax, 0x38
push edx
push eax
call fcn.0046a620
add esp, 0x14
jmp 0x47210c
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x1c]
push str.string_or_blob_too_big
add eax, 0x38
push edx
push eax
call fcn.0046a620
add esp, 0xc
mov dword [esp + 0x10], 0x12
jmp 0x47210c
mov eax, 9
push eax
mov dword [esp + 0x14], eax
mov dword [ebp + 0x5c], eax
call fcn.004a8050
mov ecx, dword [esp + 0x20]
push eax
push 0x4dad94
add ebp, 0x38
push ecx
push ebp
call fcn.0046a620
add esp, 0x14
jmp 0x47210c
mov dword [esp + 0x10], 9
mov esi, dword [esp + 0x134]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0xb0]
push edx
push eax
push ecx
push str.statement_aborts_at__d:___s___s
push edi
mov dword [esi + 0x5c], edi
call fcn.0045a670
push esi
call fcn.004689b0
add esp, 0x18
cmp edi, 0xc0a
jne 0x47214e
mov edx, dword [esp + 0x1c]
mov byte [edx + 0x40], 1
mov al, byte [esp + 0x10c]
mov esi, 1
test al, al
jbe 0x472179
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x1c]
and eax, 0xff
dec eax
push eax
push ecx
call fcn.0047d660
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x100]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x134]
push eax
add dword [eax + 0x88], edx
call fcn.00468d00
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret