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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3f0
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, dword [edx]
xor edi, edi
mov esi, dword [edx + 4]
xor bl, bl
push edx
mov dword [ebp - 0x14], 0
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], 0
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
mov byte [ebp - 0xd], bl
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x8c], 0
mov al, byte [eax + 0x4d]
mov byte [ebp - 0x60], al
mov byte [ebp - 0xa0], al
mov byte [ebp - 0xb0], al
mov eax, dword [edx + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x64], eax
call fcn.004694a0
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [ebp - 4]
cmp dword [ecx + 0x50], 7
je 0x46b8ec
mov dword [ecx + 0x50], edi
mov dword [ecx + 0x88], edi
mov dword [ecx + 0x8c], edi
mov dword [ecx + 0x14], edi
mov dword [edx + 0x1c4], edi
cmp dword [edx + 0xf0], edi
jne 0x4703a6
cmp dword [edx + 0x124], edi
je 0x4695f5
mov eax, dword [ecx + 0x7c]
mov ebx, dword [edx + 0x12c]
mov dword [ebp - 0x9c], ebx
test eax, eax
je 0x4695f5
xor edx, edx
div ebx
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xb0]
xorps xmm0, xmm0
mov ebx, dword [ecx + 0x4c]
mov dword [ebp - 0xf0], 0xbe01
movsd qword [ebp - 0x74], xmm0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x48]
nop dword [eax]
cmp byte [edx + 0x40], 0
mov dword [ebp - 0x1c], eax
jne 0x46b8e9
inc dword [ebp - 0x8c]
lea ebx, [ebx + ebx*4]
test byte [esi + ebx*4 + 2], 2
mov dword [ebp - 0x5c], ebx
je 0x469675
mov eax, dword [esi + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x3c], edi
test word [edi + 8], ax
je 0x46966c
push edi
call fcn.0047b560
movsd xmm0, qword [ebp - 0x74]
add esp, 4
mov ecx, dword [ebp + 8]
mov eax, 4
mov word [edi + 8], ax
mov dl, byte [esi + ebx*4]
movzx eax, dl
dec eax
mov byte [ebp - 0x2d], dl
cmp eax, 0x98
ja case.default.0x469686
jmp dword [eax*4 + 0x4703dc]
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0x14], ebx
jmp 0x46faa4
mov ecx, dword [esi + ebx*4 + 4]
mov edx, 4
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 8], dx
mov eax, dword [ebp - 0x14]
cdq
mov dword [esi + ecx*8], eax
mov eax, esi
mov dword [eax + ecx*8 + 4], edx
mov esi, dword [ebp - 0xc]
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov dword [ebp - 0x14], edx
mov edx, 0x80
mov word [ebx + eax*8 + 8], dx
mov edx, dword [ebp - 4]
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esi + ebx*4 + 0xc]
dec eax
mov dword [ebp - 0x3c], edi
cdq
mov dword [edi], eax
mov eax, 4
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov word [edi + 8], ax
mov eax, dword [esi + ebx*4 + 8]
test eax, eax
lea ecx, [eax - 1]
cmove ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ecx*8]
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*4 + 8]
mov eax, dword [ebp - 0x18]
dec edx
mov dword [ebp - 0x14], edx
mov edx, 0x80
mov word [eax + ecx*8 + 8], dx
mov edx, dword [ebp - 4]
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0x18]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, dword [ebp - 0x14]
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 0xc]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je case.default.0x469686
mov ecx, dword [esi + ebx*4 + 4]
test ecx, ecx
jne 0x46fe1b
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xb0]
mov dword [ebp - 0x1c], edx
test edx, edx
je 0x46fe1b
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
dec dword [ecx + 0xb8]
mov dword [ecx + 0xb0], eax
mov eax, dword [ecx + 0x5c]
mov ecx, dword [ebp - 4]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov esi, dword [edx]
mov eax, dword [edx + 0x10]
mov dword [esi + 0xc8], eax
mov eax, dword [edx + 0x38]
mov dword [esi + 0xc4], eax
mov eax, dword [edx + 8]
mov dword [esi + 4], eax
mov eax, dword [edx + 0x30]
mov dword [esi + 0x20], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 8], eax
mov eax, dword [edx + 0x34]
mov dword [esi + 0x1c], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [edx + 0x28]
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 0x44]
mov dword [esi + 0x5c], eax
mov eax, dword [edx + 0x20]
mov esi, dword [ecx + 0x2c]
mov dword [ebp - 0x48], eax
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], esi
cmp dword [eax + ebx*4 + 8], 4
jne 0x46986f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
lea eax, [esi + esi*4]
mov dword [ebp - 0xc], ecx
mov esi, dword [ecx + eax*4 + 8]
mov ecx, dword [ebp + 8]
dec esi
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0xc]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x18], eax
jmp 0x46fe00
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 8]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 4]
cdq
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov dword [edi], eax
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 0x10]
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi], ecx
mov dword [edi + 4], eax
jmp 0x46fdfd
mov edx, dword [ebp - 4]
mov eax, 8
mov word [edi + 8], ax
mov eax, dword [esi + ebx*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [edi], xmm0
jmp 0x46fe00
mov ecx, dword [esi + ebx*4 + 0x10]
mov eax, ecx
mov byte [esi + ebx*4], 0x1b
test ecx, ecx
je 0x4698ed
cmp byte [ecx], 0
je 0x4698e6
nop
inc eax
cmp byte [eax], 0
jne 0x4698e0
sub eax, ecx
and eax, 0x3fffffff
cmp byte [ebp - 0x60], 1
mov dword [esi + ebx*4 + 4], eax
je 0x4699b2
push 0
push 1
push 0xffffffffffffffff
push ecx
push edi
call fcn.00472360
add esp, 0x14
mov dword [ebp - 8], eax
cmp eax, 0x12
je 0x46d551
test byte [edi + 8], 2
je 0x469939
mov al, byte [ebp - 0x60]
cmp byte [edi + 0xa], al
je 0x469939
push dword [ebp - 0x60]
push edi
call fcn.004726b0
add esp, 8
test eax, eax
jne 0x46b8e6
mov eax, 0x800
mov dword [edi + 0x18], 0
or word [edi + 8], ax
cmp byte [esi + ebx*4 + 1], 0xff
jne 0x46999f
mov ecx, dword [esi + ebx*4 + 0x10]
test ecx, ecx
je 0x46999f
mov edx, dword [ebp - 4]
cmp dword [edx + 0x208], 0
je 0x469970
push ecx
push edx
call fcn.00430f60
add esp, 8
jmp 0x46999f
cmp ecx, dword [edx + 0x114]
jb 0x469996
cmp ecx, dword [edx + 0x118]
jae 0x469996
mov eax, dword [edx + 0x110]
mov dword [ecx], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], ecx
jmp 0x46999f
push ecx
call fcn.004134b0
add esp, 4
mov byte [esi + ebx*4 + 1], 0xff
mov eax, dword [edi + 0x10]
mov dword [esi + ebx*4 + 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [esi + ebx*4 + 4], eax
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jg 0x46d554
jmp 0x4699c3
mov edx, dword [ebp - 4]
mov eax, 0xa02
mov word [edi + 8], ax
mov eax, dword [esi + ebx*4 + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + ebx*4 + 4]
mov dword [edi + 0xc], eax
mov al, byte [ebp - 0x60]
mov byte [edi + 0xa], al
jmp 0x46fdfd
mov edx, dword [ebp - 0xc]
mov eax, 1
mov esi, dword [esi + ebx*4 + 0xc]
cmp dword [edx + ebx*4 + 4], 0
mov ecx, dword [edx + ebx*4 + 8]
mov edx, 0x101
cmovne eax, edx
sub esi, ecx
movzx ebx, ax
mov word [edi + 8], bx
test esi, esi
jle 0x46ca6a
mov eax, 0x2460
nop dword [eax + eax]
add edi, 0x28
test word [edi + 8], ax
je 0x469a37
push edi
call fcn.0047b560
add esp, 4
mov eax, 0x2460
dec esi
mov word [edi + 8], bx
test esi, esi
jg 0x469a20
mov edx, dword [ebp - 4]
mov dword [ebp - 0x3c], edi
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov edx, 0xff7f
mov ax, word [edi + 8]
and ax, dx
mov dword [ebp - 0x3c], edi
mov edx, dword [ebp - 4]
or ax, 1
mov word [edi + 8], ax
jmp 0x46fe00
push 0
push 0
push dword [esi + ebx*4 + 4]
push dword [esi + ebx*4 + 0x10]
push edi
call fcn.00472360
mov al, byte [ebp - 0x60]
add esp, 0x14
mov edx, dword [ebp - 4]
mov byte [edi + 0xa], al
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ecx + 0x3c]
lea esi, [eax + eax*4]
movzx eax, word [ebx + esi*8 - 0x20]
test al, 0x12
je 0x469ac9
mov ecx, dword [ebx + esi*8 - 0x1c]
test eax, 0x4000
je 0x469abc
add ecx, dword [ebx + esi*8 - 0x28]
mov eax, dword [ebx + esi*8 - 8]
cmp ecx, dword [eax + 0x58]
jg 0x46d551
mov eax, 0x2460
test word [edi + 8], ax
je 0x469add
push edi
call fcn.0047b560
add esp, 4
movups xmm0, xmmword [ebx + esi*8 - 0x28]
mov ecx, 0x800
movups xmmword [edi], xmm0
mov eax, dword [ebx + esi*8 - 0x18]
mov dword [edi + 0x10], eax
test word [ebx + esi*8 - 0x20], cx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jne 0x469b11
mov ax, word [edi + 8]
mov edx, 0xebff
and ax, dx
or ax, cx
mov word [edi + 8], ax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
jmp 0x46fe03
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov ecx, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x28], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x2460
mov edx, 1
test word [edi + 8], ax
jne 0x469b53
cmp dword [edi + 0x18], 0
je 0x469b69
push edi
call fcn.0047b4b0
mov ecx, dword [ebp - 0x28]
add esp, 4
mov eax, 0x2460
mov edx, 1
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov word [esi + 8], dx
mov dword [esi + 0x18], 0
add esi, 0x28
sub ecx, 1
mov dword [ebp - 0x28], ecx
jne 0x469b47
mov edx, dword [ebp - 4]
mov dword [ebp - 0x3c], edi
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov ecx, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x2c], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x3c], edi
test word [edi + 8], ax
je 0x469be0
push edi
call fcn.0047b560
mov ecx, dword [ebp - 0x2c]
add esp, 4
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, 0x800
test word [esi + 8], ax
jne 0x469c0f
mov ax, word [edi + 8]
mov edx, 0xf3ff
and ax, dx
mov edx, 0x1000
or ax, dx
mov word [edi + 8], ax
movzx eax, word [edi + 8]
test eax, 0x1000
je 0x469cb6
mov ecx, 0xe
bt ax, cx
jae 0x469c67
mov eax, dword [edi]
mov ecx, 1
add eax, dword [edi + 0xc]
test eax, eax
push ecx
cmovle eax, ecx
push eax
push edi
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x469c67
push dword [edi]
push eax
mov eax, dword [edi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.004a2550
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0xc], eax
mov eax, 0xbdff
and word [edi + 8], ax
test byte [edi + 8], 0x12
je 0x469cb3
cmp dword [edi + 0x18], 0
je 0x469c7b
mov eax, dword [edi + 0x10]
cmp eax, dword [edi + 0x14]
je 0x469cb3
mov eax, dword [edi + 0xc]
push 1
add eax, 2
push eax
push edi
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x46b8e6
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 8], ax
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x46ca6a
add edi, 0x28
add esi, 0x28
jmp 0x469bc6
mov eax, dword [esi + ebx*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
mov ebx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x3c], edi
test word [edi + 8], ax
je 0x469cfd
push edi
call fcn.0047b560
add esp, 4
movups xmm0, xmmword [ebx + esi*8]
mov edx, dword [ebp - 4]
movups xmmword [edi], xmm0
mov eax, dword [ebx + esi*8 + 0x10]
mov dword [edi + 0x10], eax
mov eax, 0x800
test word [ebx + esi*8 + 8], ax
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jne 0x469b14
mov ax, word [edi + 8]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov ecx, dword [ebp + 8]
mov word [edi + 8], ax
jmp 0x46fe03
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + ebx*4 + 0xc]
mov ebx, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
movzx ecx, word [ebx + 8]
lea edi, [edx + eax*8]
movzx edx, word [esi + 8]
mov eax, ecx
mov dword [ebp - 0x1c], eax
mov al, dl
or al, cl
mov dword [ebp - 0x3c], edi
test al, 1
je 0x469da6
mov eax, 0x2460
test word [edi + 8], ax
je 0x46d682
push edi
call fcn.0047b560
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfa
test edx, 0x4000
je 0x469df6
mov eax, dword [esi]
mov ecx, 1
add eax, dword [esi + 0xc]
test eax, eax
push ecx
cmovle eax, ecx
push eax
push esi
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x46b8e6
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.004a2550
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
movzx eax, word [ebx + 8]
jmp 0x469dfc
mov eax, dword [ebp - 0x1c]
movzx eax, ax
test eax, 0x4000
je 0x469e14
push ebx
call fcn.00471c60
add esp, 4
test eax, eax
jne 0x46b8e6
test byte [esi + 8], 0x12
jne 0x469e33
push 0
push dword [ebp - 0x88]
push esi
call fcn.004725e0
add esp, 0xc
test eax, eax
jne 0x46b8e6
test byte [ebx + 8], 0x12
jne 0x469e52
push 0
push dword [ebp - 0x88]
push ebx
call fcn.004725e0
add esp, 0xc
test eax, eax
jne 0x46b8e6
mov edx, dword [ebp - 4]
mov ecx, dword [ebx + 0xc]
add ecx, dword [esi + 0xc]
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [edx + 0x58]
jg 0x46d554
xor eax, eax
cmp edi, ebx
sete al
push eax
lea eax, [ecx + 2]
push eax
push edi
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x46b8e6
mov ax, word [edi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [edi + 8], ax
cmp edi, ebx
je 0x469ead
push dword [ebx + 0xc]
push dword [ebx + 0x10]
push dword [edi + 0x10]
call fcn.004a1bf0
add esp, 0xc
push dword [esi + 0xc]
mov eax, dword [edi + 0x10]
push dword [esi + 0x10]
add eax, dword [ebx + 0xc]
push eax
call fcn.004a1bf0
mov eax, dword [edi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [ebp - 0x60]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov dword [ebp - 0x58], esi
test al, 0xc
je 0x469f0d
mov edx, eax
mov dword [ebp - 0x34], edx
jmp 0x469f2c
test al, 0x12
je 0x469f25
push esi
call fcn.00423240
mov ecx, dword [ebp - 0x18]
add esp, 4
movzx edx, ax
mov dword [ebp - 0x34], edx
jmp 0x469f2c
mov dword [ebp - 0x34], 0
mov edi, dword [ebp - 0xc]
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
mov dword [ebp - 0x38], esi
and ecx, 0xc
je 0x469f4c
mov dword [ebp - 0x54], ecx
jmp 0x469f6c
test al, 0x12
je 0x469f65
push esi
call fcn.00423240
movzx edx, word [esi + 8]
add esp, 4
movzx eax, ax
mov dword [ebp - 0x54], eax
jmp 0x469f6e
mov dword [ebp - 0x54], 0
mov edx, eax
mov eax, dword [edi + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x40], edx
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x3c], edi
movzx eax, word [ecx + 8]
mov dword [ebp - 0x1c], eax
mov al, dl
or al, byte [ebp - 0x1c]
test al, 1
jne 0x46a3b1
mov al, byte [ebp - 0x54]
and al, byte [ebp - 0x34]
test al, 4
je 0x46a1be
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x58]
mov ecx, dword [ecx]
mov dword [ebp - 0x28], ecx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov esi, dword [esi + 4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x78], edx
mov byte [ebp - 0x2d], 1
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x469fdc
jmp dword [eax*4 + 0x470640]
push esi
push ecx
lea eax, [ebp - 0x7c]
push eax
call fcn.0043f090
add esp, 0xc
test eax, eax
jne 0x46a1c7
jmp 0x46a197
test ecx, ecx
jne 0x46a02d
cmp esi, 0x80000000
jne 0x46a02d
test edx, edx
jg 0x46a1c7
mov eax, dword [ebp - 0x2c]
jl 0x46a01f
test eax, eax
jae 0x46a1c7
add eax, 0
adc edx, 0x80000000
jmp 0x46a191
neg ecx
adc esi, 0
neg esi
jmp case.0x469fdc.89
push ebx
push 1
push 0
push edx
push dword [ebp - 0x2c]
call fcn.004a09d0
mov dword [ebp - 0x68], ebx
pop ebx
nop
push ebx
push 1
push 0
push esi
push dword [ebp - 0x28]
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xac], edx
call fcn.004a09d0
mov dword [ebp - 0x44], ebx
pop ebx
nop
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov eax, ebx
or eax, dword [ebp - 0xac]
jne 0x46a0ab
mov eax, ecx
or eax, edx
jne 0x46a097
push dword [ebp - 0x20]
push dword [ebp - 0x2c]
push esi
push dword [ebp - 0x28]
call fcn.004a0ab0
jmp 0x46a191
mov ebx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x90]
push ebx
push esi
push edx
push ecx
call fcn.004a0ab0
jmp 0x46a0ce
or ecx, edx
jne 0x46a1c4
push dword [ebp - 0xac]
push ebx
push dword [ebp - 0x44]
push dword [ebp - 0x1c]
call fcn.004a0ab0
mov esi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x68]
mov ecx, eax
mov dword [ebp - 0xcc], edx
add ecx, 0x80000000
mov dword [ebp - 0xd0], eax
adc edx, 0
test edx, edx
ja 0x46a1c4
jb 0x46a0f8
cmp ecx, 0xffffffff
ja 0x46a1c4
push ebx
push esi
push dword [ebp - 0x44]
mov dword [ebp - 0xd0], 0
push dword [ebp - 0x1c]
mov dword [ebp - 0xcc], eax
call fcn.004a0ab0
push edx
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0043f090
add esp, 0xc
test eax, eax
jne 0x46a1c4
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x78], ecx
jmp 0x46a194
mov eax, ecx
or eax, esi
je 0x46a3b1
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x2c]
jne 0x46a161
test eax, eax
jne 0x46a161
cmp edx, 0x80000000
je 0x46a1c7
push esi
push ecx
push edx
push eax
call fcn.004a0920
jmp 0x46a191
mov eax, ecx
or eax, esi
je 0x46a3b1
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
jne 0x46a186
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push dword [ebp - 0x2c]
call fcn.004a0af0
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 4]
mov dword [edi], eax
mov ax, word [edi + 8]
mov dword [edi + 4], ecx
mov ecx, 0xbe04
and ax, cx
or ax, 4
mov word [edi + 8], ax
jmp 0x46fdfa
mov byte [ebp - 0x2d], 0
jmp 0x46a1d0
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x40]
movzx eax, word [ecx + 8]
test al, 8
je 0x46a1e8
movsd xmm0, qword [ecx]
movsd qword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x74]
jmp 0x46a255
test al, 4
je 0x46a208
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004a0ee0
mov eax, dword [ebp - 0x40]
movsd qword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x74]
movzx eax, ax
jmp 0x46a258
test al, 0x12
je 0x46a24b
movzx eax, byte [ecx + 0xa]
movsd xmm2, qword [ebp - 0x74]
push eax
push dword [ecx + 0xc]
lea eax, [ebp - 0x1bc]
movsd qword [ebp - 0x1bc], xmm2
push eax
push dword [ecx + 0x10]
call fcn.00440610
movsd xmm0, qword [ebp - 0x1bc]
add esp, 0x10
movzx eax, word [esi + 8]
movsd qword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x74]
jmp 0x46a258
movsd xmm0, qword [ebp - 0x74]
movsd qword [ebp - 0x24], xmm0
movzx eax, dx
test al, 8
je 0x46a267
movsd xmm1, qword [esi]
movsd qword [ebp - 0x50], xmm1
jmp 0x46a2bc
test al, 4
je 0x46a27f
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004a0ee0
movaps xmm1, xmm0
movsd qword [ebp - 0x50], xmm1
jmp 0x46a2bc
test al, 0x12
je 0x46a2b4
movzx eax, byte [esi + 0xa]
push eax
push dword [esi + 0xc]
lea eax, [ebp - 0x1ec]
movsd qword [ebp - 0x1ec], xmm0
push eax
push dword [esi + 0x10]
call fcn.00440610
movsd xmm1, qword [ebp - 0x1ec]
add esp, 0x10
movsd qword [ebp - 0x50], xmm1
jmp 0x46a2bc
movaps xmm1, xmm0
movsd qword [ebp - 0x50], xmm0
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x46a2cb
jmp dword [eax*4 + 0x470650]
addsd xmm1, qword [ebp - 0x24]
jmp 0x46a351
subsd xmm1, qword [ebp - 0x24]
jmp 0x46a351
mulsd xmm1, qword [ebp - 0x24]
jmp 0x46a351
movsd xmm0, qword [ebp - 0x24]
ucomisd xmm0, qword [ebp - 0x74]
lahf
test ah, 0x44
jnp 0x46a3b1
divsd xmm1, xmm0
jmp 0x46a351
movsd xmm0, qword [ebp - 0x24]
call fcn.004a0e30
movsd xmm0, qword [ebp - 0x50]
mov esi, eax
mov ebx, edx
call fcn.004a0e30
mov ecx, esi
mov dword [ebp - 0x20], eax
or ecx, ebx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
je 0x46a3b1
mov eax, esi
and eax, ebx
cmp eax, 0xffffffff
jne 0x46a33c
mov esi, 1
xor ebx, ebx
push ebx
push esi
push edx
push dword [ebp - 0x20]
call fcn.004a0af0
mov ecx, eax
call fcn.004a0ee0
movaps xmm1, xmm0
movsd qword [ebp - 0x24], xmm1
movsd xmm0, qword [ebp - 0x24]
movsd qword [ebp - 0x50], xmm0
movsd xmm0, qword [ebp - 0x24]
ucomisd xmm0, qword [ebp - 0x50]
lahf
test ah, 0x44
jp 0x46a3b1
mov ax, word [edi + 8]
mov ecx, 0xbe08
and ax, cx
movsd qword [edi], xmm1
or ax, 8
mov word [edi + 8], ax
mov eax, dword [ebp - 0x54]
or al, byte [ebp - 0x34]
test al, 8
jne 0x46ca6a
cmp byte [ebp - 0x2d], 0
jne 0x46ca6a
push edi
call fcn.00471010
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfa
mov eax, 0x2460
test word [edi + 8], ax
jne 0x469d95
mov edx, dword [ebp - 4]
mov eax, 1
mov word [edi + 8], ax
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
test eax, eax
je case.default.0x469686
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x46a406
push 0
push 0
push eax
call fcn.0047cd60
mov edx, dword [ebp - 4]
add esp, 0xc
jmp 0x46fdfd
mov edx, 4
mov dword [eax], 0
mov word [eax + 8], dx
mov edx, dword [ebp - 4]
mov dword [eax + 4], 0
jmp 0x46fe00
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x18]
movzx ecx, byte [esi + ebx*4 + 3]
mov dword [ebp - 0x20], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x4c], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x16c], eax
mov eax, dword [esi + ebx*4 + 8]
mov esi, edi
mov edi, dword [ebp - 0x3c]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [ebp - 0x1c], eax
test ecx, ecx
je 0x46a4a1
mov edi, 0x1000
mov dword [edx + eax*4], esi
test word [esi + 8], di
mov edi, dword [ebp - 0x3c]
je 0x46a48e
push esi
call fcn.00472020
add esp, 4
test eax, eax
jne 0x46b8e6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x4c]
inc eax
add esi, 0x28
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jl 0x46a463
mov esi, dword [ebp - 0x16c]
jmp 0x46a4a4
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0xc]
push edx
push ecx
mov eax, dword [eax + ebx*4 + 0x10]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x160], eax
mov ax, word [esi + 8]
and ax, word [ebp - 0xf0]
or ax, 1
mov word [esi + 8], ax
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x48]
mov byte [ebp - 0x153], 0
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x64]
mov dword [esi + 0x24], eax
lea eax, [ebp - 0x16c]
push eax
mov eax, dword [ebp - 0x168]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [ebp - 0x153], 0
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x64], eax
je 0x46a594
cmp dword [ebp - 0x158], 0
je 0x46a57f
mov ecx, dword [ebp - 0x16c]
test ecx, ecx
jne 0x46a52f
xor eax, eax
jmp 0x46a560
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x46a54c
cmp byte [ecx + 0xa], 1
jne 0x46a54c
mov eax, dword [ecx + 0x10]
jmp 0x46a560
test dl, 1
je 0x46a555
xor eax, eax
jmp 0x46a560
push 1
push ecx
call fcn.0047a370
add esp, 8
push eax
mov eax, dword [ebp + 8]
push 0x4c4914
add eax, 0x2c
push esi
push eax
call fcn.00462d70
mov eax, dword [ebp - 0x158]
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
push dword [eax + ebx*4 + 4]
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.004693e0
add esp, 0xc
mov eax, dword [ebp - 0x16c]
test byte [eax + 8], 2
je 0x46a5bd
mov cl, byte [ebp - 0x60]
cmp byte [eax + 0xa], cl
je 0x46a5bd
push dword [ebp - 0xa0]
push eax
call fcn.004726b0
mov eax, dword [ebp - 0x16c]
add esp, 8
movzx edx, word [eax + 8]
test dl, 0x12
je 0x46fdf8
mov ecx, dword [eax + 0xc]
test edx, 0x4000
je 0x46a5d7
add ecx, dword [eax]
mov eax, dword [eax + 0x20]
mov edx, esi
cmp ecx, dword [eax + 0x58]
jg 0x46d554
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [esi + ebx*4 + 8]
mov dword [ebp - 0x20], ecx
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov al, byte [edx + 8]
or al, byte [ecx + 8]
mov dword [ebp - 0x3c], edi
test al, 1
je 0x46a648
mov eax, 0x2460
test word [edi + 8], ax
je 0x46a637
push edi
call fcn.0047b560
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfd
mov edx, dword [ebp - 4]
mov eax, 1
mov word [edi + 8], ax
jmp 0x46fdfd
push edx
call fcn.00470f70
push dword [ebp - 0x20]
mov esi, edx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], esi
call fcn.00470f70
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x34], ecx
mov bl, byte [eax + ebx*4]
cmp bl, 0x55
jne 0x46a687
mov ecx, dword [ebp - 0xb8]
and ecx, dword [ebp - 0x34]
and esi, edx
jmp 0x46a761
cmp bl, 0x56
jne 0x46a69c
mov ecx, dword [ebp - 0xb8]
or ecx, dword [ebp - 0x34]
or esi, edx
jmp 0x46a761
mov eax, ecx
or eax, edx
je 0x46a75b
test edx, edx
jg 0x46a6d7
jl 0x46a6b0
test ecx, ecx
jae 0x46a6cc
mov al, 0xaf
sub al, bl
mov bl, al
cmp edx, 0xffffffff
jl 0x46a6d7
jg 0x46a6c2
cmp ecx, 0xffffffc0
jbe 0x46a6d7
neg ecx
mov dword [ebp - 0x34], ecx
adc edx, 0
neg edx
test edx, edx
jl 0x46a702
jg 0x46a6d7
cmp ecx, 0x40
jb 0x46a702
test esi, esi
jg 0x46a6f2
jl 0x46a6e6
cmp dword [ebp - 0xb8], 0
jae 0x46a6f2
cmp bl, 0x57
je 0x46a6f2
or ecx, 0xffffffff
or esi, ecx
jmp 0x46a761
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jmp 0x46a761
movq xmm1, qword [ebp - 0xb8]
movd xmm0, ecx
cmp bl, 0x57
jne 0x46a724
psllq xmm1, xmm0
movq qword [ebp - 0x24], xmm1
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jmp 0x46a761
psrlq xmm1, xmm0
movq qword [ebp - 0x24], xmm1
test esi, esi
jg 0x46a6fa
jl 0x46a73c
cmp dword [ebp - 0xb8], 0
jae 0x46a6fa
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [ebp - 0x34]
or edx, 0xffffffff
call fcn.004a0bb0
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
or ecx, eax
or esi, edx
jmp 0x46a761
mov ecx, dword [ebp - 0xb8]
mov ax, word [edi + 8]
mov edx, dword [ebp - 4]
mov dword [edi], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edi + 4], esi
or ax, 4
mov word [edi + 8], ax
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00470f70
mov dword [esi], eax
mov ecx, 0xbe04
mov ax, word [esi + 8]
add esp, 4
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov edx, dword [ebp - 4]
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x46a822
test al, 8
jne 0x46a7f2
test al, 2
je 0x46a7fb
push 1
push esi
call fcn.0041bce0
add esp, 8
jmp 0x46a7fb
push esi
call fcn.00471010
add esp, 4
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x46a822
mov esi, dword [ebp - 0xc]
mov eax, dword [esi + ebx*4 + 8]
test eax, eax
je 0x46fee9
mov edx, dword [ebp - 4]
lea ecx, [eax - 1]
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov edx, dword [ebp - 4]
and ecx, 0xbe04
or ecx, 4
mov word [esi + 8], cx
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 4
lea eax, [edx + eax*8]
je case.default.0x469686
push eax
call fcn.00472130
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x46a8c0
mov eax, dword [esi]
mov ecx, 1
add eax, dword [esi + 0xc]
test eax, eax
push ecx
cmovle eax, ecx
push eax
push esi
call fcn.00471e80
add esp, 0xc
test eax, eax
je 0x46a89f
mov dword [ebp - 8], 7
jmp 0x46a8c7
push dword [esi]
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push 0
push eax
call fcn.004a2550
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0xc]
push dword [ebp - 0x88]
movzx eax, byte [eax + ebx*4 + 8]
push eax
push esi
call fcn.00471b10
mov edx, dword [ebp - 4]
add esp, 0xc
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx ecx, word [esi + 8]
mov eax, ecx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x2c], eax
movzx eax, word [edx + 8]
mov dword [ebp - 0x34], eax
or al, cl
test al, 1
mov eax, dword [ebp - 0xc]
mov al, byte [eax + ebx*4 + 3]
je 0x46a999
test al, al
jns 0x46a951
mov ecx, dword [ebp - 0x34]
xor edi, edi
mov eax, ecx
and eax, dword [ebp - 0x2c]
bt ax, di
mov edi, dword [ebp - 0x3c]
jae 0x46a947
test ecx, 0x100
jne 0x46a947
xor eax, eax
jmp 0x46ab92
mov eax, 1
jmp 0x46ab92
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
test al, 0x20
je 0x46a984
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [edi + 8]
and ax, cx
mov dword [ebp - 0x3c], edi
or ax, 1
mov word [edi + 8], ax
jmp 0x46fdfd
test al, 0x10
je 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
and al, 0x47
cmp al, 0x43
jb 0x46aab9
and cl, 0xe
cmp cl, 2
jne 0x46aa22
mov al, byte [esi + 0xa]
mov byte [ebp - 0xec], al
lea eax, [ebp - 0x288]
push dword [ebp - 0xec]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call fcn.00440610
add esp, 0x10
test eax, eax
je 0x46aa1f
push dword [ebp - 0xec]
lea eax, [ebp - 0x1c4]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call fcn.00440c40
movzx edx, word [esi + 8]
add esp, 0x10
test eax, eax
jne 0x46aa0c
mov eax, dword [ebp - 0x1c4]
or edx, 4
mov ecx, dword [ebp - 0x1c0]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x46aa1b
movsd xmm0, qword [ebp - 0x288]
or edx, 8
movsd qword [esi], xmm0
mov word [esi + 8], dx
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 8]
and al, 0xe
cmp al, 2
jne 0x46ab00
mov al, byte [edx + 0xa]
mov byte [ebp - 0xf4], al
lea eax, [ebp - 0x290]
push dword [ebp - 0xf4]
push dword [edx + 0xc]
push eax
push dword [edx + 0x10]
call fcn.00440610
add esp, 0x10
test eax, eax
je 0x46ab00
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x1cc]
push dword [ebp - 0xf4]
push dword [eax + 0xc]
push ecx
push dword [eax + 0x10]
call fcn.00440c40
mov edx, dword [ebp - 0x38]
add esp, 0x10
movzx ecx, word [edx + 8]
mov dword [ebp - 0x20], ecx
test eax, eax
jne 0x46aaa4
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x1c8]
mov dword [edx], eax
mov eax, dword [ebp - 0x20]
or eax, 4
mov dword [edx + 4], ecx
mov word [edx + 8], ax
jmp 0x46ab00
movsd xmm0, qword [ebp - 0x290]
or ecx, 8
movsd qword [edx], xmm0
mov word [edx + 8], cx
jmp 0x46ab00
cmp al, 0x42
jne 0x46ab00
movzx eax, word [edx + 8]
test cl, 2
jne 0x46aae7
movzx eax, word [edx + 8]
test cl, 0xc
je 0x46aae7
push 1
push dword [ebp - 0x88]
push esi
call fcn.004725e0
mov edx, dword [ebp - 0x38]
add esp, 0xc
movzx eax, word [edx + 8]
test al, 2
jne 0x46ab00
test al, 0xc
je 0x46ab00
push 1
push dword [ebp - 0x88]
push edx
call fcn.004725e0
add esp, 0xc
mov eax, 0x4000
test word [esi + 8], ax
je 0x46ab50
mov eax, dword [esi]
mov ecx, 1
add eax, dword [esi + 0xc]
test eax, eax
push ecx
cmovle eax, ecx
push eax
push esi
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x46ab49
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.004a2550
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
and dword [ebp - 0x2c], 0xbfff
mov eax, dword [ebp - 0x38]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x46ab71
push eax
call fcn.00471c60
mov eax, dword [ebp - 0x38]
add esp, 4
and dword [ebp - 0x34], 0xbfff
mov edx, dword [ebp - 4]
cmp byte [edx + 0x40], 0
jne 0x46b8e9
mov ecx, dword [ebp - 0xc]
push dword [ecx + ebx*4 + 0x10]
push esi
push eax
call fcn.004575d0
mov edx, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx + ebx*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x46aba1
jmp dword [ecx*4 + 0x470660]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x46abd7
xor ecx, ecx
test eax, eax
setne cl
jmp 0x46abd7
mov ecx, eax
jmp 0x46abd4
xor ecx, ecx
test eax, eax
setle cl
jmp 0x46abd7
xor ecx, ecx
test eax, eax
setg cl
jmp 0x46abd7
mov ecx, eax
not ecx
shr ecx, 0x1f
mov eax, dword [ebp - 0xc]
test byte [eax + ebx*4 + 3], 0x20
je 0x46ac24
mov eax, dword [eax + ebx*4 + 8]
mov ebx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ebx, 0xbe04
mov dword [edi], ecx
mov ax, word [edi + 8]
and ax, bx
mov dword [edi + 4], 0
or ax, 4
mov dword [ebp - 0x3c], edi
mov word [edi + 8], ax
mov eax, dword [ebp - 0x2c]
mov word [esi + 8], ax
mov eax, dword [ebp - 0x34]
mov word [edx + 8], ax
mov edx, dword [ebp - 4]
jmp 0x46fdfa
test ecx, ecx
je 0x46ac30
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
mov word [esi + 8], ax
mov eax, dword [ebp - 0x34]
mov word [edx + 8], ax
mov edx, dword [ebp - 4]
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 0x10]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x98], eax
jmp 0x46fe00
test byte [esi + ebx*4 + 3], 1
mov ecx, 0
mov eax, dword [ebp - 0x98]
mov edx, dword [esi + ebx*4 + 0x10]
cmove eax, ecx
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [esi + ebx*4 + 8]
xor esi, esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x46ad07
lea ebx, [edx + 0x14]
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x46aca5
mov ecx, dword [eax + esi*4]
jmp 0x46aca7
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x18]
push dword [ebx]
mov al, byte [esi + eax]
mov byte [ebp - 0x2d], al
mov eax, dword [ebp - 0x20]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [ebp - 0x4c]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.004575d0
add esp, 0xc
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x46acf9
mov edx, dword [ebp - 0x44]
inc esi
add ebx, 4
cmp esi, dword [ebp - 0x1c]
jl 0x46ac96
mov edx, dword [ebp - 4]
mov dword [ebp - 0x98], eax
jmp 0x46fdfa
cmp byte [ebp - 0x2d], 0
je 0x46ad07
neg eax
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 4]
mov dword [ebp - 0x98], 0
jmp 0x46fdfa
mov eax, dword [ebp - 0xbc]
test eax, eax
jns 0x46ad35
mov eax, dword [esi + ebx*4 + 4]
lea edx, [eax - 1]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
jmp 0x46fe00
jne 0x46ad49
mov eax, dword [esi + ebx*4 + 8]
lea edx, [eax - 1]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 0xc]
lea edx, [eax - 1]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 4]
mov esi, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
lea eax, [esi + eax*8]
je 0x46ad76
mov esi, 6
jmp 0x46ad8c
push eax
call fcn.00470f70
add esp, 4
or eax, edx
je 0x46ad8a
mov esi, 3
jmp 0x46ad8c
xor esi, esi
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x46adaf
mov eax, 0x4c2086
mov ecx, 0x4c207a
jmp 0x46add2
push eax
call fcn.00470f70
add esp, 4
or eax, edx
je 0x46adc8
mov eax, 0x4c2085
mov ecx, 0x4c2079
jmp 0x46add2
mov eax, 0x4c2084
mov ecx, 0x4c2078
cmp byte [edi + ebx*4], 0x48
jne 0x46addd
lea eax, [ecx + esi]
jmp 0x46addf
add eax, esi
mov esi, dword [ebp - 0xc]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx ecx, word [edi + 8]
mov dword [ebp - 0x3c], edi
cmp dl, 2
jne 0x46ae12
mov edx, dword [ebp - 4]
and ecx, 0xbe01
or ecx, 1
mov word [edi + 8], cx
jmp 0x46fdfd
movzx eax, dl
and ecx, 0xbe04
cdq
or ecx, 4
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov dword [edi], eax
mov word [edi + 8], cx
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x3c], edi
test word [edi + 8], ax
je 0x46ae63
push edi
call fcn.0047b560
add esp, 4
jmp 0x46ae6c
mov eax, 1
mov word [edi + 8], ax
test byte [esi + 8], 1
jne 0x46ca6a
mov eax, 4
push esi
mov word [edi + 8], ax
call fcn.00470f70
add esp, 4
or eax, edx
jne 0x46aea0
mov edx, dword [ebp - 4]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46fdfa
mov edx, dword [ebp - 4]
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x3c], edi
test word [edi + 8], ax
je 0x46aeee
push edi
call fcn.0047b560
add esp, 4
jmp 0x46aef7
mov eax, 1
mov word [edi + 8], ax
test byte [esi + 8], 1
jne 0x46ca6a
mov eax, 4
push esi
mov word [edi + 8], ax
call fcn.00470f70
not edx
not eax
mov dword [edi + 4], edx
add esp, 4
mov edx, dword [ebp - 4]
mov dword [edi], eax
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ecx + 0xc8]
mov edx, dword [ebp - 4]
cmp byte [eax + ecx], 0
je 0x46af44
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov byte [eax + ecx], 1
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + ecx*8 + 8]
test al, 1
je 0x46af69
mov eax, dword [esi + ebx*4 + 0xc]
jmp 0x46d8b6
test al, 8
je 0x46af77
mov eax, dword [ebp - 0x18]
movsd xmm0, qword [eax + ecx*8]
jmp 0x46afc6
test al, 4
je 0x46af8f
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
call fcn.004a0ee0
mov dl, byte [ebp - 0x2d]
jmp 0x46afc6
test al, 0x12
je 0x46afd8
mov edx, dword [ebp - 0x18]
movsd qword [ebp - 0x1d4], xmm0
movzx eax, byte [edx + ecx*8 + 0xa]
push eax
push dword [edx + ecx*8 + 0xc]
lea eax, [ebp - 0x1d4]
push eax
push dword [edx + ecx*8 + 0x10]
call fcn.00440610
movsd xmm0, qword [ebp - 0x1d4]
add esp, 0x10
mov dl, byte [esi + ebx*4]
ucomisd xmm0, qword [ebp - 0x74]
lahf
test ah, 0x44
jnp 0x46afd8
mov eax, 1
jmp 0x46afda
xor eax, eax
cmp dl, 0x2e
jne 0x46d8b6
xor eax, 1
jmp 0x46d8b6
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je case.default.0x469686
mov edx, dword [esi + ebx*4 + 8]
dec edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne case.default.0x469686
mov edx, dword [esi + ebx*4 + 8]
dec edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
jmp 0x46fe00
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov esi, dword [esi + ebx*4 + 8]
mov dword [ebp - 0x58], esi
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ecx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], edi
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x40], edx
cmp byte [edx + 0x1a], 0
mov eax, dword [edx + 0x50]
mov ecx, dword [edx]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x38], ecx
je 0x46b078
push edx
call fcn.0042efd0
jmp 0x46b088
test ecx, ecx
je 0x46b0a0
cmp byte [ecx + 0x49], 1
je 0x46b0a0
push edx
call fcn.0042f030
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x38]
jmp 0x46b0a7
mov dword [ebp - 8], 0
mov ebx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
cmp eax, dword [ebx + 0x48]
mov ebx, dword [ebp - 0x5c]
je 0x46b244
cmp byte [edx + 0x19], 0
je 0x46b0fe
test ecx, ecx
jne 0x46b0e2
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8 + 0xc]
mov dword [edx + 0x44], edi
mov dword [edx + 0x40], edi
mov esi, dword [ecx + eax*8 + 0x10]
mov dword [edx + 0x4c], esi
jmp 0x46b1d2
mov ax, word [edi + 8]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [edi + 8], ax
movzx eax, ax
jmp 0x46b53f
test byte [edx + 0x1c], 4
jne 0x46b157
cmp byte [ecx + 0x49], 1
je 0x46b117
xorps xmm0, xmm0
movlpd qword [ebp - 0x11c], xmm0
jmp 0x46b13b
push ecx
call fcn.0042e5f0
mov ecx, dword [ebp - 0x38]
add esp, 4
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [ebp - 0x118], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x38]
movzx ecx, word [ecx + 0x28]
mov esi, dword [eax + 0x20]
mov dword [edx + 0x4c], esi
mov eax, dword [ebp - 0x11c]
mov dword [edx + 0x40], eax
mov edx, eax
mov eax, ecx
jmp 0x46b1b3
cmp word [ecx + 0x2c], 0
jne 0x46b19d
movsx eax, word [ecx + 0x4c]
mov edi, dword [ecx + eax*4 + 0x78]
movzx esi, word [ecx + eax*2 + 0x4e]
mov eax, dword [ebp - 0x38]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
push edx
push edi
call fcn.0041e9e0
mov ecx, dword [ebp - 0x38]
add esp, 0xc
or byte [ecx + 0x48], 2
mov edx, dword [ecx + 0x24]
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x38]
mov dword [ecx + 0x40], edx
movzx eax, word [esi + 0x28]
mov esi, dword [esi + 0x20]
mov dword [ecx + 0x4c], esi
movzx edi, ax
mov ecx, edx
mov eax, dword [ebp - 0x40]
cmp edx, edi
cmova edx, edi
mov dword [eax + 0x44], edx
mov edx, dword [ebp - 4]
cmp ecx, dword [edx + 0x58]
ja 0x46d554
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x3c], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x46b1ee
movzx ecx, al
mov al, 1
mov dword [ebp - 0xc0], ecx
jmp 0x46b207
lea eax, [ebp - 0xc0]
push eax
push esi
call fcn.00452ab0
mov ecx, dword [ebp - 0xc0]
add esp, 8
mov edx, dword [ebp - 0x40]
movzx eax, al
mov dword [edx + 0x48], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
cmp ecx, 0x18003
ja 0x46fef5
cmp ecx, dword [edx + 0x40]
ja 0x46fef5
mov esi, dword [ebp - 0x58]
cmp edi, ecx
jae 0x46b250
mov dword [edx + 0x4c], 0
mov dword [edx + 0x44], 0
jmp 0x46b250
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x46b451
mov edi, dword [ebp - 0x54]
mov eax, dword [edx + 0x48]
mov edx, dword [edi]
cmp eax, edx
jae 0x46b425
mov esi, dword [ebp - 0x40]
mov ecx, dword [esi + 0x4c]
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x46b2c2
xorps xmm0, xmm0
lea eax, [ebp - 0x2c4]
push eax
movups xmmword [ebp - 0x2c4], xmm0
movups xmmword [ebp - 0x2b4], xmm0
movq qword [ebp - 0x2a4], xmm0
mov eax, dword [esi + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push dword [edi]
push ecx
push dword [ebp - 0x38]
call fcn.00471da0
mov edx, eax
add esp, 0x14
mov dword [ebp - 8], edx
test edx, edx
jne 0x46eec5
mov eax, dword [ebp - 0x2b4]
mov edx, dword [edi]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x48]
movzx ecx, word [esi + 0x16]
mov esi, dword [ebp - 0x34]
add esi, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x34]
mov edi, dword [edi + ecx*4]
add eax, edx
mov edx, dword [ebp - 0x40]
add edx, 0x54
mov dword [ebp - 0x28], eax
lea edx, [edx + ecx*4]
mov dword [ebp - 0x44], edx
mov al, byte [esi]
cmp al, 0x80
jae 0x46b2f7
movzx eax, al
inc esi
mov dword [ebp - 0xc4], eax
jmp 0x46b318
lea eax, [ebp - 0xc4]
push eax
push esi
call fcn.00452ab0
mov ecx, dword [ebp - 0x1c]
add esp, 8
mov edx, dword [ebp - 0x44]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xc4]
mov dword [edx], eax
cmp eax, 0xc
jb 0x46b326
add eax, 0xfffffff4
shr eax, 1
jmp 0x46b32d
movzx eax, byte [eax + 0x4c2038]
add edi, eax
mov dword [ebp - 0xc0], edi
cmp edi, eax
jb 0x46b355
mov eax, dword [ebp - 0x54]
inc ecx
add edx, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x44], edx
mov dword [eax + ecx*4], edi
cmp ecx, dword [ebp - 0x58]
jg 0x46b359
cmp esi, dword [ebp - 0x28]
jb 0x46b2e5
jmp 0x46b359
mov esi, dword [ebp - 0x28]
inc esi
mov edx, dword [ebp - 0x40]
mov eax, esi
sub eax, dword [ebp - 0x34]
cmp dword [edx + 0x4c], 0
mov word [edx + 0x16], cx
mov dword [edx + 0x48], eax
jne 0x46b3a1
test dword [ebp - 0x2bc], 0x2460
jne 0x46b383
cmp dword [ebp - 0x2ac], 0
je 0x46b395
lea eax, [ebp - 0x2c4]
push eax
call fcn.0047b4b0
mov edx, dword [ebp - 0x40]
add esp, 4
mov eax, 1
mov word [ebp - 0x2bc], ax
cmp esi, dword [ebp - 0x28]
jb 0x46b3b5
ja 0x46ff1e
cmp edi, dword [edx + 0x40]
jne 0x46ff1e
cmp edi, dword [edx + 0x40]
ja 0x46ff1e
mov esi, dword [ebp - 0x58]
movzx eax, word [edx + 0x16]
mov edi, dword [ebp - 0x2c]
cmp eax, esi
jg 0x46b451
mov eax, dword [ebp - 0xc]
cmp byte [eax + ebx*4 + 1], 0xf8
jne 0x46b42a
mov esi, dword [eax + ebx*4 + 0x10]
mov eax, 0x2460
test word [edi + 8], ax
je 0x46b3f2
push edi
call fcn.0047b560
add esp, 4
movups xmm0, xmmword [esi]
mov ecx, 0x800
movups xmmword [edi], xmm0
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
test word [esi + 8], cx
jne 0x46b53b
mov ax, word [edi + 8]
mov edx, 0xebff
and ax, dx
or ax, cx
mov word [edi + 8], ax
jmp 0x46b53b
mov edx, dword [ebp - 0x40]
jmp 0x46b3c1
mov eax, 0x2460
test word [edi + 8], ax
je 0x46b443
push edi
call fcn.0047b560
add esp, 4
jmp 0x46b53b
mov eax, 1
mov word [edi + 8], ax
jmp 0x46b53b
mov eax, 0x2460
test word [edi + 8], ax
je 0x46b465
push edi
call fcn.0047b560
add esp, 4
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov ecx, dword [esi + eax*4 + 0x54]
mov eax, dword [esi + 0x44]
cmp eax, dword [edx + ebx*4 + 4]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0xc4], ecx
jb 0x46b4a3
mov eax, dword [esi + 0x4c]
push edi
push ecx
mov ecx, dword [ebp - 0x58]
add eax, dword [edx + ecx*4]
push eax
call fcn.00473210
add esp, 0xc
jmp 0x46b535
mov eax, dword [ebp - 0xc]
mov al, byte [eax + ebx*4 + 3]
test al, 0xc0
je 0x46b4bc
cmp ecx, 0xc
jb 0x46b4b8
test cl, 1
je 0x46b4d3
test al, al
js 0x46b4d3
cmp ecx, 0xc
jb 0x46b4c8
lea edx, [ecx - 0xc]
shr edx, 1
jmp 0x46b4cf
movzx edx, byte [ecx + 0x4c2038]
test edx, edx
jne 0x46b4ee
xor edx, edx
lea eax, [ebp - 0x11c]
cmp ecx, 0xd
push edi
push ecx
cmova eax, edx
push eax
call fcn.00473210
add esp, 0xc
jmp 0x46b535
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp - 0x58]
shr eax, 2
not eax
push edi
and eax, 1
push eax
mov eax, dword [ebp - 0x54]
push edx
push dword [eax + ecx*4]
push dword [ebp - 0x38]
call fcn.00471da0
mov edx, eax
add esp, 0x14
mov dword [ebp - 8], edx
test edx, edx
jne 0x46eec5
push edi
push dword [ebp - 0x20]
push dword [edi + 0x10]
call fcn.00473210
mov eax, 0xefff
add esp, 0xc
and word [edi + 8], ax
mov al, byte [ebp - 0x60]
mov byte [edi + 0xa], al
movzx eax, word [edi + 8]
movzx ecx, ax
test ecx, 0x1000
je 0x46eec5
mov ebx, dword [edi + 0x10]
test ebx, ebx
je 0x46eec5
mov edi, dword [edi + 0xc]
mov esi, ecx
mov edx, dword [ebp - 0x2c]
and esi, 0x12
lea eax, [edi + 2]
cmp dword [edx + 0x18], eax
jge 0x46b585
push 0
push eax
push edx
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x46b8e6
mov edx, dword [ebp - 0x2c]
jmp 0x46b592
mov eax, dword [edx + 0x14]
and ecx, 0xd
mov dword [edx + 0x10], eax
mov word [edx + 8], cx
push edi
push ebx
push dword [edx + 0x10]
call fcn.004a1bf0
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov edx, dword [ebp - 4]
or esi, 0x200
mov eax, dword [ecx + 0x10]
mov byte [edi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [eax + edi + 1], 0
mov edi, dword [ebp - 0x3c]
mov word [ecx + 8], si
jmp 0x46fdfa
mov eax, dword [ebp - 0xc]
mov esi, dword [esi + ebx*4 + 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + ebx*4 + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov al, byte [esi]
mov byte [ebp - 0xf8], al
test al, al
je 0x46f6aa
mov edi, dword [ebp - 0x88]
push edi
push dword [ebp - 0xf8]
lea esi, [esi + 1]
push ebx
call fcn.0041bc80
mov al, byte [esi]
add esp, 0xc
add ebx, 0x28
mov byte [ebp - 0xf8], al
test al, al
jne 0x46b5f0
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
jmp 0x46fdfa
mov edx, dword [ebp - 0xc]
xor eax, eax
mov edi, dword [ebp - 0x18]
xorps xmm0, xmm0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x2c], eax
mov eax, dword [edx + ebx*4 + 4]
mov esi, dword [esi + ebx*4 + 0x10]
movlpd qword [ebp - 0x24], xmm0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + ebx*4 + 8]
mov dword [ebp - 0x1c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x57]
mov byte [ebp - 0x2d], al
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x46b6a8
mov al, byte [esi]
mov edi, ecx
mov byte [ebp - 0xfc], al
nop dword [eax + eax]
push dword [ebp - 0x88]
push dword [ebp - 0xfc]
push edi
call fcn.0041bc80
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
mov byte [ebp - 0xfc], al
add edi, 0x28
test al, al
jne 0x46b680
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
movzx eax, word [ebx + 8]
test al, 1
je 0x46b6f4
xor esi, esi
mov dword [ebx + 0x1c], esi
movzx edi, byte [esi + 0x4c2038]
movzx eax, word [ebx + 8]
test eax, 0x4000
je 0x46b80e
mov eax, dword [ebp - 0x34]
or eax, dword [ebp - 0x54]
je 0x46b807
push ebx
call fcn.00471c60
add esp, 4
jmp 0x46b80e
test al, 4
je 0x46b7cc
mov esi, dword [ebx + 4]
mov edx, dword [ebx]
test esi, esi
jg 0x46b72e
jl 0x46b70b
test edx, edx
jae 0x46b72e
cmp esi, 0xffff8000
jg 0x46b721
jl 0x46b71a
cmp edx, 1
jae 0x46b721
mov esi, 6
jmp 0x46b6c1
mov ecx, edx
mov eax, esi
neg ecx
adc eax, 0
neg eax
jmp 0x46b732
mov ecx, edx
mov eax, esi
test eax, eax
ja 0x46b7ac
jb 0x46b73d
cmp ecx, 0x7f
ja 0x46b764
mov eax, edx
xor edi, edi
and eax, 1
cmp eax, edx
jne 0x46b75a
cmp edi, esi
jne 0x46b75a
cmp byte [ebp - 0x2d], 4
jb 0x46b75a
lea esi, [ecx + 8]
jmp 0x46b7f1
mov esi, 1
jmp 0x46b7f1
test eax, eax
ja 0x46b7ac
jb 0x46b772
cmp ecx, 0x7fff
ja 0x46b77c
mov esi, 2
jmp 0x46b6c1
test eax, eax
ja 0x46b7ac
jb 0x46b78a
cmp ecx, 0x7fffff
ja 0x46b794
mov esi, 3
jmp 0x46b6c1
test eax, eax
ja 0x46b7ac
jb 0x46b7a2
cmp ecx, 0x7fffffff
ja 0x46b7ac
mov esi, 4
jmp 0x46b6c1
cmp eax, 0x7fff
ja 0x46b71a
jb 0x46b7c2
cmp ecx, 0xffffffff
ja 0x46b71a
mov esi, 5
jmp 0x46b6c1
test al, 8
je 0x46b7da
mov esi, 7
jmp 0x46b6c1
mov ecx, dword [ebx + 0xc]
test eax, 0x4000
je 0x46b7e6
add ecx, dword [ebx]
shr eax, 1
lea esi, [ecx + 6]
and eax, 1
lea esi, [eax + esi*2]
mov dword [ebx + 0x1c], esi
cmp esi, 0xc
jb 0x46b6c4
lea edi, [esi - 0xc]
shr edi, 1
jmp 0x46b6cb
mov ecx, dword [ebx]
add dword [ebp - 0x2c], ecx
sub edi, ecx
mov eax, edi
cdq
add dword [ebp - 0x34], eax
adc dword [ebp - 0x54], edx
cmp esi, 0x7f
ja 0x46b823
mov edx, 1
jmp 0x46b83a
xor ecx, ecx
xor edx, edx
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x46b83a
cmp edx, 9
jl 0x46b827
mov ecx, dword [ebp - 0x40]
sub ebx, 0x28
add ecx, edx
mov dword [ebp - 0x40], ecx
cmp ebx, dword [ebp - 0x1c]
jae 0x46b6b7
cmp ecx, 0x7e
jle 0x46b89a
mov eax, ecx
xor edi, edi
cdq
mov ecx, eax
nop word [eax + eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x46b873
cmp edi, 9
jl 0x46b860
mov eax, dword [ebp - 0x40]
add eax, edi
xor esi, esi
mov dword [ebp - 0x40], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x46b893
cmp esi, 9
jl 0x46b880
mov ecx, dword [ebp - 0x40]
cmp edi, esi
jge 0x46b89e
inc ecx
mov dword [ebp - 0x40], ecx
mov eax, ecx
cdq
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 4]
mov edi, ebx
add edi, dword [ebp - 0x34]
mov ecx, esi
mov dword [ebp - 0x68], edi
adc ecx, dword [ebp - 0x54]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x46d551
jl 0x46b8cb
cmp edi, eax
ja 0x46d551
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x68]
cmp dword [edi + 0x18], eax
jge 0x46b915
push 0
push eax
push edi
call fcn.00471e80
add esp, 0xc
test eax, eax
je 0x46b920
mov edx, dword [ebp - 4]
mov bl, byte [ebp - 0xd]
mov eax, dword [ebp + 8]
push str.out_of_memory
push edx
add eax, 0x2c
mov byte [edx + 0x40], 1
push eax
call fcn.00462d70
mov eax, dword [ebp + 8]
mov edx, 7
add esp, 0xc
mov dword [ebp - 8], edx
jmp 0x470136
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x34], ecx
cmp eax, 0x80
jae 0x46b939
mov byte [ecx], al
mov eax, 1
jmp 0x46b947
push esi
push ebx
push ecx
call fcn.0045e500
mov ecx, dword [ebp - 0x34]
add esp, 0xc
mov esi, dword [ebp - 0x1c]
movzx edi, al
add esi, 0xc
mov ebx, dword [esi + 0x10]
lea eax, [edi + ecx]
cmp ebx, 0x80
jae 0x46b967
mov byte [eax], bl
mov eax, 1
jmp 0x46b976
push 0
push ebx
push eax
call fcn.0045e500
mov ecx, dword [ebp - 0x34]
add esp, 0xc
add ecx, dword [ebp - 0x40]
movzx eax, al
add edi, eax
mov dword [ebp - 0x20], ecx
lea eax, [ebx - 1]
cmp eax, 6
ja 0x46b9bc
mov edx, dword [esi - 0xc]
mov eax, dword [esi - 8]
cmp ebx, 0xc
jb 0x46b99b
lea ecx, [ebx - 0xc]
shr ecx, 1
jmp 0x46b9a2
movzx ecx, byte [ebx + 0x4c2038]
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ecx
dec ecx
mov byte [ecx + ebx], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x46b9a8
mov eax, dword [ebp - 0x28]
jmp 0x46b9da
cmp ebx, 0xc
jb 0x46b9d8
mov eax, dword [esi]
push eax
push dword [esi + 4]
mov dword [ebp - 0x28], eax
push ecx
call fcn.004a1bf0
mov eax, dword [ebp - 0x28]
add esp, 0xc
jmp 0x46b9da
xor eax, eax
add dword [ebp - 0x40], eax
add esi, 0x28
mov ecx, dword [ebp - 0x34]
lea eax, [esi - 0xc]
cmp eax, dword [ebp - 0x44]
jbe 0x46b950
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x68]
mov dword [edi + 0xc], eax
mov eax, 0x10
mov word [edi + 8], ax
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x46ba13
mov dword [edi], eax
mov eax, 0x4010
mov word [edi + 8], ax
mov edx, dword [ebp - 4]
mov byte [edi + 0xa], 1
jmp 0x46fdfa
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [esi + ebx*4 + 4]
movlpd qword [ebp - 0x148], xmm0
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x148]
push ecx
push dword [eax]
call fcn.00442e00
mov ecx, dword [ebp - 0x144]
add esp, 8
mov edx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x148]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ebx, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x20], ebx
test eax, eax
jne 0x46bbe9
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x9c], eax
jg 0x46ff47
mov esi, ebx
test ebx, ebx
je 0x46baa2
cmp byte [ebx], 0
je 0x46ba9a
inc esi
cmp byte [esi], 0
jne 0x46ba94
sub esi, ebx
and esi, 0x3fffffff
mov eax, dword [ecx + 0x1f4]
add eax, dword [ecx + 0x1f0]
push eax
push 0
push ecx
call fcn.004744e0
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov edx, dword [ebp - 4]
lea ecx, [esi + 0x21]
xor ebx, ebx
cmp byte [edx + 0x40], bl
je 0x46bae8
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x74]
inc ebx
mov ecx, dword [ebp + 8]
jmp 0x469616
cmp byte [edx + 0xfa], bl
je 0x46bb0b
movzx eax, word [edx + 0xf8]
cdq
cmp ebx, edx
jb 0x46bb36
ja 0x46bb02
cmp ecx, eax
jbe 0x46bb36
mov eax, dword [ebp - 4]
inc dword [eax + 0x108]
push ebx
push ecx
call fcn.00457140
mov edx, dword [ebp - 4]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46bb74
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
inc ebx
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
mov byte [edx + 0x40], 1
jmp 0x469616
mov edx, dword [ebp - 4]
mov ebx, dword [edx + 0x110]
test ebx, ebx
jne 0x46bb4b
inc dword [edx + 0x10c]
jmp 0x46bb0b
mov eax, dword [ebx]
mov dword [edx + 0x110], eax
mov eax, dword [edx + 0xfc]
inc eax
mov dword [edx + 0xfc], eax
inc dword [edx + 0x104]
cmp eax, dword [edx + 0x100]
jle 0x46bb74
mov dword [edx + 0x100], eax
lea eax, [esi + 1]
push eax
push dword [ebp - 0x20]
lea ecx, [ebx + 0x20]
push ecx
mov dword [ebx], ecx
call fcn.004a1bf0
mov edx, dword [ebp - 4]
add esp, 0xc
cmp byte [edx + 0x3e], 0
je 0x46bb9c
mov byte [edx + 0x3e], 0
mov byte [edx + 0x45], 1
jmp 0x46bba2
inc dword [edx + 0x1f0]
mov eax, dword [edx + 0x1e8]
mov esi, dword [ebp - 0xc]
movsd xmm0, qword [ebp - 0x74]
mov dword [ebx + 0x18], eax
mov eax, dword [edx + 0x1f8]
mov ecx, dword [edx + 0x1fc]
mov dword [edx + 0x1e8], ebx
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
mov ecx, dword [edx + 0x204]
mov eax, dword [edx + 0x200]
mov dword [ebx + 0x14], ecx
mov ecx, dword [ebp + 8]
mov dword [ebx + 0x10], eax
mov ebx, dword [ebp - 0x14]
inc ebx
jmp 0x469616
mov eax, dword [ebp - 4]
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax + 0x1e8]
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x46bc1f
nop
push ebx
push dword [esi]
call fcn.00418f70
add esp, 8
test eax, eax
je 0x46bc45
mov esi, dword [esi + 0x18]
inc dword [ebp - 0x2c]
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x46bc00
mov eax, dword [ebp - 4]
push ebx
push str.no_such_savepoint:__s
push eax
mov eax, dword [ebp + 8]
add eax, 0x2c
push eax
call fcn.00462d70
mov edx, 1
add esp, 0x10
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
jmp 0x470130
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x5c]
cmp dword [ebx + 0x9c], 0
jle 0x46bc5d
cmp edx, 1
je 0x46ff6c
cmp dword [esi + 0x18], 0
jne 0x46bcd2
cmp byte [ebx + 0x45], 0
je 0x46bcd2
mov dword [ebp - 0x28], 1
cmp edx, 1
jne 0x46bcd9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x200]
add edx, dword [ecx + 0x1f8]
mov eax, dword [ecx + 0x204]
adc eax, dword [ecx + 0x1fc]
test eax, eax
jg 0x46ffa8
jl 0x46bca4
test edx, edx
jne 0x46ffa8
mov byte [ebx + 0x3e], 1
mov ebx, dword [ebp + 8]
push ebx
call fcn.00470c30
mov edx, dword [ebp - 4]
add esp, 4
cmp eax, 5
je 0x46ff91
mov byte [edx + 0x45], 0
mov eax, dword [ebx + 0x50]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 8], eax
jmp 0x46bda0
mov dword [ebp - 0x28], 0
mov eax, dword [ebx + 0x1f0]
mov ecx, ebx
sub eax, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x2c], eax
cmp edx, 2
jne 0x46bd29
cmp dword [ecx + 0x14], 0
jle 0x46bd29
xor ebx, ebx
mov esi, ecx
mov edi, ebx
nop dword [eax]
mov eax, dword [esi + 0x10]
push 4
push dword [ebx + eax + 4]
call fcn.00445020
inc edi
lea ebx, [ebx + 0x10]
add esp, 8
cmp edi, dword [esi + 0x14]
jl 0x46bd00
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x14], 0
mov dword [ebp - 0x1c], 0
jle 0x46bd6e
xor ebx, ebx
push eax
mov eax, dword [ecx + 0x10]
push edx
push dword [ebx + eax + 4]
call fcn.00444bb0
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov eax, dword [ebp - 0x1c]
add ebx, 0x10
mov ecx, dword [ebp - 4]
inc eax
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x1c], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [ebp - 0x2c]
jl 0x46bd38
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 4]
cmp ebx, 2
jne 0x46bda0
test byte [edx + 0x18], bl
je 0x46bda0
mov eax, dword [edx + 4]
test eax, eax
je 0x46bd90
or dword [eax + 0x58], 0x20
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x46bd85
push edx
call fcn.0045f0d0
mov edx, dword [ebp - 4]
add esp, 4
or dword [edx + 0x18], 2
mov ecx, dword [edx + 0x1e8]
cmp ecx, esi
je 0x46be13
mov edi, dword [ebp - 4]
nop dword [eax]
cmp dword [edi + 0x208], 0
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1e8], eax
je 0x46bdce
push ecx
push edi
call fcn.00430f60
add esp, 8
jmp 0x46bdfd
cmp ecx, dword [edi + 0x114]
jb 0x46bdf4
cmp ecx, dword [edi + 0x118]
jae 0x46bdf4
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
jmp 0x46bdfd
push ecx
call fcn.004134b0
add esp, 4
dec dword [edi + 0x1f0]
mov ecx, dword [edi + 0x1e8]
cmp ecx, esi
jne 0x46bdb0
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
cmp ebx, 1
jne 0x46be7a
cmp dword [edx + 0x208], 0
mov eax, dword [esi + 0x18]
mov dword [edx + 0x1e8], eax
je 0x46be36
push esi
push edx
call fcn.00430f60
add esp, 8
jmp 0x46be65
cmp esi, dword [edx + 0x114]
jb 0x46be5c
cmp esi, dword [edx + 0x118]
jae 0x46be5c
mov eax, dword [edx + 0x110]
mov dword [esi], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], esi
jmp 0x46be68
push esi
call fcn.004134b0
add esp, 4
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x28], 0
jne 0x46fdfa
dec dword [edx + 0x1f0]
jmp 0x46bea8
cmp dword [ebp - 0x28], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1f8], eax
mov dword [edx + 0x1fc], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
jne 0x46fdfa
mov ecx, dword [ebp - 0x2c]
push ecx
push ebx
push edx
call fcn.004744e0
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
inc ebx
mov esi, dword [ebp - 0xc]
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
jmp 0x469616
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [esi + ebx*4 + 8]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x46bf0d
mov al, byte [esi + 0x3e]
test al, al
jne 0x46bf0d
test edx, edx
jne 0x46bf10
cmp dword [esi + 0x9c], edx
jle 0x46bf10
mov dword [ebp - 8], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x46bf3c
mov al, byte [esi + 0x3e]
movzx eax, al
cmp ecx, eax
jne 0x46ffd4
test ecx, ecx
jne 0x46bf26
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x46bf35
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov dword [ebp - 8], 1
push eax
mov eax, dword [ebp + 8]
add eax, 0x2c
push esi
push eax
call fcn.00462d70
mov edx, dword [ebp - 4]
add esp, 0xc
jmp 0x46fdfa
mov edx, dword [esi + ebx*4 + 8]
mov eax, dword [ebp - 4]
test edx, edx
je 0x46bf6d
test dword [eax + 0x18], 0x2000000
jne 0x470059
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x46c0c2
push edx
push esi
call fcn.00442630
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
cmp edx, 5
je 0x470065
test edx, edx
jne 0x4700f4
mov eax, dword [ebp - 0xc]
cmp dword [eax + ebx*4 + 8], edx
je 0x46c092
mov eax, dword [ebp + 8]
test byte [eax + 0x58], 0x80
je 0x46c092
mov edx, dword [ebp - 4]
cmp byte [edx + 0x3e], 0
je 0x46bfd2
cmp dword [edx + 0x98], 1
jle 0x46c092
mov eax, dword [eax + 0x68]
test eax, eax
jne 0x46bff1
mov eax, dword [edx + 0x1f0]
mov ecx, dword [ebp + 8]
inc dword [edx + 0x1f4]
add eax, dword [edx + 0x1f4]
mov dword [ecx + 0x68], eax
dec eax
push eax
push 0
push edx
call fcn.004744e0
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x46c055
cmp byte [esi + 9], 0
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x4c], ecx
mov eax, dword [eax + 0x68]
mov dword [ebp - 0x20], eax
je 0x46c032
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x46c032
push esi
call fcn.0041e570
mov eax, dword [ebp - 0x20]
add esp, 4
mov ecx, dword [ebp - 0x4c]
push eax
push dword [ecx]
call fcn.00459210
add esp, 8
mov dword [ebp - 8], eax
cmp byte [esi + 9], 0
je 0x46c055
add dword [esi + 0xc], 0xffffffff
jne 0x46c055
push esi
call fcn.00478290
add esp, 4
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 8]
mov eax, dword [edx + 0x1f8]
mov ecx, dword [edx + 0x1fc]
mov dword [edi + 0x98], eax
mov eax, edi
mov dword [eax + 0x9c], ecx
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov edx, edi
mov edi, dword [ebp - 0x3c]
mov dword [edx + 0xa0], eax
mov dword [edx + 0xa4], ecx
lea eax, [ebp - 0xc8]
push eax
push 1
push esi
call fcn.00443420
mov esi, dword [ebp - 0xc]
add esp, 0xc
mov edx, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
jmp 0x46c0d2
mov edx, dword [ebp - 4]
xor ecx, ecx
mov esi, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 0xc8], ecx
cmp byte [esi + ebx*4 + 3], 0
je 0x46fdfd
cmp ecx, dword [esi + ebx*4 + 0xc]
jne 0x46c0ed
cmp eax, dword [esi + ebx*4 + 0x10]
je 0x46fdfd
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x46c13b
cmp dword [edx + 0x208], 0
je 0x46c10c
push ecx
push edx
call fcn.00430f60
add esp, 8
jmp 0x46c13b
cmp ecx, dword [edx + 0x114]
jb 0x46c132
cmp ecx, dword [edx + 0x118]
jae 0x46c132
mov eax, dword [edx + 0x110]
mov dword [ecx], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], ecx
jmp 0x46c13b
push ecx
call fcn.004134b0
add esp, 4
mov eax, str.database_schema_has_changed
inc eax
cmp byte [eax], 0
jne 0x46c140
mov edx, dword [ebp - 4]
sub eax, str.database_schema_has_changed
and eax, 0x3fffffff
xor esi, esi
cmp byte [edx + 0x40], 0
lea ecx, [eax + 1]
mov dword [ebp - 0x20], ecx
jne 0x46c1f7
cmp byte [edx + 0xfa], 0
je 0x46c189
movzx eax, word [edx + 0xf8]
cdq
cmp esi, edx
jb 0x46c1a2
ja 0x46c180
cmp ecx, eax
jbe 0x46c1a2
mov eax, dword [ebp - 4]
inc dword [eax + 0x108]
push esi
push ecx
call fcn.00457140
mov edx, dword [ebp - 4]
mov esi, eax
add esp, 8
test esi, esi
jne 0x46c1e2
mov byte [edx + 0x40], 1
jmp 0x46c1f7
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x110]
test esi, esi
jne 0x46c1b7
inc dword [edx + 0x10c]
jmp 0x46c189
mov eax, dword [esi]
mov dword [edx + 0x110], eax
mov eax, dword [edx + 0xfc]
inc eax
mov dword [edx + 0xfc], eax
inc dword [edx + 0x104]
cmp eax, dword [edx + 0x100]
jle 0x46c1e5
mov dword [edx + 0x100], eax
jmp 0x46c1e5
mov ecx, dword [ebp - 0x20]
push ecx
push str.database_schema_has_changed
push esi
call fcn.004a1bf0
mov edx, dword [ebp - 4]
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], esi
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + ebx*4 + 4]
mov ecx, esi
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0xc8]
cmp dword [eax], ecx
je 0x46c23b
push eax
call fcn.004605e0
add esp, 4
cmp esi, 1
je 0x46c238
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.004605e0
add esp, 4
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov ebx, 0x11
mov esi, dword [ebp - 0xc]
mov dword [ebp - 8], ebx
or dword [ecx + 0x58], 0x20
jmp 0x46fe03
mov ecx, dword [esi + ebx*4 + 4]
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [ebp - 4]
add ecx, ecx
push dword [esi + ebx*4 + 0xc]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.00443420
mov eax, dword [ebp - 0x12c]
add esp, 0xc
cdq
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov dword [edi], eax
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00470f70
mov dword [esi], eax
mov ecx, 0xbe04
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
push dword [esi]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xc]
push dword [eax + ebx*4 + 8]
mov eax, dword [ebp - 0x28]
push dword [eax + 4]
call fcn.00445160
mov edx, dword [ebp - 4]
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
cmp eax, 1
jne 0x46c2fe
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi]
mov dword [ecx], eax
or dword [edx + 0x18], 2
jmp 0x46c30e
cmp eax, 2
jne 0x46c30e
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
mov al, byte [esi]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0xc]
cmp dword [esi + ebx*4 + 4], 1
jne 0x46fdfd
mov eax, dword [edx + 4]
test eax, eax
je 0x46c32e
or dword [eax + 0x58], 0x20
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x46c323
mov ecx, dword [ebp + 8]
and dword [ecx + 0x58], 0xffffffdf
jmp 0x46fe00
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x469686.54
mov eax, dword [eax + 0x20]
cmp eax, dword [esi + ebx*4 + 8]
je 0x4696c9
mov eax, dword [ebp + 8]
test byte [eax + 0x58], 0x20
jne 0x470090
mov ecx, dword [esi + ebx*4 + 8]
mov esi, dword [esi + ebx*4 + 0xc]
mov eax, esi
mov edi, dword [ebp - 4]
shl eax, 4
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x28], 0
add eax, dword [edi + 0x10]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], esi
mov edi, dword [eax + 4]
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x3c]
cmp dl, 0x37
jne 0x46c3b4
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x44], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x46c3bb
mov byte [edx + 0x57], al
jmp 0x46c3bb
mov dword [ebp - 0x44], 0
mov edx, dword [ebp - 0xc]
test byte [edx + ebx*4 + 3], 2
je 0x46c404
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x18]
lea esi, [ecx + eax*8]
push esi
call fcn.00470f70
mov dword [esi], eax
mov ecx, 0xbe04
mov ax, word [esi + 8]
add esp, 4
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 8], ax
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
cmp eax, 2
jl 0x47007b
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
mov al, byte [edx + ebx*4 + 1]
cmp al, 0xfa
jne 0x46c41f
mov eax, dword [edx + ebx*4 + 0x10]
mov dword [ebp - 0x28], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x46c42c
cmp al, 0xf2
jne 0x46c429
mov ecx, dword [edx + ebx*4 + 0x10]
jmp 0x46c42c
mov ecx, dword [ebp - 0x4c]
push 1
push esi
push ecx
push dword [edx + ebx*4 + 4]
push dword [ebp + 8]
call fcn.0041a620
mov esi, eax
add esp, 0x14
test esi, esi
je 0x46b8e6
push dword [esi]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x28]
or dword [esi + 0x1c], 8
push dword [ebp - 0x44]
mov byte [esi + 0x19], 1
push eax
push dword [ebp - 0x68]
mov dword [esi + 0x20], eax
call fcn.00443040
mov edx, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov dword [esi + 8], eax
mov cl, byte [edx + ebx*4 + 3]
mov eax, dword [esi]
and cl, 1
mov byte [eax + 0x4a], cl
xor ecx, ecx
cmp byte [edx + ebx*4 + 1], 0xfa
mov eax, 4
mov edx, dword [ebp - 4]
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 0x1c], ecx
jmp 0x46fdfa
push 1
push 0xffffffffffffffff
push dword [esi + ebx*4 + 8]
push dword [esi + ebx*4 + 4]
push ecx
call fcn.0041a620
mov esi, eax
add esp, 0x14
test esi, esi
je 0x46b8e6
mov eax, dword [ebp - 0xc]
lea ecx, [esi + 4]
or dword [esi + 0x1c], 1
mov byte [esi + 0x19], 1
push 0x41e
movzx eax, byte [eax + ebx*4 + 3]
or eax, 5
push eax
mov eax, dword [ebp - 4]
push ecx
push eax
push 0
push dword [eax]
call fcn.00444360
mov edx, eax
add esp, 0x18
mov dword [ebp - 8], edx
test edx, edx
jne 0x46c5ca
push 1
push dword [esi + 4]
call fcn.00442630
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
test edx, edx
jne 0x46c5ca
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x46c5b0
movzx eax, byte [ecx + ebx*4 + 3]
or eax, 2
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], eax
cmp byte [eax + 9], dl
je 0x46c554
inc dword [eax + 0xc]
cmp byte [eax + 0xa], dl
jne 0x46c554
push eax
call fcn.0041e570
mov eax, dword [ebp - 0x1c]
add esp, 4
push dword [ebp - 0x20]
lea ecx, [ebp - 0x130]
push ecx
push eax
call fcn.0041dd30
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], edx
cmp byte [eax + 9], 0
je 0x46c587
add dword [eax + 0xc], 0xffffffff
jne 0x46c587
push eax
call fcn.00478290
mov edx, dword [ebp - 8]
add esp, 4
test edx, edx
jne 0x46c5aa
push dword [esi]
mov eax, dword [ebp - 0x4c]
push eax
push 1
push dword [ebp - 0x130]
mov dword [esi + 8], eax
push dword [esi + 4]
call fcn.00443040
add esp, 0x14
mov dword [ebp - 8], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x46c5ca
push dword [esi]
push 0
push 1
push 1
push dword [esi + 4]
call fcn.00443040
add esp, 0x14
mov dword [ebp - 8], eax
or dword [esi + 0x1c], 4
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov edx, dword [ebp - 4]
cmp byte [eax + ebx*4 + 3], 8
mov eax, 8
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffff7
or ecx, eax
mov dword [esi + 0x1c], ecx
jmp 0x46fdfa
push 1
push 0xffffffffffffffff
push dword [esi + ebx*4 + 8]
push dword [esi + ebx*4 + 4]
push ecx
call fcn.0041a620
add esp, 0x14
mov dword [ebp - 0x44], eax
test eax, eax
je 0x46b8e6
mov ecx, dword [esi + ebx*4 + 0x10]
mov dword [eax + 8], ecx
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 8], 0
cmp byte [eax + 0x3f], 2
je 0x46c641
cmp dword [0x4da00c], 0
je 0x46c641
mov ebx, dword [eax + 0x84]
jmp 0x46c643
xor ebx, ebx
movzx eax, word [ecx + 6]
lea ecx, [eax*4 + 0x14]
lea eax, [ebx + 2]
mov dword [ebp - 0x68], ecx
shl eax, 6
mov dword [ebp - 0x1c], eax
add eax, ecx
mov dword [ebp - 0x4c], eax
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], esi
cmp byte [eax + 0x40], 0
je 0x46c687
xor esi, esi
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 4]
mov dword [ebp - 8], 7
mov dword [ecx + 0x38], esi
jmp 0x46fdfa
cmp byte [eax + 0xfa], 0
je 0x46c6ab
movzx eax, word [eax + 0xf8]
cdq
cmp esi, edx
jb 0x46c6c4
ja 0x46c6a2
cmp ecx, eax
jbe 0x46c6c4
mov eax, dword [ebp - 4]
inc dword [eax + 0x108]
push esi
push ecx
call fcn.00457140
mov esi, eax
add esp, 8
test esi, esi
jne 0x46c705
mov eax, dword [ebp - 4]
mov byte [eax + 0x40], 1
jmp 0x46c672
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x110]
test esi, esi
jne 0x46c6dc
inc dword [edx + 0x10c]
mov esi, dword [ebp - 0x20]
jmp 0x46c6ab
mov eax, dword [esi]
mov dword [edx + 0x110], eax
mov eax, dword [edx + 0xfc]
inc eax
mov dword [edx + 0xfc], eax
inc dword [edx + 0x104]
cmp eax, dword [edx + 0x100]
jle 0x46c705
mov dword [edx + 0x100], eax
push dword [ebp - 0x4c]
push 0
push esi
call fcn.004a2550
mov ecx, dword [ebp - 0x44]
mov eax, esi
push dword [ebp - 0x68]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x1c]
add eax, esi
mov dword [esi + 0x1c], eax
push dword [ecx + 8]
push eax
call fcn.004a1bf0
mov eax, dword [ebp - 0x1c]
add esp, 0x18
mov ecx, dword [ebp - 0x90]
mov dword [eax + esi + 0xc], 0
test ecx, ecx
je 0x46c74d
test ebx, ebx
jne 0x46c74d
mov word [eax + esi + 6], cx
mov edx, dword [ebp - 4]
inc bl
mov ecx, ebx
mov dword [ebp - 0x20], ebx
cmp cl, 1
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x4c], eax
mov dword [esi + 0xc], eax
seta al
mov dword [esi + 0x18], edx
xor edx, edx
mov byte [esi + 0x3b], cl
mov byte [esi + 0x39], al
test cl, cl
je 0x46c78f
lea ecx, [esi + 0x48]
mov dword [ecx], esi
lea ecx, [ecx + 0x40]
movzx eax, byte [esi + 0x3b]
inc edx
cmp edx, eax
jl 0x46c781
mov edx, dword [ebp - 4]
cmp byte [edx + 0x3f], 2
je 0x46fdfa
mov edx, dword [ebp - 0x4c]
lea eax, [edx + edx*4]
add eax, eax
mov dword [esi], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x50]
cmp ecx, 0xa
mov eax, 0xa
cmovl ecx, eax
imul ecx, edx
mov dword [esi + 4], ecx
cmp dword [0x4da0c8], 0
jne 0x469781
mov eax, edx
mov dword [esi + 0x34], edx
cdq
push edx
push eax
call fcn.00457140
mov edx, dword [ebp - 4]
add esp, 8
mov dword [esi + 0x28], eax
test eax, eax
jne 0x46fdfa
mov dword [ebp - 8], 7
jmp 0x46fdfa
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x3c]
mov dword [edx + 0x2c], eax
mov edx, dword [ebp - 4]
jne 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
push 0
push 0xffffffffffffffff
push dword [esi + ebx*4 + 0xc]
push dword [esi + ebx*4 + 4]
push ecx
call fcn.0041a620
mov edx, dword [ebp - 4]
add esp, 0x14
test eax, eax
je 0x46b8e9
mov byte [eax + 0x19], 1
mov ecx, dword [esi + ebx*4 + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
jmp 0x46fdfd
mov edx, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [edx + 0x38]
push dword [eax + ecx*4]
push edx
call fcn.00470b30
mov eax, dword [ebp + 8]
add esp, 8
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x46fdfd
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], esi
test byte [esi + 0x1c], 4
movzx edx, byte [eax + ebx*4]
mov dword [ebp - 0x54], edx
mov byte [esi + 0x19], 0
je 0x46c9c9
mov eax, dword [eax + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x46c954
mov al, byte [esi + 0xa]
mov byte [ebp - 0x100], al
lea eax, [ebp - 0x298]
push dword [ebp - 0x100]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call fcn.00440610
add esp, 0x10
test eax, eax
je 0x46c954
push dword [ebp - 0x100]
lea eax, [ebp - 0x1ac]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call fcn.00440c40
movzx edx, word [esi + 8]
add esp, 0x10
test eax, eax
jne 0x46c941
mov eax, dword [ebp - 0x1ac]
or edx, 4
mov ecx, dword [ebp - 0x1a8]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x46c950
movsd xmm0, qword [ebp - 0x298]
or edx, 8
movsd qword [esi], xmm0
mov word [esi + 8], dx
push esi
call fcn.00470f70
movzx ecx, word [esi + 8]
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edx
test cl, 4
jne 0x46c9a1
test cl, 8
je 0x4696be
mov ecx, eax
call fcn.004a0ee0
movsd xmm1, qword [esi]
comisd xmm0, xmm1
jbe 0x46c990
mov eax, dword [ebp - 0x54]
test al, 1
je 0x46c9a1
dec eax
jmp 0x46c99e
comisd xmm1, xmm0
jbe 0x46c9a1
mov eax, dword [ebp - 0x54]
test al, 1
jne 0x46c9a1
inc eax
mov dword [ebp - 0x54], eax
mov esi, dword [ebp - 0x20]
lea eax, [ebp - 0x6c]
push eax
push 0
push dword [ebp - 0x34]
push dword [ebp - 0x28]
push 0
push dword [esi]
call fcn.00443e40
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x34], eax
jmp 0x46ca34
mov ecx, dword [eax + ebx*4 + 0x10]
test dl, 1
mov eax, dword [esi + 8]
mov dword [ebp - 0x258], eax
sete al
mov word [ebp - 0x254], cx
mov ecx, dword [ebp - 0x18]
lea eax, [eax*2 - 1]
mov byte [ebp - 0x252], al
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x4000
mov dword [ebp - 0x250], eax
test word [eax + 8], cx
je 0x46ca1a
push eax
call fcn.00471c60
add esp, 4
lea eax, [ebp - 0x6c]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x258]
push eax
push dword [esi]
call fcn.00443e40
mov edx, eax
add esp, 0x18
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov eax, dword [ebp - 0x54]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ecx, dword [ebp - 0x6c]
cmp eax, 0x40
jl 0x46ca86
test ecx, ecx
js 0x46ca72
jne 0x46ca63
cmp eax, 0x41
je 0x46ca72
mov dword [ebp - 0x6c], 0
mov edx, dword [ebp - 4]
jmp 0x46fdfa
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], 0
push eax
push dword [esi]
call fcn.004442e0
jmp 0x46caed
test ecx, ecx
jg 0x46caa1
jne 0x46ca91
cmp eax, 0x3e
je 0x46caa1
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x49], 1
setne cl
mov dword [ebp - 0x6c], ecx
jmp 0x46cafd
mov dword [ebp - 0x6c], 0
xor eax, eax
mov ecx, dword [esi]
and byte [ecx + 0x48], 0xf1
cmp byte [ecx + 0x49], 1
mov word [ecx + 0x2c], ax
jne 0x46cae3
movsx edx, word [ecx + 0x4c]
movzx esi, word [ecx + edx*2 + 0x4e]
test si, si
je 0x46cae3
mov eax, dword [ecx + edx*4 + 0x78]
cmp byte [eax + 5], 0
je 0x46cae3
lea eax, [esi - 1]
mov dword [ebp - 8], 0
mov word [ecx + edx*2 + 0x4e], ax
jmp 0x46cafd
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.0041eb30
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
cmp dword [ebp - 0x6c], 0
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
je 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
mov byte [esi + 0x19], 0
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00470f70
mov dword [esi + 0x34], edx
add esp, 4
mov edx, dword [ebp - 4]
mov dword [esi + 0x30], eax
mov byte [esi + 0x1a], 1
jmp 0x46fdfa
cmp dword [esi + ebx*4 + 0x10], 0
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x104], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x38], ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], edx
jle 0x46cbff
mov dword [ebp - 0x19c], eax
xor ecx, ecx
movzx eax, word [esi + ebx*4 + 0x10]
xor esi, esi
mov dword [ebp - 0x20], eax
mov word [ebp - 0x198], ax
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x1c], ecx
cmp si, ax
jae 0x46cbf7
mov edi, eax
mov ebx, 0x4000
nop dword [eax + eax]
test word [esi + edx + 8], bx
lea eax, [esi + edx]
je 0x46cbe3
push eax
call fcn.00471c60
mov edx, dword [ebp - 0x194]
add esp, 4
mov di, word [ebp - 0x198]
mov ecx, dword [ebp - 0x1c]
inc ecx
movzx eax, di
add esi, 0x28
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jl 0x46cbc0
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x3c]
lea esi, [ebp - 0x19c]
jmp 0x46cc3d
lea ecx, [ebp - 0x104]
push ecx
push 0xbf
lea ecx, [ebp - 0x3f0]
push ecx
push eax
call fcn.00468980
mov esi, eax
add esp, 0x10
test esi, esi
je 0x46b8e6
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
push esi
push dword [ecx + 0x10]
push dword [ecx + 0xc]
push dword [eax + 8]
call fcn.00472c80
add esp, 0x10
mov eax, dword [ebp - 0xc]
mov byte [esi + 6], 0
cmp byte [eax + ebx*4], 0x43
jne 0x46cc7a
movzx edx, word [ebp - 0x198]
xor ecx, ecx
test edx, edx
je 0x46cc7a
mov eax, dword [ebp - 0x194]
add eax, 8
test byte [eax], 1
jne 0x46cc6f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x46cc60
jmp 0x46cc7a
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x134]
push eax
push 0
push 0
push 0
push esi
mov esi, dword [ebp - 0x38]
push dword [esi]
call fcn.00443e40
mov edx, dword [ebp - 4]
add esp, 0x18
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
cmp dword [eax + ebx*4 + 0x10], 0
jne 0x46cd82
mov esi, dword [ebp - 0x104]
test esi, esi
je 0x46cd7f
cmp dword [edx + 0x208], 0
je 0x46cccf
push esi
push edx
call fcn.00430f60
add esp, 8
jmp 0x46cd7c
cmp esi, dword [edx + 0x114]
jb 0x46ccf8
cmp esi, dword [edx + 0x118]
jae 0x46ccf8
mov eax, dword [edx + 0x110]
mov dword [esi], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], esi
jmp 0x46cd7f
cmp dword [0x4da008], 0
je 0x46cd72
mov eax, dword [0x4dc480]
test eax, eax
je 0x46cd14
push eax
call dword [0x4da05c]
add esp, 4
push esi
call dword [0x4da038]
mov ecx, dword [0x4dc320]
neg eax
add ecx, eax
mov eax, dword [0x4dc348]
cmp ecx, eax
mov dword [0x4dc320], ecx
push esi
cmovg eax, ecx
mov ecx, dword [0x4dc344]
dec ecx
mov dword [0x4dc348], eax
mov eax, dword [0x4dc36c]
cmp ecx, eax
mov dword [0x4dc344], ecx
cmovg eax, ecx
mov dword [0x4dc36c], eax
call dword [0x4da030]
mov eax, dword [0x4dc480]
add esp, 8
test eax, eax
je 0x46cd7c
push eax
call dword [0x4da064]
jmp 0x46cd79
push esi
call dword [0x4da030]
add esp, 4
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 8], 0
jne 0x46fdfa
mov eax, dword [ebp - 0x134]
xor ecx, ecx
test eax, eax
mov dword [esi + 0xc], eax
mov byte [esi + 0x1a], 0
sete cl
mov dword [esi + 0x3c], 0
test eax, eax
setne al
mov byte [esi + 0x19], al
mov esi, dword [ebp - 0xc]
cmp byte [esi + ebx*4], 0x45
jne 0x46cdd3
test ecx, ecx
je 0x46bad7
mov ebx, dword [esi + ebx*4 + 8]
movsd xmm0, qword [ebp - 0x74]
dec ebx
mov ecx, dword [ebp + 8]
inc ebx
jmp 0x469616
test ecx, ecx
jne 0x46bad7
mov ebx, dword [esi + ebx*4 + 8]
movsd xmm0, qword [ebp - 0x74]
dec ebx
mov ecx, dword [ebp + 8]
inc ebx
jmp 0x469616
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x108], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x20], ecx
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [ebp - 0x108]
push eax
push 0
push edi
push esi
push 0
push dword [ecx]
call fcn.00443e40
mov ecx, dword [ebp - 0x108]
add esp, 0x18
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x30], esi
mov esi, dword [ebp - 0xc]
mov dword [eax + 0x34], edi
mov word [eax + 0x19], 0
mov dword [eax + 0x3c], 0
test ecx, ecx
je 0x46ce5e
mov edx, dword [esi + ebx*4 + 8]
dec edx
mov dword [ebp - 0x14], edx
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
mov dword [eax + 0xc], ecx
jmp 0x46fdfd
mov edx, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [edi], ecx
mov dword [edi + 4], eax
mov eax, dword [edx + 0x38]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 4]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x46fdfd
mov edx, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [esi + ebx*4 + 4]
movlpd qword [ebp - 0x84], xmm0
mov dword [ebp - 0xa4], 0
mov eax, dword [edx + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x38], ecx
mov eax, dword [ecx]
test eax, eax
je 0x46d0ed
test byte [ecx + 0x1c], 2
jne 0x46cf8a
lea ecx, [ebp - 0xa4]
push ecx
push eax
call fcn.00443d90
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov ecx, dword [ebp - 0x38]
cmp dword [ebp - 0xa4], eax
je 0x46cf17
mov edx, dword [ebp + 8]
mov eax, 1
xor esi, esi
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], esi
jmp 0x46cf93
mov esi, dword [ecx]
cmp byte [esi + 0x49], 1
je 0x46cf2f
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
jmp 0x46cf6f
push esi
call fcn.0042e5f0
mov eax, dword [esi + 0x18]
add esp, 4
mov esi, dword [esi + 0x1c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 8], 0
cmp esi, 0x7fffffff
jl 0x46cf6c
jg 0x46cf60
cmp eax, 0xffffffff
jb 0x46cf6c
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp + 8]
or dword [ecx + 0x1c], 2
jmp 0x46cf96
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp + 8]
add eax, 1
mov dword [ebp - 0x84], eax
adc esi, 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x80], esi
jmp 0x46cf93
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax + ebx*4 + 0xc]
test ebx, ebx
je 0x46d051
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x46cfca
mov eax, dword [edx + 4]
test eax, eax
je 0x46cfbf
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x46cfb6
mov eax, dword [edx + 0xc]
lea ecx, [ebx + ebx*4]
lea ebx, [eax + ecx*8]
jmp 0x46cfd3
mov ecx, dword [ebp - 0x18]
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*8]
push ebx
mov dword [ebp - 0x1c], ebx
call fcn.00470f70
mov dword [ebx], eax
mov ecx, 0xbe04
mov ax, word [ebx + 8]
add esp, 4
and ax, cx
mov dword [ebx + 4], edx
mov edx, dword [ebx]
or ax, 4
mov word [ebx + 8], ax
mov eax, dword [ebx + 4]
cmp edx, 0xffffffff
jne 0x46d00d
cmp eax, 0x7fffffff
je 0x46d0c6
mov ecx, dword [ebp - 0x38]
test byte [ecx + 0x1c], 2
jne 0x46d0c6
add edx, 1
adc eax, 0
cmp esi, eax
jg 0x46d044
jl 0x46d02d
mov ebx, dword [ebp - 0x2c]
cmp ebx, edx
jae 0x46d047
mov esi, eax
mov ebx, edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], esi
mov dword [eax], ebx
mov dword [eax + 4], esi
jmp 0x46d054
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [eax], ebx
mov dword [eax + 4], esi
jmp 0x46d054
mov ebx, dword [ebp - 0x2c]
test byte [ecx + 0x1c], 2
je 0x46d0d5
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x84]
push eax
push 8
call fcn.004135a0
mov esi, dword [ebp - 0x80]
lea eax, [ebp - 0xa4]
mov ebx, dword [ebp - 0x84]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x38]
add ebx, 1
push 0
adc esi, 0
mov dword [ebp - 0x84], ebx
push esi
push ebx
push 0
push dword [eax]
mov dword [ebp - 0x80], esi
call fcn.00443e40
add esp, 0x20
mov dword [ebp - 8], eax
test eax, eax
jne 0x46d0d2
cmp dword [ebp - 0xa4], eax
jne 0x46d0d2
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x64
jl 0x46d065
mov dword [ebp - 8], 0xd
jmp 0x4700f4
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
mov dword [edi], ebx
mov dword [edi + 4], esi
jmp 0x46fdfa
mov esi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x84]
mov edx, dword [ebp - 4]
mov dword [edi], ebx
mov dword [edi + 4], esi
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 8]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 0xc]
cmp dl, 0x4b
jne 0x46d13b
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x28], edx
jmp 0x46d144
cdq
mov dword [ebp - 0x28], eax
mov eax, edx
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x44], eax
mov cl, byte [ecx + ebx*4 + 3]
test cl, 1
je 0x46d160
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x5c]
mov ecx, dword [ebp - 0xc]
mov cl, byte [ecx + ebx*4 + 3]
test cl, 2
je 0x46d174
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x64], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx + esi*8 + 8]
test al, 1
je 0x46d190
mov dword [ecx + esi*8 + 0x10], 0
mov dword [ecx + esi*8 + 0xc], 0
mov ecx, dword [ebp - 0xc]
mov cl, byte [ecx + ebx*4 + 3]
mov byte [ebp - 0x2d], cl
test cl, 0x10
je 0x46d1aa
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x1c], ecx
jmp 0x46d1b1
mov dword [ebp - 0x1c], 0
test eax, 0x4000
je 0x46d1c0
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + esi*8]
jmp 0x46d1c2
xor ecx, ecx
push dword [ebp - 0x1c]
movzx eax, byte [ebp - 0x2d]
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp - 0x18]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
push esi
push edx
push 0
push dword [eax]
call fcn.00443490
mov edx, eax
add esp, 0x24
mov eax, dword [ebp - 0x34]
mov dword [ebp - 8], edx
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
test edx, edx
jne 0x46ca6a
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x46fdf4
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 0x10]
test eax, eax
je 0x46ca6a
mov ecx, dword [ebp - 0x28]
push esi
mov esi, dword [ebp - 4]
push ecx
push eax
mov eax, dword [ebp - 0x34]
movsx ecx, byte [eax + 0x18]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, dword [ebp - 0xc]
mov ecx, 0x17
test byte [eax + ebx*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xcc]
call edx
mov ebx, dword [ebp - 0x14]
add esp, 0x18
movsd xmm0, qword [ebp - 0x74]
mov edx, esi
mov esi, dword [ebp - 0xc]
inc ebx
mov ecx, dword [ebp + 8]
jmp 0x469616
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
push dword [esi]
call fcn.00443150
mov edx, eax
mov dword [esi + 0x3c], 0
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x46d2e2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x46d2e2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 0x10]
test eax, eax
je 0x46d2e2
test byte [esi + 0x1c], 4
je 0x46d2e2
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
mov esi, dword [ebp - 4]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xcc]
call edx
add esp, 0x18
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
test byte [esi + ebx*4 + 8], 1
mov ebx, dword [ebp - 8]
je 0x46fe03
inc dword [ecx + 0x5c]
jmp 0x46fe03
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 0x5c]
add dword [edx + 0x54], eax
mov dword [edx + 0x50], eax
mov dword [ecx + 0x5c], 0
jmp 0x46fe00
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
mov esi, dword [esi + ebx*4 + 0x10]
lea eax, [eax + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x38]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x34], edx
test edx, edx
jne 0x46d373
lea eax, [ebp - 0x244]
push eax
push edx
push edx
push ecx
call fcn.00468980
mov ecx, eax
add esp, 0x10
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], ecx
mov dword [eax + 0x20], ecx
test ecx, ecx
je 0x4700a0
mov word [ecx + 4], si
lea ecx, [ebp - 0x138]
push ecx
push eax
call fcn.0047d810
push dword [ebp - 0x34]
push eax
push dword [ebp - 0x138]
push dword [ebp - 0x4c]
call fcn.00472c80
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x46d3b1
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
add eax, 8
test byte [eax], 1
jne 0x46d3d0
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x46d3a4
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
push 0
push dword [ebp - 0x34]
push dword [ecx + eax*8 + 0x10]
push dword [ecx + eax*8 + 0xc]
call fcn.0047c700
add esp, 0x10
test eax, eax
je 0x46d3f0
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 8], 0
inc ebx
jmp 0x469616
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
inc ebx
mov edx, dword [ebp - 4]
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
mov dword [ebp - 8], 0
jmp 0x469616
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x3c], edi
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x38]
cmp byte [eax + 0x38], 0
je 0x46d46b
cmp byte [eax + 0x39], 0
je 0x46d448
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x20]
lea esi, [eax + 0x14]
mov dword [ebp - 0x1c], ecx
jmp 0x46d474
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 0x20]
lea esi, [eax + 0x14]
mov dword [ebp - 0x1c], ecx
jmp 0x46d474
mov esi, dword [eax + 0x24]
lea eax, [esi + 8]
mov dword [ebp - 0x1c], eax
mov esi, dword [esi]
cmp dword [edi + 0x18], esi
jge 0x46d494
push 0
push esi
push edi
call fcn.00471e80
add esp, 0xc
test eax, eax
je 0x46d49f
mov dword [ebp - 8], 7
jmp 0x46d4cc
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov ax, word [edi + 8]
mov ecx, 0xbe10
push esi
push dword [ebp - 0x1c]
and ax, cx
mov dword [edi + 0xc], esi
push dword [edi + 0x10]
or ax, 0x10
mov word [edi + 8], ax
call fcn.004a1bf0
add esp, 0xc
mov dword [ebp - 8], 0
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x3c], 0
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x3c], edi
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x20], eax
test byte [eax + 0x1c], 4
mov ebx, dword [eax]
jne 0x46d576
cmp byte [ebx + 0x49], 1
je 0x46d529
xorps xmm0, xmm0
movlpd qword [ebp - 0x50], xmm0
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
jmp 0x46d538
push ebx
call fcn.0042e5f0
mov esi, dword [ebx + 0x18]
add esp, 4
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x46d551
jl 0x46d5c4
cmp esi, eax
jbe 0x46d5c4
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
push str.string_or_blob_too_big
push edx
add eax, 0x2c
push eax
call fcn.00462d70
mov edx, 0x12
add esp, 0xc
mov dword [ebp - 8], edx
jmp 0x470130
cmp word [ebx + 0x2c], 0
jne 0x46d5b9
movsx eax, word [ebx + 0x4c]
mov edi, dword [ebx + eax*4 + 0x78]
movzx esi, word [ebx + eax*2 + 0x4e]
lea eax, [ebx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
push edx
push edi
call fcn.0041e9e0
mov edi, dword [ebp - 0x3c]
add esp, 0xc
or byte [ebx + 0x48], 2
mov edx, dword [ebp - 4]
mov esi, dword [ebx + 0x24]
cmp esi, dword [edx + 0x58]
ja 0x46d554
mov eax, 0x20
cmp esi, eax
cmova eax, esi
cmp dword [edi + 0x18], eax
jge 0x46d5e9
push 0
push eax
push edi
call fcn.00471e80
add esp, 0xc
test eax, eax
jne 0x46b8e6
jmp 0x46d5f4
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov ax, word [edi + 8]
mov ecx, 0xbe10
and ax, cx
mov dword [edi + 0xc], esi
mov ecx, dword [ebp - 0x20]
or ax, 0x10
mov word [edi + 8], ax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x4c], eax
test byte [ecx + 0x1c], 4
jne 0x46d61f
push 0
push eax
jmp 0x46d654
mov al, byte [ebx + 0x49]
test al, al
jne 0x46d639
mov edx, dword [ebp - 4]
mov dword [ebp - 8], 4
mov byte [edi + 0xa], 1
jmp 0x46fdfa
cmp al, 3
jb 0x46d64f
push ebx
call fcn.0041ecd0
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x46d663
push 0
push dword [ebp - 0x4c]
push esi
push 0
push ebx
call fcn.00419400
mov dword [ebp - 8], eax
add esp, 0x14
mov edx, dword [ebp - 4]
mov byte [edi + 0xa], 1
jmp 0x46fdfa
mov ecx, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x46d693
mov edx, dword [ebp - 4]
mov eax, 1
mov word [edi + 8], ax
jmp 0x46fdfa
cmp byte [esi + 0x1a], 0
je 0x46d6b8
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46fdfa
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x46d6f6
mov esi, dword [ecx]
lea edx, [ebp - 0x114]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push ebx
mov dword [ebp - 8], eax
call fcn.00473fe0
mov eax, dword [ebp - 0x114]
add esp, 0x10
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46fdfa
mov eax, dword [esi]
cmp byte [eax + 0x49], 1
je 0x46d714
push esi
call fcn.0042f030
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f7
lea eax, [ebp - 0x114]
push eax
push dword [esi]
call fcn.00443d40
mov ecx, dword [ebp - 0x110]
add esp, 8
mov edx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x114]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46fdfa
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
test esi, esi
je 0x46ca6a
push dword [esi + 0x38]
call fcn.004134b0
mov edx, dword [ebp - 4]
add esp, 4
mov dword [esi + 0x38], 0
mov byte [esi + 0x49], 0
jmp 0x46fdfa
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x10c], 0
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x10c]
push eax
push dword [esi]
call fcn.00443d90
mov dword [ebp - 8], eax
add esp, 8
mov eax, dword [ebp - 0x10c]
mov byte [esi + 0x19], al
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov esi, dword [ebp - 0xc]
mov ecx, dword [esi + ebx*4 + 8]
test ecx, ecx
jle 0x4696c9
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 8]
test eax, eax
je 0x469b14
dec ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 8]
jmp 0x46fe03
inc dword [ecx + 0x74]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, 1
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
mov esi, dword [ecx + 0x38]
test esi, esi
je 0x46d86d
cmp byte [esi + 0x38], 0
mov dword [ebp - 8], 0
jne 0x46d83e
cmp dword [esi + 0x24], 0
lea ecx, [esi + 0x24]
je 0x46d865
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [esi + 0x40]
push ecx
push eax
call fcn.0047dca0
mov ecx, dword [ebp - 0x28]
add esp, 8
mov dword [ebp - 8], eax
jmp 0x46d8ad
push esi
call fcn.0047d160
push eax
push esi
call fcn.0047d270
mov ecx, eax
add esp, 0xc
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46d868
push esi
call fcn.0047d870
add esp, 4
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x28]
jmp 0x46d8ad
mov esi, dword [ecx]
push esi
call fcn.004313a0
add esp, 4
mov dword [ebp - 8], eax
test eax, eax
jne 0x46d89f
cmp byte [esi + 0x49], al
jne 0x46d88e
mov eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x46d89f
xor eax, eax
push esi
mov dword [ebp - 0x2c], eax
call fcn.00431290
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x28]
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0xc]
mov byte [ecx + 0x19], al
mov edx, dword [ebp - 4]
test eax, eax
je 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x20], esi
mov esi, dword [esi + 0x38]
cmp byte [esi + 0x38], 0
je 0x46d93b
cmp byte [esi + 0x39], 0
je 0x46d91e
push dword [esi + 0x10]
call fcn.0047bf40
mov dword [ebp - 8], eax
xor ecx, ecx
mov eax, dword [esi + 0x10]
add esp, 4
mov esi, dword [ebp - 0x20]
cmp dword [eax + 0x18], ecx
sete cl
mov dword [ebp - 0x94], ecx
jmp 0x46d9ba
lea eax, [ebp - 0x94]
push eax
push dword [esi + 0x14]
call fcn.0047b9c0
mov esi, dword [ebp - 0x20]
add esp, 8
mov dword [ebp - 8], eax
jmp 0x46d9ba
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov dword [ecx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x46d95d
push ecx
push dword [ebp - 4]
call fcn.0047d7a0
add esp, 8
xor eax, eax
mov dword [ebp - 8], 0
cmp dword [esi + 0x24], eax
mov esi, dword [ebp - 0x20]
sete al
mov dword [ebp - 0x94], eax
jmp 0x46d9ba
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x4696c9
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + ebx*4 + 0xc]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x94]
push eax
push dword [esi]
mov eax, dword [ecx + ebx*4 + 0x10]
call eax
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov dword [esi + 0x3c], 0
cmp dword [ebp - 0x94], 0
jne 0x46d9ea
mov byte [esi + 0x19], 0
mov esi, dword [ebp - 0xc]
mov eax, dword [esi + ebx*4 + 8]
dec eax
mov dword [ebp - 0x14], eax
movzx eax, byte [esi + ebx*4 + 3]
inc dword [ecx + eax*4 + 0x6c]
jmp 0x46faa4
mov byte [esi + 0x19], 1
jmp 0x46faa1
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 8]
mov dword [ebp - 0x1c], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov dword [ebp - 0x20], eax
test byte [edx + ebx*4 + 3], 1
je 0x46da25
mov eax, dword [ebp + 8]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x46da4c
push esi
call fcn.00471c60
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x46ca6a
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
cmp dword [ecx + 0x38], 0
je 0x46da67
push esi
push ecx
call fcn.00473870
mov edx, dword [ebp - 4]
add esp, 8
mov dword [ebp - 8], eax
jmp 0x46fdfa
test byte [edx + ebx*4 + 3], 0x10
je 0x46da73
mov eax, dword [ecx + 0xc]
jmp 0x46da75
xor eax, eax
push eax
push dword [edx + ebx*4 + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0x4c0414
cdq
push edx
push eax
push dword [esi + 0x10]
push dword [ebp - 0x20]
call fcn.00443490
mov edx, dword [ebp - 4]
add esp, 0x24
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x3c], 0
jmp 0x46fdfa
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov dword [ebp - 0x26c], eax
mov ax, word [edx + ebx*4 + 0xc]
mov word [ebp - 0x268], ax
mov eax, dword [edx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov byte [ebp - 0x266], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x264], eax
lea eax, [ebp - 0x13c]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x26c]
push eax
push ecx
call fcn.00443e40
mov edx, eax
add esp, 0x18
mov dword [ebp - 8], edx
test edx, edx
jne 0x46db2c
cmp dword [ebp - 0x13c], eax
jne 0x46db2c
push dword [ebp - 0x20]
call fcn.00443150
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
mov dword [esi + 0x3c], 0
jmp 0x46fdfa
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov ebx, dword [esi]
mov word [edi + 8], ax
mov eax, dword [esi]
cmp byte [eax + 0x49], 1
je 0x46db73
push esi
call fcn.0042f030
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
jmp 0x46db7a
mov dword [ebp - 8], 0
cmp byte [esi + 0x19], 0
jne 0x46dcdc
lea eax, [ebp - 0x1b4]
xorps xmm0, xmm0
push eax
push ebx
movlpd qword [ebp - 0x1b4], xmm0
call fcn.00443d40
xor eax, eax
mov dword [ebp - 0x1fc], 0
mov word [ebp - 0x20c], ax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1f4], eax
lea eax, [ebp - 0x214]
push eax
push 1
push dword [ebp - 0x1b4]
push 0
push ebx
call fcn.00471da0
mov edx, eax
add esp, 0x1c
mov dword [ebp - 8], edx
test edx, edx
jne 0x4700f4
mov eax, dword [ebp - 0x204]
mov cl, byte [eax]
cmp cl, 0x80
jae 0x46dbf7
movzx ebx, cl
mov dword [ebp - 0xd4], ebx
jmp 0x46dc13
lea ecx, [ebp - 0xd4]
push ecx
push eax
call fcn.00452ab0
mov ebx, dword [ebp - 0xd4]
add esp, 8
mov eax, dword [ebp - 0x204]
cmp ebx, 3
jb 0x4700b0
mov esi, dword [ebp - 0x208]
cmp ebx, esi
jg 0x4700b0
dec eax
add eax, ebx
mov cl, byte [eax]
cmp cl, 0x80
jae 0x46dc3f
movzx edx, cl
mov dword [ebp - 0xd8], edx
jmp 0x46dc55
lea ecx, [ebp - 0xd8]
push ecx
push eax
call fcn.00452ab0
mov edx, dword [ebp - 0xd8]
add esp, 8
lea eax, [edx - 1]
cmp eax, 8
ja 0x4700b0
cmp edx, 7
je 0x4700b0
push edx
call fcn.004733d0
add esp, 4
lea ecx, [eax + ebx]
cmp esi, ecx
jb 0x4700b0
lea ecx, [ebp - 0x330]
sub esi, eax
add esi, dword [ebp - 0x204]
push ecx
push edx
push esi
call fcn.00473210
add esp, 0xc
test dword [ebp - 0x20c], 0x2460
jne 0x46dcac
cmp dword [ebp - 0x1fc], 0
je 0x46dcbb
lea eax, [ebp - 0x214]
push eax
call fcn.0047b4b0
add esp, 4
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x32c]
mov dword [edi], eax
mov eax, 4
mov dword [ebp - 8], 0
mov dword [edi + 4], ecx
mov word [edi + 8], ax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
inc ebx
mov esi, dword [ebp - 0xc]
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
jmp 0x469616
mov eax, dword [ebp + 8]
cmp dl, 0x73
mov ecx, dword [esi + ebx*4 + 4]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x18]
movlpd qword [ebp - 0x150], xmm0
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x280], eax
mov ax, word [esi + ebx*4 + 0x10]
mov word [ebp - 0x27c], ax
sbb al, al
mov byte [ebp - 0x27a], al
mov eax, dword [esi + ebx*4 + 0xc]
xor esi, esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x278], eax
lea eax, [ebp - 0x150]
push eax
push dword [ecx]
call fcn.00443d40
mov edx, dword [ebp - 0x150]
add esp, 8
mov eax, dword [ebp - 0x14c]
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x46de03
jb 0x46dd7e
cmp ecx, 0x7ffffffe
ja 0x46de03
xor eax, eax
mov dword [ebp - 0x2d4], esi
mov word [ebp - 0x2e4], ax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x2cc], eax
lea eax, [ebp - 0x2ec]
push eax
mov eax, dword [ebp - 0x20]
push 1
push edx
push 0
push dword [eax]
call fcn.00471da0
mov edx, eax
add esp, 0x14
mov dword [ebp - 8], edx
test edx, edx
jne 0x46de25
push eax
lea eax, [ebp - 0x280]
push eax
push dword [ebp - 0x2dc]
push dword [ebp - 0x2e0]
call fcn.0047c700
add esp, 0x10
mov esi, eax
test dword [ebp - 0x2e4], 0x2460
jne 0x46ddeb
cmp dword [ebp - 0x2d4], 0
je 0x46ddfa
lea eax, [ebp - 0x2ec]
push eax
call fcn.0047b4b0
add esp, 4
mov dword [ebp - 8], 0
jmp 0x46de25
push 0x4c8db4
push 0x10660
push str.database_corruption_at_line__d_of___.10s_
push 0xb
xor esi, esi
call fcn.004190b0
add esp, 0x10
mov dword [ebp - 8], 0xb
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov cl, byte [eax + ebx*4]
lea eax, [esi + 1]
neg esi
and cl, 1
cmove esi, eax
test esi, esi
mov esi, dword [ebp - 0xc]
jle 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov esi, dword [ebp - 4]
xor edx, edx
mov eax, dword [esi + 4]
test eax, eax
je 0x46de8a
nop dword [eax]
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x46de83
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x46de83
and cl, 0xc
cmp cl, 8
jae 0x46de83
cmp dword [eax + 0x4c], 0
jl 0x46de83
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x46de60
mov eax, 1
mov word [edi + 8], ax
cmp edx, eax
jg 0x4701cd
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xdc], 0
mov ecx, dword [eax + ebx*4 + 0xc]
mov eax, dword [eax + ebx*4 + 4]
mov dword [ebp - 0x1c], ecx
shl ecx, 4
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x4c], ecx
mov esi, dword [ecx + eax + 4]
cmp byte [esi + 9], 0
je 0x46dedb
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x46dedb
push esi
call fcn.0041e570
add esp, 4
lea eax, [ebp - 0xdc]
push eax
push dword [ebp - 0x20]
push esi
call fcn.0041dfb0
add esp, 0xc
mov dword [ebp - 8], eax
cmp byte [esi + 9], 0
je 0x46df06
add dword [esi + 0xc], 0xffffffff
jne 0x46df06
push esi
call fcn.00478290
add esp, 4
cmp dword [ebp - 8], 0
mov eax, 4
mov esi, dword [ebp - 0xdc]
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jne 0x46ca6a
test esi, esi
je 0x46ca6a
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebx + eax + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x46df68
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x46df5b
mov dword [ecx + 0x20], edx
mov eax, dword [eax]
test eax, eax
jne 0x46df50
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebx + ecx + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x46df81
nop
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x46df7b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x46df70
mov al, byte [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
inc al
mov edx, dword [ebp - 4]
inc ebx
mov esi, dword [ebp - 0xc]
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
mov byte [ebp - 0xd], al
jmp 0x469616
xor ecx, ecx
mov dword [ebp - 0xe0], 0
cmp dword [esi + ebx*4 + 0xc], ecx
lea eax, [ebp - 0xe0]
cmove eax, ecx
mov ecx, dword [esi + ebx*4 + 8]
push eax
mov eax, dword [ebp - 4]
add ecx, ecx
push dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.004428c0
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp dword [esi + ebx*4 + 0xc], 0
mov dword [ebp - 8], eax
je case.default.0x469686
mov eax, dword [ebp - 0xe0]
add dword [ecx + 0x5c], eax
mov ecx, dword [esi + ebx*4 + 0xc]
test ecx, ecx
jle 0x4696c9
mov ebx, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
mov edx, dword [ebp - 4]
jmp 0x46fdfd
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x46e03a
push eax
push dword [ebp - 4]
call fcn.004735b0
mov edx, dword [ebp - 4]
add esp, 8
jmp 0x46fdfd
mov eax, dword [ecx]
push 0
push dword [eax + 0x3c]
push dword [eax]
call fcn.004428c0
mov edx, dword [ebp - 4]
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x46fdfd
mov eax, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
shl ecx, 4
mov dword [ebp - 0xe4], 0
add ecx, dword [eax + 0x10]
xor eax, eax
cmp dl, 0x79
setne al
inc eax
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ecx + 4]
call fcn.00442ff0
mov dword [ebp - 8], eax
add esp, 0xc
mov eax, dword [ebp - 0xe4]
cdq
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov dword [edi], eax
jmp 0x46fdfd
mov eax, dword [ebp - 4]
mov edx, str.sqlite_temp_master
mov ecx, dword [esi + ebx*4 + 4]
push dword [esi + ebx*4 + 0x10]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp + 8]
add eax, 0x2c
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x1e0], eax
cmp ecx, 1
mov eax, str.sqlite_master
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.00457120
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x46e104
mov edx, ebx
mov dword [ebp - 8], 7
lea ebx, [eax + 7]
jmp 0x46e18b
push 0
lea eax, [ebp - 0x1e4]
mov byte [ebx + 0x91], 1
push eax
push fcn.004538f0
push esi
push ebx
mov dword [ebp - 0x1d8], 0
call fcn.00410b30
add esp, 0x14
mov edx, ebx
test eax, eax
cmove eax, dword [ebp - 0x1d8]
cmp dword [edx + 0x208], 0
push esi
mov dword [ebp - 8], eax
push edx
je 0x46e150
call fcn.00430f60
add esp, 8
jmp 0x46e17b
call fcn.0042fe70
add esp, 8
test eax, eax
je 0x46e172
mov eax, dword [edx + 0x110]
mov dword [esi], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], esi
jmp 0x46e17d
push esi
call fcn.004134b0
add esp, 4
mov edx, ebx
mov ebx, dword [ebp - 8]
mov byte [edx + 0x91], 0
test ebx, ebx
je 0x46e197
push edx
call fcn.0045f0d0
mov edx, dword [ebp - 4]
add esp, 4
cmp ebx, 7
je 0x46b8e9
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
jmp 0x46fe03
push dword [esi + ebx*4 + 4]
push dword [ebp - 4]
call fcn.004402c0
mov edx, dword [ebp - 4]
add esp, 8
mov dword [ebp - 8], eax
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov esi, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
shl eax, 4
push 0
add eax, dword [esi + 0x10]
push dword [ecx + ebx*4 + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.00452d90
push eax
push esi
call fcn.00448eb0
mov edx, esi
add esp, 0x14
or dword [edx + 0x18], 2
jmp 0x46fdfa
mov eax, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
add ecx, ecx
push 0
mov eax, dword [eax + 0x10]
push dword [esi + ebx*4 + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x18
push eax
call fcn.00452d90
mov edx, eax
add esp, 0xc
test edx, edx
je 0x46e264
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 8]
cmp ecx, edx
jne 0x46e236
mov eax, dword [edx + 0x14]
mov dword [esi + 8], eax
jmp 0x46e255
test ecx, ecx
je 0x46e255
nop word [eax + eax]
mov eax, dword [ecx + 0x14]
cmp eax, edx
je 0x46e24f
mov ecx, eax
test ecx, ecx
jne 0x46e240
jmp 0x46e255
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
push edx
push dword [ebp - 4]
call fcn.0042c560
mov esi, dword [ebp - 0xc]
add esp, 8
mov edx, dword [ebp - 4]
or dword [edx + 0x18], 2
jmp 0x46fdfd
mov eax, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
add ecx, ecx
push 0
mov eax, dword [eax + 0x10]
push dword [esi + ebx*4 + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x28
push eax
call fcn.00452d90
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46ca6a
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x46e2de
lea ecx, [ebp - 0x29c]
add eax, 8
push ecx
push dword [esi + 4]
push eax
call fcn.00429920
add esp, 0xc
test eax, eax
je 0x46e2c3
mov ecx, dword [eax + 8]
jmp 0x46e2c5
xor ecx, ecx
mov eax, dword [ecx + 0x40]
add ecx, 0x40
cmp eax, esi
je 0x46e2d9
nop
lea ecx, [eax + 0x20]
mov eax, dword [ecx]
cmp eax, esi
jne 0x46e2d0
mov eax, dword [eax + 0x20]
mov dword [ecx], eax
push esi
push dword [ebp - 4]
call fcn.00449110
mov edx, dword [ebp - 4]
add esp, 8
or dword [edx + 0x18], 2
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 8]
xor ecx, ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x28], eax
lea esi, [eax*4 + 4]
cmp byte [edx + 0x40], cl
jne 0x46b8e9
cmp byte [edx + 0xfa], cl
je 0x46e335
movzx eax, word [edx + 0xf8]
cdq
cmp ecx, edx
jb 0x46e354
ja 0x46e32c
cmp esi, eax
jbe 0x46e354
mov eax, dword [ebp - 4]
inc dword [eax + 0x108]
push ecx
push esi
call fcn.00457140
mov edx, dword [ebp - 4]
mov ecx, eax
add esp, 8
mov dword [ebp - 0x34], eax
test ecx, ecx
jne 0x46e395
mov byte [edx + 0x40], 1
jmp 0x46b8e9
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x110]
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x46e36c
inc dword [edx + 0x10c]
jmp 0x46e335
mov eax, dword [ecx]
mov dword [edx + 0x110], eax
mov eax, dword [edx + 0xfc]
inc eax
mov dword [edx + 0xfc], eax
inc dword [edx + 0x104]
cmp eax, dword [edx + 0x100]
jle 0x46e395
mov dword [edx + 0x100], eax
mov ecx, dword [ebp - 0xc]
xor esi, esi
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x28], esi
jle 0x46e3e1
mov ebx, dword [ebp - 0x34]
mov edi, eax
nop
push edi
call fcn.00470f70
mov dword [ebx + esi*4], eax
add esp, 4
inc esi
add edi, 0x28
cmp esi, dword [ebp - 0x28]
jl 0x46e3c0
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov dword [eax + esi*4], 0
lea eax, [ebp - 0x140]
movzx ecx, byte [ecx + ebx*4 + 3]
mov ebx, dword [ebp - 4]
add ecx, ecx
mov esi, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x1c]
push dword [edx + eax*8]
mov eax, dword [ebx + 0x10]
push dword [ebp - 0x28]
push esi
push dword [eax + ecx*8 + 4]
call fcn.004436b0
add esp, 0x14
mov dword [ebp - 0x4c], eax
cmp dword [ebx + 0x208], 0
push esi
push ebx
je 0x46e430
call fcn.00430f60
add esp, 8
jmp 0x46e45b
call fcn.0042fe70
add esp, 8
test eax, eax
je 0x46e452
mov eax, dword [ebx + 0x110]
mov dword [esi], eax
dec dword [ebx + 0xfc]
mov dword [ebx + 0x110], esi
jmp 0x46e45b
push esi
call fcn.004134b0
add esp, 4
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x140]
mov eax, esi
cdq
sub dword [ebx + ecx*8], eax
mov eax, 0x2460
sbb dword [ebx + ecx*8 + 4], edx
mov ebx, dword [ebp - 0x20]
test word [ebx + 8], ax
je 0x46e48a
push ebx
call fcn.0047b560
add esp, 4
jmp 0x46e493
mov eax, 1
mov word [ebx + 8], ax
test esi, esi
je 0x46e4b5
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x46b8e6
push fcn.004134b0
push 1
push 0xffffffffffffffff
push eax
push ebx
call fcn.00472360
add esp, 0x14
test byte [ebx + 8], 2
je 0x46ca6a
mov al, byte [ebp - 0x60]
cmp byte [ebx + 0xa], al
je 0x46ca6a
push dword [ebp - 0xa0]
push ebx
call fcn.004726b0
mov edx, dword [ebp - 4]
add esp, 8
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
lea ebx, [eax + eax*4]
jne 0x46e513
push esi
call fcn.00472220
add esp, 4
test byte [esi + 8], 0x20
je 0x46b8e6
mov eax, dword [ebp - 0x18]
push dword [eax + ebx*8 + 4]
push dword [eax + ebx*8]
push dword [esi]
call fcn.0045f780
add esp, 0xc
mov edx, dword [ebp - 4]
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x20], ecx
mov edx, eax
test al, 0x20
je 0x46e5f1
mov esi, dword [ecx]
movzx edx, word [esi + 0x1a]
test dl, 2
jne 0x46e57b
mov eax, edx
test dl, 1
jne 0x46e574
push dword [esi + 8]
call fcn.0043b700
mov ecx, dword [ebp - 0x20]
add esp, 4
mov dword [esi + 8], eax
movzx eax, word [esi + 0x1a]
or eax, 2
mov word [esi + 0x1a], ax
mov eax, dword [esi + 8]
test eax, eax
je 0x46e5ea
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x4c], edx
mov dword [esi + 8], eax
test eax, eax
jne 0x46e5a6
push esi
call fcn.0045f6f0
mov ecx, dword [ebp - 0x20]
add esp, 4
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0xc]
mov eax, dword [esi + ebx*4 + 0xc]
mov ebx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov ebx, 0x2460
test word [eax + 8], bx
je 0x46e5d4
push edx
push ecx
push eax
call fcn.0047cd60
mov ecx, dword [ebp + 8]
add esp, 0xc
jmp 0x46faa4
mov dword [eax], ecx
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], edx
jmp 0x46faa4
movzx edx, word [ecx + 8]
mov esi, dword [ebp - 0xc]
test edx, 0x2460
je 0x46e612
push ecx
call fcn.0047b560
mov ebx, dword [esi + ebx*4 + 8]
add esp, 4
mov ecx, dword [ebp + 8]
dec ebx
mov dword [ebp - 0x14], ebx
jmp 0x46faa4
mov eax, 1
mov word [ecx + 8], ax
mov ebx, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp + 8]
dec ebx
mov dword [ebp - 0x14], ebx
jmp 0x46faa4
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x1c], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0x44], eax
jne 0x46e66f
push esi
call fcn.00472220
add esp, 4
test byte [esi + 8], 0x20
je 0x46b8e6
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
test ecx, ecx
je 0x46e696
push dword [edx + eax*8 + 4]
push dword [edx + eax*8]
push ecx
push dword [esi]
call fcn.0045f7f0
add esp, 0x10
test eax, eax
jne 0x4696be
cmp dword [ebp - 0x1c], eax
jl 0x46ca6a
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x18]
push dword [ecx + eax*8 + 4]
push dword [ecx + eax*8]
push dword [esi]
call fcn.0045f780
mov edx, dword [ebp - 4]
add esp, 0xc
jmp 0x46fdfa
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov esi, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 0x44], esi
cmp byte [ecx + ebx*4 + 3], 0
mov eax, dword [ecx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x1c], edx
je 0x46e6f6
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x46e6f6
cmp dword [eax + 0x18], ecx
je 0x46ca6a
mov eax, dword [eax + 4]
test eax, eax
jne 0x46e6e6
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
cmp eax, dword [ecx + 0x80]
jge 0x4701e4
test byte [edx + 8], 0x40
jne 0x46e8b7
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, ecx
mov dword [ebp - 0x4c], eax
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 0x10]
lea eax, [eax + ecx*4]
add eax, 0x48
mov dword [ebp - 0x20], eax
cdq
mov ebx, edx
mov ecx, eax
mov edx, dword [ebp - 4]
cmp byte [edx + 0x40], 0
jne 0x46b8e9
cmp byte [edx + 0xfa], 0
je 0x46e773
movzx eax, word [edx + 0xf8]
cdq
cmp ebx, edx
jb 0x46e86f
ja 0x46e76a
cmp ecx, eax
jbe 0x46e86f
mov eax, dword [ebp - 4]
inc dword [eax + 0x108]
push ebx
push ecx
call fcn.00457140
mov edx, dword [ebp - 4]
mov esi, eax
add esp, 8
test esi, esi
jne 0x46e78a
mov byte [edx + 0x40], 1
mov ebx, esi
test esi, esi
je 0x46b8e9
push dword [ebp - 0x20]
push 0
push esi
call fcn.004a2550
mov eax, dword [ebp - 0x1c]
mov ecx, 0x2460
add esp, 0xc
test word [eax + 8], cx
jne 0x46e7b6
cmp dword [eax + 0x18], 0
je 0x46e7c2
push eax
call fcn.0047b4b0
mov eax, dword [ebp - 0x1c]
add esp, 4
mov edx, dword [ebp - 0x44]
mov ecx, 0x40
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x4c]
mov dword [eax], esi
mov eax, dword [ebp + 8]
mov dword [esi], eax
mov dword [esi + 0x3c], ecx
mov eax, dword [edx + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x28], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [edx + 0x14]
mov edx, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0xc8]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0xc4]
mov dword [esi + 0x38], eax
lea eax, [ecx*4 + 9]
add eax, ecx
lea ecx, [esi + eax*8]
lea eax, [esi + 0x48]
cmp eax, ecx
je 0x46e861
mov edx, dword [ebp - 4]
mov esi, 0x80
mov word [eax + 8], si
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x46e853
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x44]
mov eax, dword [ecx + 0xb8]
jmp 0x46e8bc
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x110]
test esi, esi
jne 0x46e887
inc dword [edx + 0x10c]
jmp 0x46e773
mov eax, dword [esi]
mov dword [edx + 0x110], eax
mov eax, dword [edx + 0xfc]
inc eax
mov dword [edx + 0xfc], eax
inc dword [edx + 0x104]
cmp eax, dword [edx + 0x100]
jle 0x46e8b0
mov dword [edx + 0x100], eax
mov ebx, esi
jmp 0x46e794
mov ebx, dword [edx]
mov ecx, dword [ebp + 8]
inc eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ecx + 0xb8], eax
lea edx, [ebx + 0x20]
mov eax, dword [ecx + 0xb0]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [edx], eax
mov eax, dword [ebp - 0x64]
mov dword [edx + 4], eax
mov eax, dword [ecx + 0x5c]
mov dword [ebx + 0x44], eax
mov dword [ecx + 0xb0], ebx
mov dword [ecx + 0x5c], 0
mov dword [ecx + 8], edx
mov eax, dword [ebx + 0x3c]
mov dword [ecx + 0x1c], eax
mov dword [ebp - 0x18], edx
movzx edx, word [ebx + 0x40]
lea eax, [eax + eax*4]
mov dword [ecx + 0x24], edx
lea eax, [eax + 9]
lea ecx, [ebx + eax*8]
mov ebx, dword [ebp + 8]
mov dword [ebx + 0x38], ecx
lea ecx, [ecx + edx*4]
mov eax, dword [esi]
mov dword [ebp - 0xc], eax
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0xc8], ecx
mov eax, dword [esi + 0x10]
push eax
push 0
push ecx
mov dword [ebx + 0xc4], eax
call fcn.004a2550
mov edx, dword [ebp - 4]
add esp, 0xc
jmp 0x46fdfa
mov edx, dword [ecx + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
add eax, dword [esi + ebx*4 + 4]
mov ebx, dword [edx + 0xc]
lea esi, [eax + eax*4]
mov eax, 0x2460
test word [edi + 8], ax
je 0x46e97b
push edi
call fcn.0047b560
add esp, 4
movups xmm0, xmmword [ebx + esi*8]
mov edx, dword [ebp - 4]
movups xmmword [edi], xmm0
mov eax, dword [ebx + esi*8 + 0x10]
mov dword [edi + 0x10], eax
mov eax, 0x800
test word [ebx + esi*8 + 8], ax
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jne 0x469b14
mov ax, word [edi + 8]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov ecx, dword [ebp + 8]
mov word [edi + 8], ax
jmp 0x46fe03
mov ecx, dword [ebp - 4]
mov eax, dword [esi + ebx*4 + 8]
cdq
test dword [ecx + 0x18], 0x1000000
je 0x46e9e6
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
mov edx, ecx
jmp 0x46fdfd
cmp dword [esi + ebx*4 + 4], 0
mov ebx, dword [ebp - 8]
je 0x46ea06
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
mov edx, ecx
mov ecx, dword [ebp + 8]
jmp 0x46fe03
mov ecx, dword [ebp + 8]
add dword [ecx + 0x90], eax
adc dword [ecx + 0x94], edx
mov edx, dword [ebp - 4]
jmp 0x46fe03
cmp dword [esi + ebx*4 + 4], 0
mov edx, dword [ebp - 4]
je 0x46ea58
mov eax, dword [edx + 0x1f8]
or eax, dword [edx + 0x1fc]
jne 0x46fe00
mov eax, dword [edx + 0x200]
or eax, dword [edx + 0x204]
jne 0x46fe00
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0x14], ebx
jmp 0x46fe00
mov eax, dword [ecx + 0x90]
or eax, dword [ecx + 0x94]
jmp 0x46ea33
mov edx, dword [ecx + 0xb0]
test edx, edx
je 0x46ea8f
mov eax, dword [edx + 4]
test eax, eax
je 0x46ea80
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x46ea77
mov eax, dword [esi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea esi, [eax + ecx*8]
jmp 0x46ea9c
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
mov dword [ebp - 0x1c], esi
call fcn.00470f70
mov dword [esi], eax
mov ecx, 0xbe04
movzx eax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
mov ecx, dword [ebp - 0x18]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00470f70
mov dword [esi], eax
mov ecx, 0xbe04
movzx eax, word [esi + 8]
add esp, 8
and ax, cx
mov dword [esi + 4], edx
mov ecx, dword [esi]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 4], edx
jg 0x46ca6a
jl 0x46eb08
cmp dword [eax], ecx
jae 0x46ca6a
mov dword [eax + 4], edx
mov edx, dword [ebp - 4]
mov dword [eax], ecx
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 4], 0
jl case.default.0x469686
jg 0x46eb36
cmp dword [edx + eax*8], 0
jbe case.default.0x469686
mov edx, dword [esi + ebx*4 + 8]
dec edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ebx*4 + 0xc]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [ebp - 0x3c]
adc dword [eax + ecx*8 + 4], edx
cmp dword [eax + ecx*8 + 4], 0
jg 0x4696c9
jl 0x4696c1
cmp dword [eax + ecx*8], 0
jae 0x4696c9
mov ecx, dword [esi + ebx*4 + 8]
mov edx, dword [ebp - 4]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ebx*4 + 0xc]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
adc dword [eax + ecx*8 + 4], edx
mov edx, edi
mov eax, dword [eax + ecx*8]
mov edi, dword [ebp - 0x3c]
or eax, dword [edx + ecx*8 + 4]
mov edx, dword [ebp - 4]
jne 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
movzx edx, byte [esi + ebx*4 + 3]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
je 0x46ebef
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x46ebe4
mov ecx, dword [ebp - 0xc]
push esi
push edx
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x184], eax
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x180], eax
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x234], ax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x188]
push eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x174], 0
mov byte [ebp - 0x170], 0
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
cmp dword [ebp - 0x174], 0
je 0x46ece2
mov eax, dword [ebp - 0x234]
and eax, 0x202
cmp eax, 0x202
jne 0x46eca3
cmp byte [ebp - 0x232], 1
jne 0x46eca3
mov eax, dword [ebp - 0x22c]
jmp 0x46ecc1
test byte [ebp - 0x234], 1
je 0x46ecb0
xor eax, eax
jmp 0x46ecc1
lea eax, [ebp - 0x23c]
push 1
push eax
call fcn.0047a370
add esp, 8
push eax
mov eax, dword [ebp + 8]
push 0x4c4914
push dword [ebp - 4]
add eax, 0x2c
push eax
call fcn.00462d70
mov eax, dword [ebp - 0x174]
add esp, 0x10
mov dword [ebp - 8], eax
cmp byte [ebp - 0x170], 0
mov esi, dword [ebp - 0xc]
je 0x46ed2f
mov eax, dword [esi + ebx*4 - 0x10]
test eax, eax
je 0x46ed2f
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46ed19
push 0
push 1
push eax
call fcn.0047cd60
add esp, 0xc
jmp 0x46ed2f
mov ecx, 4
mov dword [eax], 1
mov dword [eax + 4], 0
mov word [eax + 8], cx
test dword [ebp - 0x234], 0x2460
jne 0x46ed48
cmp dword [ebp - 0x224], 0
je 0x4696c9
lea eax, [ebp - 0x23c]
push eax
call fcn.0047b4b0
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xc]
push dword [eax + ebx*4 + 0x10]
push esi
call fcn.00471cc0
add esp, 8
mov dword [ebp - 8], eax
test eax, eax
je 0x46edd4
test esi, esi
jne 0x46ed8b
xor eax, eax
jmp 0x46edbc
movzx ecx, word [esi + 8]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x46eda8
cmp byte [esi + 0xa], 1
jne 0x46eda8
mov eax, dword [esi + 0x10]
jmp 0x46edbc
test cl, 1
je 0x46edb1
xor eax, eax
jmp 0x46edbc
push 1
push esi
call fcn.0047a370
add esp, 8
push eax
mov eax, dword [ebp + 8]
push 0x4c4914
push dword [ebp - 4]
add eax, 0x2c
push eax
call fcn.00462d70
add esp, 0x10
movzx ecx, word [esi + 8]
mov eax, ecx
test cl, 2
je 0x46edfa
mov cl, byte [ebp - 0x60]
cmp byte [esi + 0xa], cl
je 0x46edfa
push dword [ebp - 0xa0]
push esi
call fcn.004726b0
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x46ca6a
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x46ee0e
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
mov edx, dword [ebp - 4]
cmp ecx, dword [eax + 0x58]
jg 0x46d554
jmp 0x46fdfa
lea eax, [ebp - 0x120]
mov dword [ebp - 0x128], 0
push eax
lea eax, [ebp - 0x124]
mov dword [ebp - 0x120], 0xffffffff
push eax
push dword [esi + ebx*4 + 8]
mov dword [ebp - 0x124], 0xffffffff
push dword [esi + ebx*4 + 4]
push dword [ebp - 4]
call fcn.00445370
mov ecx, eax
add esp, 0x14
mov dword [ebp - 8], ecx
cmp ecx, 5
jne 0x46ee7c
mov dword [ebp - 8], 0
mov dword [ebp - 0x128], 1
mov eax, dword [esi + ebx*4 + 0xc]
xor ebx, ebx
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0x2460
lea edi, [ebx + 4]
mov eax, dword [ebp + ebx*4 - 0x128]
cdq
test word [esi + 8], cx
je 0x46eeb3
push edx
push eax
push esi
call fcn.0047cd60
add esp, 0xc
mov ecx, 0x2460
jmp 0x46eebc
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 8], di
inc ebx
add esi, 0x28
cmp ebx, 3
jl 0x46ee93
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
jmp 0x46fdfa
mov eax, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [esi + ebx*4 + 0xc]
add ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx edi, byte [esi + 5]
mov dword [ebp - 0x28], edi
cmovne edi, edx
cmp byte [esi + 0x10], 3
jae 0x46ef1a
mov eax, dword [esi + 0x40]
cmp dword [eax], 0
je 0x46ef15
cmp dword [esi + 0x4c], 0
jg 0x46ef1a
jl 0x46ef15
cmp dword [esi + 0x48], 0
ja 0x46ef1a
mov edx, dword [ebp - 0x28]
jmp 0x46ef1f
mov edx, dword [ebp - 0x28]
mov edi, edx
cmp byte [esi + 0xf], 0
mov ecx, 0x4c0414
jne 0x46ef30
mov ecx, dword [esi + 0xa8]
cmp edi, 5
jne 0x46efbb
mov eax, ecx
test ecx, ecx
je 0x46ef69
cmp byte [ecx], 0
je 0x46ef4a
inc eax
cmp byte [eax], 0
jne 0x46ef44
sub eax, ecx
and eax, 0x3fffffff
je 0x46ef69
cmp byte [esi + 4], 0
jne 0x46efbb
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
cmp dword [eax], 2
jl 0x46ef69
cmp dword [eax + 0x34], 0
jne 0x46efbb
mov edi, edx
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x46ef75
mov edi, dword [ebp - 0x28]
push edi
push esi
call fcn.00459560
mov esi, dword [ebp - 0xc]
add esp, 8
mov edx, dword [ebp - 0x18]
mov ecx, dword [esi + ebx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov ecx, 0xa02
mov dword [ebp - 0x3c], edi
mov word [edi + 8], cx
cmp eax, 6
jne 0x46f132
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov byte [edi + 0xa], 1
jmp 0x46f171
cmp edi, edx
je 0x46ef6b
cmp edx, 5
je 0x46efc9
cmp edi, 5
jne 0x46ef6b
mov ecx, dword [ebp - 4]
cmp byte [ecx + 0x3e], 0
je 0x47020d
cmp dword [ecx + 0x98], 1
jg 0x47020d
cmp edx, 5
jne 0x46f0f9
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [esi + 0xd0], ecx
jne 0x46f091
mov al, byte [esi + 0x11]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 8], ecx
cmp al, 1
jb 0x46f011
cmp al, dl
jne 0x46f044
cmp byte [esi + 0xd], cl
je 0x46f01d
xor ecx, ecx
mov dword [ebp - 8], ecx
jmp 0x46f03a
mov eax, dword [esi + 0x3c]
push 1
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1c]
call eax
mov ecx, eax
add esp, 8
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46ef72
cmp byte [esi + 0x11], 5
je 0x46f044
mov byte [esi + 0x11], 1
test ecx, ecx
jne 0x46ef72
mov eax, dword [esi]
lea ecx, [ebp - 0xe8]
push ecx
push 0
push dword [esi + 0xd4]
push eax
mov eax, dword [eax + 0x20]
call eax
mov ecx, eax
add esp, 0x10
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46ef72
cmp dword [ebp - 0xe8], eax
je 0x46f091
push esi
call fcn.00434be0
mov ecx, eax
add esp, 4
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46ef72
cmp dword [esi + 0xd0], 0
je 0x46f0e5
push esi
call fcn.00434ab0
mov ecx, eax
add esp, 4
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46ef72
push dword [esi + 0xc8]
movzx eax, byte [esi + 9]
push dword [esi + 0x98]
push eax
push dword [esi + 0xd0]
call fcn.00474b80
push esi
mov dword [ebp - 8], eax
mov dword [esi + 0xd0], 0
call fcn.00434b30
mov ecx, dword [ebp - 8]
add esp, 0x14
test ecx, ecx
jne 0x46ef72
push edi
push esi
call fcn.00459560
add esp, 8
jmp 0x46f113
cmp edx, 4
jne 0x46f109
push 2
push esi
call fcn.00459560
add esp, 8
cmp dword [ebp - 8], 0
jne 0x46ef72
xor eax, eax
cmp edi, 5
sete al
inc eax
push eax
push dword [ebp - 0x20]
call fcn.00444f80
mov ecx, eax
add esp, 8
mov dword [ebp - 8], ecx
jmp 0x46ef6e
mov eax, dword [eax*4 + 0x4c20dc]
mov dword [edi + 0x10], eax
test eax, eax
jne 0x46f149
mov dword [edi + 0xc], eax
mov byte [edi + 0xa], 1
jmp 0x46f171
cmp byte [eax], 0
mov edx, eax
je 0x46f15a
inc eax
cmp byte [eax], 0
jne 0x46f150
movzx ecx, word [edi + 8]
sub eax, edx
mov byte [edi + 0xa], 1
and eax, 0x3fffffff
mov dword [edi + 0xc], eax
test cl, 2
je 0x4696c9
cmp byte [ebp - 0x60], 1
je 0x4696c9
push dword [ebp - 0xa0]
push edi
call fcn.004726b0
mov edx, dword [ebp - 4]
add esp, 8
jmp 0x46fdfd
push dword [ebp - 4]
lea eax, [ecx + 0x2c]
push eax
call fcn.0045ff90
mov edx, dword [ebp - 4]
add esp, 8
mov dword [ebp - 8], eax
jmp 0x46fdfd
mov eax, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x4c], eax
cmp byte [eax + 9], 0
mov edx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
je 0x46f1e0
inc dword [eax + 0xc]
cmp byte [eax + 0xa], 0
jne 0x46f1e0
push eax
call fcn.0041e570
mov edx, dword [ebp - 0x1c]
add esp, 4
cmp byte [edx + 0x11], 0
jne 0x46f1f2
mov dword [ebp - 8], 0x65
jmp 0x46f2bf
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x28], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x38]
movzx esi, byte [ecx + 0x24]
movzx eax, byte [ecx + 0x25]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x26]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x27]
shl esi, 8
or esi, eax
push esi
push dword [ebp - 0x28]
push edx
call fcn.00429580
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x28], eax
jae 0x46f254
push 0x4c8db4
push 0xd873
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.004190b0
add esp, 0x10
mov dword [ebp - 8], 0xb
jmp 0x46f2bc
test esi, esi
je 0x46f2b5
mov esi, dword [ebp - 0x1c]
push 0
push 0
push esi
call fcn.0043b9e0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46f2bc
push esi
call fcn.0042f620
push ecx
push dword [ebp - 0x28]
push dword [ebp - 0x20]
push esi
call fcn.0042f250
mov ecx, eax
add esp, 0x14
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46f2bc
mov eax, dword [esi + 0xc]
push dword [eax + 0x44]
call fcn.00459da0
push dword [esi + 0x2c]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x38]
add eax, 0x1c
push eax
call fcn.0045e4d0
add esp, 0xc
jmp 0x46f2bc
mov dword [ebp - 8], 0x65
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 9], 0
je 0x46f2d7
add dword [eax + 0xc], 0xffffffff
jne 0x46f2d7
push eax
call fcn.00478290
add esp, 4
cmp dword [ebp - 8], 0x65
mov edx, dword [ebp - 4]
jne 0x46fdfd
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 8], 0
mov dword [ebp - 0x14], ecx
xor ebx, ebx
mov ecx, dword [ebp + 8]
jmp 0x46fe03
cmp dword [esi + ebx*4 + 4], 0
mov edx, dword [ebp - 4]
jne 0x46f322
mov eax, dword [edx + 4]
test eax, eax
je 0x46fe00
or dword [eax + 0x58], 0x20
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x46f312
jmp 0x46fe00
or dword [ecx + 0x58], 0x20
jmp 0x46fe00
mov dl, byte [esi + ebx*4 + 0xc]
test dl, dl
jne 0x46f343
mov eax, dword [ebp - 4]
test dword [eax + 0x18], 0x4000
jne 0x46fdf0
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x28], eax
add ecx, ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 8], 0
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
je 0x46f42b
inc dword [esi + 0xc]
inc dl
cmp byte [esi + 0xa], 0
mov byte [ebp - 0xb0], dl
jne 0x46f385
push esi
call fcn.0041e570
add esp, 4
push dword [ebp - 0xb0]
push dword [ebp - 0x28]
push esi
call fcn.00438ec0
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
test edx, edx
jne 0x46f416
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], eax
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46f3c4
mov eax, dword [ebp - 0x28]
cmp dword [ecx + 4], eax
jne 0x46f3bd
cmp dword [ecx], esi
je 0x46f3f8
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x46f3b4
push 0
push 0x10
call fcn.00457140
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x46f40f
mov eax, dword [ebp - 0x28]
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0x20]
mov dword [ecx + 4], eax
mov dword [ecx], esi
mov eax, dword [edx + 0x48]
mov dword [ecx + 0xc], eax
mov dword [edx + 0x48], ecx
mov al, byte [ebp - 0xb0]
cmp al, byte [ecx + 8]
jbe 0x46f406
mov byte [ecx + 8], al
mov dword [ebp - 8], 0
jmp 0x46f416
mov dword [ebp - 8], 7
cmp byte [esi + 9], 0
je 0x46f42b
add dword [esi + 0xc], 0xffffffff
jne 0x46f42b
push esi
call fcn.00478290
add esp, 4
cmp byte [ebp - 8], 6
mov esi, dword [ebp - 0xc]
jne 0x4696c9
push dword [esi + ebx*4 + 0x10]
mov eax, dword [ebp + 8]
push str.database_table_is_locked:__s
push dword [ebp - 4]
add eax, 0x2c
push eax
call fcn.00462d70
mov edx, dword [ebp - 4]
add esp, 0x10
jmp 0x46fdfd
mov eax, dword [ebp - 4]
mov esi, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 8], 0
mov edx, dword [eax + 0x130]
test edx, edx
jle 0x46f498
cmp dword [eax + 0x148], 0
jne 0x46f498
mov dword [ebp - 8], 6
test esi, esi
jne 0x46f51a
lea ebx, [esi + 6]
mov edx, eax
mov esi, dword [ebp - 0xc]
jmp 0x46fe03
test esi, esi
jne 0x46f4ad
mov ebx, dword [ebp - 0x14]
mov edx, eax
mov dword [ebp - 8], esi
inc ebx
mov esi, dword [ebp - 0xc]
jmp 0x469616
mov eax, dword [esi + 8]
mov ebx, dword [eax]
cmp dword [ebx + 0x38], 0
je 0x46f51a
xor ecx, ecx
test edx, edx
jle 0x46f4d7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x148]
cmp dword [eax], esi
je 0x46f530
inc ecx
add eax, 4
cmp ecx, edx
jl 0x46f4c7
push dword [ebp - 4]
call fcn.0042ef60
mov ecx, eax
add esp, 4
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46f51a
push dword [esi + 8]
mov eax, dword [ebx + 0x38]
call eax
mov ecx, eax
add esp, 4
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x46f51a
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x130]
mov eax, dword [edx + 0x148]
mov dword [eax + ecx*4], esi
inc dword [edx + 0x130]
inc dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 8]
call fcn.00473fe0
mov edx, dword [ebp - 4]
add esp, 8
jmp 0x46fdfa
mov dword [ebp - 8], 0
jmp 0x46f51a
mov eax, dword [ebp - 0xc]
lea esi, [ecx + 0x2c]
mov edx, dword [ebp - 4]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, dword [ebp - 0xc]
push dword [eax + ebx*4 + 0x10]
push edx
call fcn.0044ea90
mov dword [ebp - 0x20], eax
mov ecx, dword [eax + 0x38]
lea eax, [ebp - 0x240]
push eax
mov ebx, dword [ecx]
mov ecx, dword [ebp - 4]
add ecx, 0x134
push ebx
push ecx
call fcn.00429920
add esp, 0x18
test eax, eax
je 0x46f613
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46f613
mov eax, dword [ecx]
push esi
mov esi, dword [ebp - 0x20]
push dword [eax + 4]
push ecx
push esi
push dword [ebp - 4]
call fcn.0047e110
mov edx, eax
add esp, 0x14
mov dword [ebp - 8], edx
test edx, edx
mov edx, dword [ebp - 4]
jne 0x46fdfa
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x46fdfa
cmp dword [eax], edx
je 0x46f5d1
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x46f5c1
jmp 0x46fdfa
push edx
call fcn.0042ef60
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x46e527
mov ebx, dword [ebp - 4]
push esi
push ebx
call fcn.00452900
mov edx, dword [ebx + 0x130]
add esp, 8
mov ecx, dword [ebx + 0x148]
mov dword [ecx + edx*4], eax
mov edx, ebx
inc dword [edx + 0x130]
inc dword [eax + 0xc]
jmp 0x46fdfa
push ebx
push str.no_such_module:__s
push dword [ebp - 4]
call fcn.00457120
mov edx, dword [ebp - 4]
add esp, 0xc
mov dword [esi], eax
mov dword [ebp - 8], 1
jmp 0x46fdfa
mov eax, dword [ecx + 0x58]
mov edx, dword [ebp - 4]
and eax, 0xfffffffb
or eax, 8
mov dword [ebp - 8], 0
mov dword [ecx + 0x58], eax
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push dword [esi + ebx*4 + 0x10]
push edx
call fcn.0044ea90
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46f6a3
cmp dword [esi + 0x3c], 0
je 0x46f6a3
push esi
push dword [ebp - 4]
call fcn.0047e680
mov ebx, eax
mov ecx, dword [ebx + 4]
push dword [ebx + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov edx, eax
add esp, 0xc
mov dword [ebp - 8], edx
test edx, edx
jne 0x46f6a3
mov dword [ebx + 8], eax
push ebx
mov dword [esi + 0x3c], eax
call fcn.00474560
add esp, 4
mov ecx, dword [ebp + 8]
and dword [ecx + 0x58], 0xfffffff3
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 0x10]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0
push ecx
mov esi, dword [eax + 8]
push esi
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 0x18]
call eax
push esi
push dword [ebp + 8]
mov dword [ebp - 8], eax
call fcn.00473fe0
add esp, 0x10
cmp dword [ebp - 8], 0
jne 0x46ca6a
mov eax, dword [ebp - 0xa8]
push 0
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov esi, dword [ebp - 0xc]
push dword [esi + ebx*4 + 4]
push dword [ebp + 8]
call fcn.0041a620
add esp, 0x14
test eax, eax
je 0x46f732
mov ecx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
inc ebx
movsd xmm0, qword [ebp - 0x74]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp + 8]
jmp 0x469616
mov eax, dword [ebp - 4]
push dword [ebp - 0xa8]
mov byte [eax + 0x40], 1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
call eax
mov ebx, dword [ebp - 0x14]
add esp, 4
mov edx, dword [ebp - 4]
inc ebx
movsd xmm0, qword [ebp - 0x74]
mov ecx, dword [ebp + 8]
jmp 0x469616
mov eax, dword [esi + ebx*4 + 0xc]
mov esi, dword [ebp - 0x18]
add esi, 0x28
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xc]
lea esi, [esi + edx*8]
movd xmm0, esi
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x68], esi
mov esi, dword [esi]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x4c], esi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xac], eax
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x1c], edx
test esi, esi
jle 0x46f8cb
cmp esi, 0x10
jb 0x46f8ac
cmp dword [0x4dcc20], 2
jl 0x46f8ac
movaps xmm2, xmmword [0x4c0630]
mov eax, esi
and eax, 0x8000000f
jns 0x46f7ef
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x4c9380]
sub esi, eax
mov dword [ebp - 0x20], esi
add edx, 0x20
mov edi, dword [ebp - 0x20]
mov esi, 8
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, edi
jl 0x46f810
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
cmp ecx, esi
jge 0x46f8cb
mov edi, dword [ebp - 0x68]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x3c]
nop dword [eax + eax]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x46f8c0
mov ecx, dword [ebp + 8]
push edx
push esi
mov esi, dword [ebp - 0xac]
mov eax, dword [ecx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 0xc]
push dword [eax + ebx*4 + 0x10]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x90]
push esi
mov eax, dword [eax + 0x20]
call eax
push dword [ebp - 0x28]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push eax
and dword [eax + 0x58], 0xfffffff3
call fcn.00473fe0
add esp, 0x1c
cmp dword [ebp - 8], 0
jne 0x46f93e
mov eax, dword [ebp - 0x44]
push esi
mov eax, dword [eax + 0x28]
call eax
mov esi, dword [ebp - 0xc]
add esp, 4
test eax, eax
je 0x46f941
mov eax, dword [esi + ebx*4 + 8]
mov edx, dword [ebp - 4]
dec eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x19], 0
jmp 0x46fdfd
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 4]
mov byte [eax + 0x19], 0
jmp 0x46fdfd
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x20], ecx
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x4c], edx
je 0x46f9a3
mov eax, 0x2460
test word [edx + 8], ax
je 0x46f992
push edx
call fcn.0047b560
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfd
mov eax, 1
mov word [edx + 8], ax
mov edx, dword [ebp - 4]
jmp 0x46fdfd
mov eax, dword [ecx + 0x24]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movlpd qword [ebp - 0x304], xmm0
movlpd qword [ebp - 0x2fc], xmm0
movlpd qword [ebp - 0x2f4], xmm0
mov dword [ebp - 0x308], edx
mov ax, word [edx + 8]
and ax, word [ebp - 0xf0]
or ax, 1
mov word [edx + 8], ax
mov eax, dword [ebp - 0xc]
push dword [eax + ebx*4 + 8]
lea eax, [ebp - 0x308]
push eax
mov eax, dword [ebp - 0x20]
push dword [eax + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
push esi
push dword [ebp + 8]
mov dword [ebp - 8], eax
call fcn.00473fe0
mov eax, dword [ebp - 0x2f4]
add esp, 0x14
mov ecx, dword [ebp - 8]
test eax, eax
mov esi, dword [ebp - 0x4c]
cmovne ecx, eax
mov dword [ebp - 8], ecx
jmp 0x46edd4
mov eax, dword [ebp + 8]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x20], ecx
cmp byte [ecx + 0x19], 0
jne 0x4696c9
mov eax, dword [ecx + 0x24]
mov edi, dword [ebp + 8]
mov esi, dword [eax]
mov eax, dword [ebp + 8]
mov edx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
mov dword [ebp - 0x4c], edx
or eax, 4
mov dword [edi + 0x58], eax
push dword [ecx + 0x24]
mov eax, dword [edx + 0x24]
call eax
mov dword [ebp - 8], eax
mov eax, edi
push esi
push eax
and dword [eax + 0x58], 0xfffffff3
call fcn.00473fe0
mov edi, dword [ebp - 0x3c]
add esp, 0xc
cmp dword [ebp - 8], 0
jne 0x46fa8e
mov eax, dword [ebp - 0x20]
push dword [eax + 0x24]
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x46fa9e
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0x14], ebx
jmp 0x46faa4
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
cmp dword [edx + 0xf0], 0
jne 0x4703a3
mov ecx, dword [edx + 0x124]
test ecx, ecx
je 0x46fdfd
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x9c]
jb 0x46fdfd
mov ebx, dword [edx + 0x12c]
xor edx, edx
div ebx
mov eax, dword [ebp - 4]
sub ebx, edx
add ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x9c], ebx
push dword [eax + 0x128]
call ecx
add esp, 4
test eax, eax
jne 0x470295
mov edx, dword [ebp - 4]
jmp 0x46fdfd
mov eax, dword [esi + ebx*4 + 0x10]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x1c], ecx
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 2
lea esi, [edx + eax*8]
je 0x46fb49
cmp byte [esi + 0xa], 1
je 0x46fb49
push 1
push esi
call fcn.004726b0
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
test edx, edx
jne 0x46ca6a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
push dword [esi + 0x10]
push ecx
mov eax, dword [eax + 0x4c]
call eax
push dword [ebp - 0x1c]
mov dword [ebp - 8], eax
push dword [ebp + 8]
call fcn.00473fe0
mov ecx, dword [ebp + 8]
add esp, 0x10
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
and dword [ecx + 0x58], 0xffffffdf
jmp 0x46fe00
mov eax, dword [esi + ebx*4 + 0x10]
mov edx, dword [esi + ebx*4 + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
cmp dword [eax + 0x34], 0
je case.default.0x469686
mov eax, dword [ebp - 4]
mov esi, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x18]
mov al, byte [eax + 0x44]
mov byte [ebp - 0x2d], al
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x46fbc1
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x46fbb6
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov al, byte [eax + ebx*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [ebp - 0x1a4]
push eax
mov eax, dword [ebp - 0x4c]
push esi
mov esi, dword [ebp - 0x20]
push edx
mov eax, dword [eax + 0x34]
push esi
call eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov al, byte [ebp - 0x2d]
push esi
push dword [ebp + 8]
mov byte [ecx + 0x44], al
call fcn.00473fe0
add esp, 0x18
cmp dword [ebp - 8], 0
jne 0x46fc35
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
cmp dword [esi + ebx*4 + 4], 0
je 0x46fc95
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x1a4]
mov dword [edx + 0x24], ecx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov dword [ebp - 0x48], eax
inc dword [ecx + 0x5c]
jmp 0x46fe00
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x64], esi
cmp al, 0x13
jne 0x46fc8f
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x64], esi
mov eax, dword [ecx + ebx*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x46fc8f
mov cl, byte [ecx + ebx*4 + 3]
mov dword [ebp - 0x64], esi
cmp cl, 4
jne 0x470247
mov ebx, dword [ebp - 0x14]
xor eax, eax
movsd xmm0, qword [ebp - 0x74]
inc ebx
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, edx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x48], eax
jmp 0x469620
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x5c]
jmp 0x46fe00
mov edx, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edi], eax
mov dword [edi + 4], 0
jmp 0x46fdfd
mov eax, dword [ebp - 4]
mov ecx, dword [esi + ebx*4 + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + ebx*4 + 0xc]
test ecx, ecx
je 0x46fcec
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x2c]
cmp ebx, ecx
cmovb ebx, ecx
jmp 0x46fcee
xor ebx, ebx
cmp byte [esi + 9], 0
je 0x46fd06
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x46fd06
push esi
call fcn.0041e570
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test ebx, ebx
jle 0x46fd17
mov dword [eax + 0x9c], ebx
jmp 0x46fd1d
mov ebx, dword [eax + 0x9c]
cmp byte [esi + 9], 0
je 0x46fd32
add dword [esi + 0xc], 0xffffffff
jne 0x46fd32
push esi
call fcn.00478290
add esp, 4
mov eax, ebx
cdq
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov dword [edi], eax
jmp 0x46fdfa
mov eax, dword [esi + ebx*4 + 8]
test eax, eax
je 0x46fd50
lea edx, [eax - 1]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
cmp dword [edx + 0xac], 0
je 0x46fe00
test dword [ecx + 0x58], 0x800
jne 0x46fe00
mov eax, dword [esi + ebx*4 + 0x10]
test eax, eax
jne 0x46fd83
mov eax, dword [ecx + 0xa8]
test eax, eax
je 0x46fe00
push eax
push ecx
call fcn.00470680
mov esi, eax
mov eax, dword [ebp - 4]
push esi
push dword [eax + 0xb0]
mov ecx, dword [eax + 0xac]
call ecx
mov edx, dword [ebp - 4]
add esp, 0x10
test esi, esi
je 0x46fdfa
cmp dword [edx + 0x208], 0
push esi
push edx
je 0x46fdc0
call fcn.00430f60
mov edx, dword [ebp - 4]
add esp, 8
jmp 0x46fdfa
call fcn.0042fe70
add esp, 8
test eax, eax
je 0x46fde2
mov eax, dword [edx + 0x110]
mov dword [esi], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], esi
jmp 0x46fdfa
push esi
call fcn.004134b0
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x46fdfa
mov edx, eax
jmp 0x46fe00
mov edx, eax
jmp 0x46fdfa
mov edx, esi
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 8]
inc dword [ebp - 0x14]
test ebx, ebx
jne 0x47012d
movsd xmm0, qword [ebp - 0x74]
mov ebx, dword [ebp - 0x14]
jmp 0x469619
mov edi, dword [ebp + 8]
mov dword [edi + 0x50], ecx
mov al, byte [esi + ebx*4 + 8]
mov byte [edi + 0x56], al
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x4c], eax
test ecx, ecx
je 0x46feb2
mov al, byte [esi + ebx*4 + 3]
test al, al
je 0x46fe6c
movzx eax, al
mov eax, dword [eax*4 + 0x4c2064]
test eax, eax
je 0x46fe6e
mov ecx, dword [esi + ebx*4 + 0x10]
test ecx, ecx
je 0x46fe6e
push ecx
push eax
push str._s_constraint_failed:__s
push dword [ebp - 4]
lea esi, [edi + 0x2c]
push esi
call fcn.00462d70
add esp, 0x14
jmp 0x46fe93
xor eax, eax
mov ecx, dword [esi + ebx*4 + 0x10]
lea esi, [edi + 0x2c]
test ecx, ecx
je 0x46fe81
push ecx
push 0x4c4914
jmp 0x46fe87
push eax
push str._s_constraint_failed
push dword [ebp - 4]
push esi
call fcn.00462d70
add esp, 0x10
push dword [esi]
mov eax, dword [ebp - 0xc]
push dword [edi + 0xa8]
push dword [ebp - 0x14]
push str.abort_at__d_in___s_:__s
push dword [eax + ebx*4 + 4]
call fcn.004190b0
add esp, 0x14
push edi
call fcn.00470c30
mov edx, dword [ebp - 4]
add esp, 4
cmp eax, 5
mov eax, dword [ebp + 8]
jne 0x46fed3
mov edi, 5
mov dword [eax + 0x50], edi
jmp 0x4701a3
cmp dword [eax + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4701a3
mov dword [ebp - 8], 0x14
jmp 0x4700f4
push 0x4c8db4
push 0x116b9
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.004190b0
mov edx, 0xb
add esp, 0x10
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
jmp 0x470130
push 0x4c8db4
push 0x1170d
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.004190b0
mov edx, 0xb
add esp, 0x10
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
jmp 0x470130
mov eax, dword [ebp + 8]
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
add eax, 0x2c
push eax
call fcn.00462d70
mov edx, 5
add esp, 0xc
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
jmp 0x470130
mov eax, dword [ebp + 8]
push str.cannot_release_savepoint___SQL_statements_in_progress
add eax, 0x2c
push ebx
push eax
call fcn.00462d70
mov edx, 5
add esp, 0xc
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
jmp 0x470130
mov eax, dword [ebp - 0x14]
mov edi, 5
mov dword [ebx + 0x4c], eax
mov byte [edx + 0x3e], 0
mov dword [ebx + 0x50], edi
jmp 0x4701a3
mov eax, dword [ebp + 8]
push str.FOREIGN_KEY_constraint_failed
push ecx
mov dword [eax + 0x50], 0x313
mov byte [eax + 0x56], 2
add eax, 0x2c
push eax
call fcn.00462d70
add esp, 0xc
mov edi, 1
mov edx, ebx
jmp 0x4701a3
test edx, edx
je 0x47000c
push 0x204
push esi
call fcn.0045f5c0
add esp, 8
mov byte [esi + 0x3e], 1
push esi
call fcn.004457f0
mov eax, dword [ebp + 8]
add esp, 4
mov edi, 0x65
cmp dword [eax + 0x50], 0
mov eax, 1
cmovne edi, eax
jmp 0x4701a0
push 1
push dword [ebp + 8]
call fcn.00468c80
mov edi, eax
add esp, 8
test edi, edi
jne 0x4701a0
push dword [ebp + 8]
mov ebx, dword [ebp - 0x20]
mov byte [esi + 0x3e], bl
call fcn.00470c30
add esp, 4
cmp eax, 5
jne 0x46ffea
mov ecx, dword [ebp + 8]
mov edi, 5
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
mov dword [ecx + 0x4c], eax
mov al, 1
sub al, bl
mov byte [edx + 0x3e], al
mov dword [ecx + 0x50], edi
jmp 0x4701a3
mov dword [ebp - 8], 8
jmp 0x4700f4
mov eax, dword [ebp + 8]
mov edi, 5
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x4c], edx
mov dword [eax + 0x50], edi
jmp 0x4701a0
push 0x11a53
call fcn.00446c10
add esp, 4
mov dword [ebp - 8], eax
jmp 0x4700f4
inc dword [ebp - 0x14]
mov edx, 4
mov dword [ebp - 8], edx
jmp 0x470133
inc dword [ebp - 0x14]
mov edx, 7
mov dword [ebp - 8], edx
jmp 0x470130
test dword [ebp - 0x20c], 0x2460
jne 0x4700c5
cmp dword [ebp - 0x1fc], 0
je 0x4700d4
lea eax, [ebp - 0x214]
push eax
call fcn.0047b4b0
add esp, 4
push 0x4c8db4
push 0x10640
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.004190b0
add esp, 0x10
mov dword [ebp - 8], 0xb
mov ebx, dword [ebp + 8]
mov edx, dword [ebp - 4]
cmp byte [edx + 0x40], 0
je 0x47010a
mov eax, 7
mov dword [ebp - 8], eax
jmp 0x470114
mov eax, dword [ebp - 8]
cmp eax, 0xc0a
je 0x47012d
push eax
call fcn.00413df0
push eax
push 0x4c4914
push edx
lea eax, [ebx + 0x2c]
push eax
call fcn.00462d70
add esp, 0x14
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov bl, byte [ebp - 0xd]
push dword [eax + 0x2c]
mov dword [eax + 0x50], edx
push dword [eax + 0xa8]
push dword [ebp - 0x14]
push str.statement_aborts_at__d:___s___s
push edx
call fcn.004190b0
push dword [ebp + 8]
call fcn.00470c30
mov edx, dword [ebp - 4]
add esp, 0x18
cmp dword [ebp - 8], 0xc0a
jne 0x47016b
mov byte [edx + 0x40], 1
mov edi, 1
test bl, bl
je 0x4701a3
mov eax, dword [edx + 0x10]
movzx esi, bl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.004605e0
add esp, 4
cmp esi, edi
je 0x4701a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.004605e0
add esp, 4
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x48]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0x64]
mov dword [edx + 0x24], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x8c]
push edx
add dword [edx + 0x7c], eax
call fcn.004710e0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov edx, 6
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
mov byte [eax + 0x56], 2
jmp 0x470133
mov eax, dword [ebp + 8]
push str.too_many_levels_of_trigger_recursion
push ecx
add eax, 0x2c
mov dword [ebp - 8], 1
push eax
call fcn.00462d70
add esp, 0xc
mov edx, 1
inc dword [ebp - 0x14]
jmp 0x470130
mov edx, str.out_of
mov dword [ebp - 8], 1
cmp edi, 5
mov eax, str.into
cmovne eax, edx
push eax
mov eax, dword [ebp + 8]
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ecx
add eax, 0x2c
push eax
call fcn.00462d70
add esp, 0x10
mov edx, 1
inc dword [ebp - 0x14]
jmp 0x470130
cmp cl, 5
movzx eax, cl
mov ecx, dword [ebp + 8]
mov edi, 2
cmove eax, edi
mov dword [ebp - 0x48], edx
inc dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov byte [ecx + 0x56], al
mov eax, ecx
jmp 0x470133
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x4702a2
mov edx, dword [ebp - 0x8c]
cmp edx, dword [ebp - 0x9c]
jb 0x4702a2
push dword [ecx + 0x128]
call eax
add esp, 4
test eax, eax
je 0x4702a2
mov edx, 9
mov dword [ebp - 8], edx
jmp 0x470130
mov eax, dword [ebp + 8]
cmp dword [eax + 0x94], 0
jg 0x470375
jl 0x4702c1
cmp dword [eax + 0x90], 0
ja 0x470375
push 1
push eax
call fcn.00469230
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
test edx, edx
je 0x4702dd
inc dword [ebp - 0x14]
jmp 0x470130
mov ecx, dword [ebp + 8]
xor edi, edi
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x48]
add eax, 2
or eax, 1
mov dword [ecx + 0x48], eax
mov eax, dword [esi + ebx*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x14], esi
cmp dword [eax + ebx*4 + 8], edi
jle 0x470357
nop word [eax + eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x47032c
push esi
call fcn.00472020
add esp, 4
test eax, eax
jne 0x46b8e6
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
cmp ax, 2
jne 0x470347
push esi
call fcn.0047b460
add esp, 4
mov eax, dword [ebp - 0xc]
inc edi
add esi, 0x28
cmp edi, dword [eax + ebx*4 + 8]
jl 0x470310
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
cmp byte [edx + 0x40], 0
jne 0x46b8e9
mov eax, dword [ebp - 0x14]
mov edi, 0x64
inc eax
mov dword [ecx + 0x4c], eax
jmp 0x4701a3
push str.FOREIGN_KEY_constraint_failed
push dword [eax]
mov dword [eax + 0x50], 0x313
mov byte [eax + 0x56], 2
add eax, 0x2c
push eax
call fcn.00462d70
mov edx, 1
add esp, 0xc
inc dword [ebp - 0x14]
mov dword [ebp - 8], edx
jmp 0x470130
mov bl, byte [ebp - 0xd]
push 9
mov dword [ebp - 8], 9
mov dword [ecx + 0x50], 9
call fcn.00413df0
push eax
push 0x4c4914
push edx
lea eax, [ecx + 0x2c]
push eax
call fcn.00462d70
mov eax, dword [ebp + 8]
add esp, 0x14
mov edx, 9
jmp 0x470136