Function at 0x46eb1f
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x22c
mov eax, dword [0x6300f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 0x5d], cl
mov dword [ebp - 0x84], ecx
mov eax, dword [edi + 0x68]
mov ebx, eax
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x50], eax
mov eax, dword [edi]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xa4], ecx
mov ecx, edi
mov dword [ebp - 0x58], edi
mov al, byte [eax + 0x4e]
mov byte [ebp - 0x54], al
mov dword [ebp - 0x18], esi
call fcn.0046a617
mov eax, dword [ebp - 0x14]
xor edx, edx
or ecx, 0xffffffff
cmp dword [eax + 0x148], edx
je 0x46eb93
mov ecx, dword [eax + 0x150]
mov eax, dword [edi + 0xb4]
div ecx
mov eax, dword [ebp - 0x14]
sub ecx, edx
xor edx, edx
push 7
mov dword [ebp - 0x7c], ecx
pop ecx
cmp dword [edi + 0x28], ecx
je 0x473407
mov dword [edi + 0x38], edx
mov dword [edi + 0x3c], edx
mov dword [edi + 0x78], edx
mov dword [eax + 0x19c], edx
cmp dword [eax + 0x110], edx
jne 0x472451
imul ebx, dword [edi + 0x24], 0x14
add ebx, dword [ebp - 0x50]
mov cl, byte [ebx]
inc dword [ebp - 0xa4]
movzx edx, cl
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x2d], cl
mov dword [ebp - 0x2c], edx
cmp edx, 0xa8
ja case.0x46ebe4.86
jmp dword [edx*4 + 0x47367f]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
add ecx, esi
pop esi
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp - 0x50]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x47328e
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
imul ebx, dword [eax + esi], 0x14
mov word [eax + esi + 8], cx
add ebx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
jmp case.0x46ebe4.86
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
dec eax
cdq
push 4
mov dword [ecx + esi], eax
pop eax
mov word [ecx + esi + 8], ax
xor eax, eax
mov dword [ecx + esi + 4], edx
cmp dword [ebx + 8], eax
jne 0x47328e
jmp 0x46ec23
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x50]
lea ebx, [edx - 0x14]
imul eax, dword [ecx + esi], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + esi + 8], ax
jmp 0x46ec23
imul esi, dword [ebx + 4], 0x28
sub ebx, dword [ebp - 0x50]
push 4
pop eax
push 0x14
add esi, dword [ebp - 0x18]
mov word [esi + 8], ax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x58]
push 0x14
pop ecx
add ebx, ecx
jmp 0x46ebc4
imul eax, dword [ebx + 0xc], 0x28
xor ecx, ecx
inc ecx
test byte [eax + esi + 8], cl
je 0x46ec23
mov eax, ebx
sub eax, dword [ebp - 0x50]
push 0x14
cdq
pop ecx
idiv ecx
mov esi, eax
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x47329d
mov ecx, dword [edi + 0xc8]
test ecx, ecx
je 0x47329d
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x14]
dec dword [edi + 0xd0]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x2c]
add dword [edx + 0x68], eax
mov dword [edx + 0x64], eax
call fcn.0046ae96
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x46ed12
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov ecx, dword [edi + 0x68]
mov esi, dword [edi + 0x58]
imul ebx, eax, 0x14
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x18], esi
add ebx, ecx
jmp 0x46ec23
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46ec23
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp 0x46ec23
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x46ec23
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, dword [ebx + 0x10]
mov esi, eax
call fcn.004541bf
xor ecx, ecx
mov dword [ebx + 4], eax
inc ecx
cmp byte [ebp - 0x54], cl
je 0x46edfe
mov edx, dword [ebx + 0x10]
xor eax, eax
push eax
push ecx
or eax, 0xffffffff
mov ecx, esi
push eax
call fcn.004692e9
add esp, 0xc
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x472856
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.00468923
test eax, eax
jne 0x473407
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xf9
jne 0x46edee
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x46edee
mov ecx, dword [ebp - 0x14]
call fcn.00451bec
mov byte [ebx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 4]
cmp eax, dword [ecx + 0x6c]
jg 0x472856
mov byte [ebx], 0x48
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov esi, eax
mov eax, 0xa02
mov word [esi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x54]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x46ec95
mov edi, dword [ebp - 0x18]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + edi], eax
jne 0x46ec95
cmp dword [ecx + edi + 4], edx
jne 0x46ec95
mov eax, 0xa10
mov word [esi + 8], ax
jmp 0x46ec95
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edi, dword [ebx + 0xc]
xor ecx, ecx
sub edi, dword [ebx + 8]
inc ecx
xor esi, esi
mov edx, 0x101
cmp dword [ebx + 4], esi
lea esi, [eax + 0xc]
cmovne ecx, edx
movzx ecx, cx
mov word [eax + 8], cx
xor eax, eax
mov dword [ebp - 0x20], ecx
mov dword [esi], eax
test edi, edi
jle 0x46ec95
mov ebx, ecx
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.00469086
xor eax, eax
mov word [esi - 4], bx
dec edi
mov dword [esi], eax
test edi, edi
jg 0x46eea7
mov ebx, dword [ebp - 0x3c]
jmp 0x46ec95
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff41
mov ax, word [ecx + esi + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x46ec67
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edx, dword [ebx + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebx + 4]
call fcn.004692e9
mov al, byte [ebp - 0x54]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x46ec95
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [edi + 0x64]
add ecx, 0xffffffd8
add eax, ecx
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.004691c8
test eax, eax
jne 0x472856
imul esi, dword [ebx + 8], 0x28
mov eax, 0x2400
add esi, dword [ebp - 0x18]
test word [esi + 8], ax
je 0x46ef44
mov ecx, esi
call fcn.00469086
push 0x14
pop eax
push eax
push dword [ebp - 0x20]
push esi
call fcn.00588a40
mov ax, word [esi + 8]
mov ecx, 0xebff
add esp, 0xc
and ax, cx
mov ecx, 0x840
or ax, cx
jmp 0x46ee64
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x28], eax
imul eax, dword [ebx + 4], 0x28
add eax, esi
imul esi, dword [ebx + 8], 0x28
mov dword [ebp - 0x24], eax
add esi, dword [ebp - 0x18]
mov edx, eax
mov ecx, esi
call fcn.004692c2
mov eax, 0x1000
test word [esi + 8], ax
je 0x46efa6
mov ecx, esi
call fcn.00468a6b
test eax, eax
jne 0x473407
mov eax, dword [ebp - 0x24]
add esi, 0x28
add eax, 0x28
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x24], eax
jne 0x46ef83
jmp 0x46ec95
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x24], eax
imul eax, dword [ebx + 4], 0x28
add eax, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x18]
push 0x1000
mov edx, eax
mov dword [ebp - 0x28], eax
mov ecx, esi
call fcn.0046920c
mov eax, 0x1000
pop ecx
test word [esi + 8], ax
je 0x46effc
mov ecx, esi
call fcn.00468a6b
test eax, eax
jne 0x473407
mov ecx, dword [ebp - 0x24]
mov eax, ecx
dec ecx
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x46ec95
mov eax, dword [ebp - 0x28]
add esi, 0x28
add eax, 0x28
jmp 0x46efd0
imul edx, dword [ebx + 4], 0x28
mov eax, 0x1000
imul ecx, dword [ebx + 8], 0x28
push eax
add edx, esi
add ecx, esi
call fcn.0046920c
pop ecx
jmp 0x46ec23
imul eax, dword [ebx + 4], 0x28
push dword [eax + esi + 4]
push dword [eax + esi]
imul ecx, dword [ebx + 8], 0x28
add ecx, esi
call fcn.004690f2
pop ecx
jmp 0x46f02f
imul edx, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 0xc], 0x28
add edx, esi
imul esi, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], ecx
movzx eax, word [edx + 8]
add esi, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
mov al, byte [esi + 8]
or al, byte [ebp - 0x3c]
test al, 1
je 0x46f083
call fcn.00469086
jmp 0x46ec95
mov ecx, dword [ebp - 0x3c]
test cl, 0x12
jne 0x46f0b9
mov dl, byte [ebp - 0x54]
xor eax, eax
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.00468b1e
pop ecx
test eax, eax
jne 0x473407
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx ecx, ax
mov dword [ebp - 0x3c], ecx
jmp 0x46f0e6
mov eax, 0x4000
test eax, ecx
je 0x46f0e6
mov ecx, edx
call fcn.00468ab5
test eax, eax
jne 0x473407
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x3c], eax
movzx eax, word [esi + 8]
mov dword [ebp - 0x38], eax
test al, 0x12
jne 0x46f101
mov dl, byte [ebp - 0x54]
xor eax, eax
push eax
mov ecx, esi
call fcn.00468b1e
pop ecx
jmp 0x46f111
mov ecx, 0x4000
test ecx, eax
je 0x46f12b
mov ecx, esi
call fcn.00468ab5
test eax, eax
jne 0x473407
mov ax, word [esi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
add eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x4c], eax
mov ecx, edx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x6c]
cdq
cmp ecx, edx
jg 0x472856
mov edx, dword [ebp - 0x4c]
jl 0x46f156
cmp edx, eax
ja 0x472856
mov ecx, dword [ebp - 0x24]
xor eax, eax
cmp ecx, esi
sete al
add edx, 3
push eax
call fcn.00468938
pop ecx
test eax, eax
jne 0x473407
mov edi, dword [ebp - 0x24]
mov ecx, 0x3e40
push 2
mov ax, word [edi + 8]
and ax, cx
pop ecx
or ax, cx
mov word [edi + 8], ax
cmp edi, esi
je 0x46f1a7
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [edi + 0x10]
call fcn.00588a40
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov word [esi + 8], ax
mov eax, dword [ebp - 0x2c]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 0x10]
push eax
call fcn.00588a40
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
mov word [eax + 8], cx
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0x4c]
mov byte [ecx + eax], dl
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 1], dl
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 2], dl
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [ebp - 0x54]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
jmp 0x46ec95
imul edi, dword [ebx + 4], 0x28
add edi, esi
mov ecx, edi
call fcn.0046eacb
mov esi, dword [ebp - 0x3c]
movzx ebx, ax
imul eax, dword [esi + 8], 0x28
add eax, dword [ebp - 0x18]
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.0046eacb
movzx ecx, ax
imul eax, dword [esi + 0xc], 0x28
and cl, bl
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x3c]
push 4
pop edx
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov ax, word [esi + 8]
or ax, word [edi + 8]
movzx eax, ax
test dl, cl
je 0x46f33d
mov eax, dword [esi]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xac], eax
movzx eax, byte [ebx]
sub eax, 0x67
je 0x46f2fb
sub eax, 1
je 0x46f2ec
sub eax, 1
je 0x46f2dd
sub eax, 1
mov eax, ecx
je 0x46f2ab
or eax, edx
je 0x46f409
mov eax, ecx
or esi, 0xffffffff
and eax, edx
cmp eax, esi
jne 0x46f29b
xor eax, eax
mov edx, eax
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x24]
push edx
push ecx
push dword [ebp - 0x28]
push eax
call fcn.005b2c30
jmp 0x46f31a
or eax, edx
je 0x46f409
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x46f2cd
mov eax, dword [esi]
test eax, eax
jne 0x46f2d0
cmp dword [esi + 4], 0x80000000
je 0x46f348
jmp 0x46f2d0
mov eax, dword [ebp - 0x24]
push edx
push ecx
push dword [ebp - 0x28]
push eax
call fcn.005716b0
jmp 0x46f31a
push edx
push ecx
lea ecx, [ebp - 0xb0]
call fcn.00455209
jmp 0x46f308
push edx
push ecx
lea ecx, [ebp - 0xb0]
call fcn.004551bb
jmp 0x46f308
push edx
push ecx
lea ecx, [ebp - 0xb0]
call fcn.0045512f
pop ecx
pop ecx
test eax, eax
jne 0x46f348
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x38]
push 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x46ec95
xor ecx, ecx
inc ecx
test cl, al
jne 0x46f409
mov ecx, edi
call fcn.00468dd9
mov ecx, esi
movsd qword [ebp - 0x90], xmm0
call fcn.00468dd9
movzx eax, byte [ebx]
sub eax, 0x67
je 0x46f3e0
sub eax, 1
je 0x46f3d6
sub eax, 1
je 0x46f3cc
sub eax, 1
je 0x46f3b0
mov ecx, edi
call fcn.00468d72
mov ecx, dword [ebp - 0x44]
mov esi, eax
mov edi, edx
call fcn.00468d72
mov ecx, esi
or ecx, edi
je 0x46f409
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x46f39e
xor ecx, ecx
mov edi, ecx
lea esi, [ecx + 1]
push edi
push esi
push edx
push eax
call fcn.005b2c30
mov ecx, eax
call fcn.00571650
jmp 0x46f3e8
movsd xmm1, qword [ebp - 0x90]
ucomisd xmm1, qword [0x60a3f0]
lahf
test ah, 0x44
jnp 0x46f409
divsd xmm0, xmm1
jmp 0x46f3e8
mulsd xmm0, qword [ebp - 0x90]
jmp 0x46f3e8
subsd xmm0, qword [ebp - 0x90]
jmp 0x46f3e8
addsd xmm0, qword [ebp - 0x90]
movsd qword [ebp - 0x70], xmm0
call fcn.0045417a
test eax, eax
jne 0x46f409
mov ecx, dword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x70]
push 8
movsd qword [ecx], xmm0
jmp 0x46f324
mov ecx, dword [ebp - 0x38]
jmp 0x46f079
mov eax, dword [ebx + 4]
test eax, eax
je 0x46ec23
xor ecx, ecx
push ecx
push ecx
imul ecx, eax, 0x28
jmp 0x46f044
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
imul esi, dword [ebx + 4], 0x28
inc edx
mov eax, dword [ebp - 0x18]
imul edi, dword [ebx + 0xc], 0x28
add ecx, eax
add esi, eax
add edi, eax
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [ebp - 0x38], edi
test dl, al
je 0x46f454
mov ecx, edi
jmp 0x46f079
call fcn.00468d72
mov ecx, esi
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
call fcn.00468d72
mov cl, byte [ebx]
mov esi, eax
mov byte [ebp - 0x2d], cl
cmp cl, 0x63
jne 0x46f47d
and dword [ebp - 0x78], esi
and dword [ebp - 0x74], edx
jmp 0x46f5a7
cmp cl, 0x64
jne 0x46f48d
or dword [ebp - 0x78], esi
or dword [ebp - 0x74], edx
jmp 0x46f5a7
mov eax, esi
or eax, edx
je 0x46f5a7
xor eax, eax
cmp edx, eax
jg 0x46f4d7
jl 0x46f4a3
cmp esi, eax
jae 0x46f4cc
mov al, 0xcb
sub al, cl
mov cl, al
or eax, 0xffffffff
mov byte [ebp - 0x2d], cl
cmp edx, eax
jl 0x46f4c5
jg 0x46f4ba
cmp esi, 0xffffffc0
jbe 0x46f4c5
neg esi
push 0
pop eax
adc edx, eax
neg edx
jmp 0x46f4cc
push 0x40
xor eax, eax
pop esi
mov edx, eax
cmp edx, eax
jl 0x46f511
jg 0x46f4d7
cmp esi, 0x40
jb 0x46f511
cmp dword [ebp - 0x74], eax
jg 0x46f4ef
jl 0x46f4e3
cmp dword [ebp - 0x78], eax
jae 0x46f4ef
cmp cl, 0x65
je 0x46f4ef
or ecx, 0xffffffff
mov eax, ecx
jmp 0x46f506
xorps xmm0, xmm0
movlpd qword [ebp - 0x98], xmm0
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
jmp 0x46f5a7
push 8
pop eax
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00588a40
mov eax, dword [ebp - 0xa0]
add esp, 0xc
cmp byte [ebp - 0x2d], 0x65
mov ecx, esi
mov edx, dword [ebp - 0x9c]
jne 0x46f54f
call fcn.005712e0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
jmp 0x46f590
call fcn.005b2ad0
mov edi, eax
mov dword [ebp - 0x9c], edx
xor eax, eax
mov dword [ebp - 0xa0], edi
cmp dword [ebp - 0x74], eax
jg 0x46f58d
jl 0x46f570
cmp dword [ebp - 0x78], eax
jae 0x46f58d
push 0x40
pop ecx
or edx, 0xffffffff
sub ecx, esi
mov eax, edx
call fcn.005712e0
or edi, eax
or dword [ebp - 0x9c], edx
mov dword [ebp - 0xa0], edi
mov edi, dword [ebp - 0x38]
push 8
pop eax
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00588a40
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov ecx, 0x3e40
mov dword [edi], eax
mov eax, dword [ebp - 0x74]
mov dword [edi + 4], eax
mov ax, word [edi + 8]
and ax, cx
push 4
pop ecx
or ax, cx
mov word [edi + 8], ax
jmp 0x46ec95
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.00468e90
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x46ec95
imul esi, dword [ebx + 4], 0x28
push 4
pop ecx
add esi, dword [ebp - 0x18]
movzx eax, word [esi + 8]
test cl, al
jne 0x46f628
push dword [ebp - 0x54]
mov dl, 0x43
mov ecx, esi
call fcn.0046e9c1
movzx eax, word [esi + 8]
pop ecx
push 4
pop ecx
test cl, al
jne 0x46f628
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x47328e
mov ecx, dword [ebp - 0x14]
push 0x14
pop esi
mov eax, esi
jmp 0x46f6a5
mov edx, 0x3e40
and eax, edx
or eax, ecx
jmp 0x46ee64
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x18]
test byte [esi + 8], 0x24
je 0x46ec98
mov ecx, esi
call fcn.00468dd9
mov ax, word [esi + 8]
mov ecx, 0x3e40
push 8
and ax, cx
movsd qword [esi], xmm0
pop ecx
jmp 0x46ef65
imul esi, dword [ebx + 4], 0x28
mov eax, 0x4000
add esi, dword [ebp - 0x18]
test word [esi + 8], ax
je 0x46f681
mov ecx, esi
call fcn.00468ab5
jmp 0x46f683
xor eax, eax
push dword [ebp - 0x54]
mov dl, byte [ebx + 8]
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.00468fd1
pop ecx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x46ec95
mov ecx, dword [ebp - 0x14]
push 0x14
pop esi
cmp byte [ecx + 0x51], 0
push 7
pop ecx
cmovne eax, ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp dword [edi + 0x7c], ecx
jne 0x46f6d9
cmp eax, 0xc0a
je 0x46f6d9
mov ecx, eax
call fcn.004ac0c6
push eax
push 0x5fc380
push edi
call fcn.00469a7c
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edx, eax
mov dword [edi + 0x28], eax
call fcn.00454209
mov eax, ebx
sub eax, dword [ebp - 0x50]
cdq
idiv esi
push dword [edi + 0x7c]
push dword [edi + 0xc0]
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 0x1c]
call fcn.004538db
add esp, 0x14
mov ecx, edi
call fcn.0046b6bc
cmp dword [ebp - 0x1c], 0xc0a
mov edx, dword [ebp - 0x14]
jne 0x46f722
mov ecx, edx
call fcn.004520bc
xor eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov al, byte [ebp - 0x5d]
test al, al
je 0x46f73e
mov ecx, dword [ebp - 0x14]
movzx edx, al
dec edx
call fcn.00481466
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x7c]
cmp esi, ecx
jb 0x473652
mov eax, dword [edx + 0x148]
test eax, eax
je 0x473652
add ecx, dword [edx + 0x150]
push dword [edx + 0x14c]
mov dword [ebp - 0x7c], ecx
call eax
mov edx, dword [ebp - 0x14]
pop ecx
test eax, eax
je 0x46f744
or eax, 0xffffffff
mov ecx, edx
push 9
mov dword [ebp - 0x7c], eax
pop eax
jmp 0x46f6a2
imul edi, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x18]
add esi, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
movzx edx, word [edi + 8]
movzx eax, word [esi + 8]
mov ecx, edx
or ecx, eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x3c], edx
inc eax
test al, cl
je 0x46f821
movzx eax, word [ebx + 2]
mov ecx, 0x80
test cl, al
je 0x46f7eb
mov cl, dl
mov al, cl
and al, byte [ebp - 0x34]
test al, 1
je 0x46f7d9
test edx, 0x100
jne 0x46f7d9
xor eax, eax
mov edx, eax
jmp 0x46f9a2
xor eax, eax
inc eax
test al, cl
mov edx, eax
push 0xffffffffffffffff
pop eax
cmovne edx, eax
jmp 0x46f98a
test al, 0x20
je 0x46f811
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
mov esi, dword [ebp - 0x18]
inc edx
mov edi, 0x3e40
mov dword [ebp - 0x84], edx
mov ax, word [ecx + esi + 8]
and ax, di
jmp 0x46eedb
push 0x10
pop ecx
test cl, al
jne 0x47328e
jmp 0x46ec95
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x46f915
push 2
pop edx
test dl, cl
je 0x46f863
mov al, byte [ebp - 0x34]
and al, 0x2e
cmp al, dl
jne 0x46f851
xor edx, edx
mov ecx, esi
call fcn.0046e910
movzx eax, word [edi + 8]
push 2
mov dword [ebp - 0x3c], eax
pop edx
mov al, byte [ebp - 0x3c]
and al, 0x2e
cmp al, dl
jne 0x46f863
xor edx, edx
mov ecx, edi
call fcn.0046e910
mov al, byte [esi + 8]
and al, byte [edi + 8]
push 4
pop ecx
test cl, al
je 0x46f97b
mov eax, dword [edi + 4]
mov ecx, dword [edi]
cmp eax, dword [esi + 4]
jl 0x46f90e
jg 0x46f888
cmp ecx, dword [esi]
jbe 0x46f8fb
xor eax, eax
lea edx, [eax + 1]
movzx eax, byte [ebx]
mov al, byte [eax + 0x5e90ac]
mov ecx, dword [ebp - 0x20]
movzx esi, al
mov ax, word [ebp - 0x34]
mov word [ecx + 8], ax
mov ax, word [ebp - 0x3c]
mov word [edi + 8], ax
movzx eax, word [ebx + 2]
test al, 0x20
je 0x46f9b0
imul ecx, dword [ebx + 8], 0x28
mov dword [ebp - 0x84], edx
add ecx, dword [ebp - 0x18]
test al, 8
je 0x46f8d9
xor eax, eax
cmp byte [ebx], 0x35
sete al
cmp eax, esi
je 0x46ec95
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
mov dword [ecx], esi
push 4
pop edx
or ax, dx
mov word [ecx + 8], ax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x46ec95
cmp eax, dword [esi + 4]
jg 0x46f7d0
jl 0x46f90e
cmp ecx, dword [esi]
jae 0x46f7d0
or eax, 0xffffffff
mov edx, eax
jmp 0x46f98e
cmp al, 0x42
jne 0x46f97b
mov al, byte [ebp - 0x34]
push 2
pop ecx
test cl, al
jne 0x46f94d
test al, 0x2c
je 0x46f94d
mov dl, byte [ebp - 0x54]
xor eax, eax
inc eax
mov ecx, esi
push eax
call fcn.00468b1e
mov ax, word [esi + 8]
xor ax, word [ebp - 0x34]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [ebp - 0x34], ax
push 2
pop ecx
mov al, byte [ebp - 0x3c]
test cl, al
jne 0x46f97b
test al, 0x2c
je 0x46f97b
mov dl, byte [ebp - 0x54]
xor eax, eax
inc eax
mov ecx, edi
push eax
call fcn.00468b1e
mov ax, word [edi + 8]
xor ax, word [ebp - 0x3c]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [ebp - 0x3c], ax
push dword [ebx + 0x10]
mov edx, esi
mov ecx, edi
call fcn.0046c2b6
pop ecx
mov edx, eax
test edx, edx
jns 0x46f99c
movzx ecx, byte [ebx]
mov al, byte [ecx + 0x5edaf4]
jmp 0x46f896
jne 0x46f88d
movzx eax, byte [ebx]
mov al, byte [eax + 0x5e9b84]
jmp 0x46f896
test esi, esi
jmp 0x46f816
cmp dword [ebp - 0x84], 0
jne 0x47328e
jmp case.0x46ebe4.86
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x46f9d5
xor eax, eax
jmp 0x46f9dd
mov eax, dword [ebx - 4]
push 4
pop ecx
add eax, ecx
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x38], esi
mov esi, dword [ebx + 8]
mov dword [ebp - 0x4c], esi
xor esi, esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x44], edx
test ecx, ecx
jle 0x46ec95
lea ecx, [edx + 0x14]
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x46fa11
mov edi, dword [eax + esi*4]
jmp 0x46fa13
mov edi, esi
mov eax, dword [edx + 0x10]
xor edx, edx
push dword [ecx]
inc edx
movzx eax, byte [esi + eax]
and eax, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x4c]
add eax, edi
imul edx, eax, 0x28
mov eax, dword [ebp - 0x38]
add eax, edi
imul ecx, eax, 0x28
add edx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x18]
call fcn.0046c2b6
mov edx, eax
mov dword [ebp - 0x84], edx
pop ecx
test edx, edx
jne 0x46fa68
mov ecx, dword [ebp - 0x24]
inc esi
mov edx, dword [ebp - 0x44]
push 4
pop eax
add ecx, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
cmp esi, dword [ebp - 0x20]
jl 0x46fa08
jmp 0x46ec95
mov eax, dword [ebp - 0x44]
push 2
pop ecx
mov eax, dword [eax + 0x10]
test byte [esi + eax], cl
mov esi, dword [ebp - 0x18]
je 0x46faa0
mov eax, dword [ebp - 0x38]
xor ecx, ecx
add eax, edi
inc ecx
imul eax, eax, 0x28
test byte [eax + esi + 8], cl
jne 0x46fa98
mov eax, dword [ebp - 0x4c]
add eax, edi
imul eax, eax, 0x28
test byte [eax + esi + 8], cl
je 0x46faa0
neg edx
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x14]
je case.0x46ebe4.86
neg edx
mov dword [ebp - 0x84], edx
jmp case.0x46ebe4.86
mov edx, dword [ebp - 0x84]
test edx, edx
jns 0x46faca
imul eax, dword [ebx + 4], 0x14
jmp 0x46fad6
jne 0x46fad2
imul eax, dword [ebx + 8], 0x14
jmp 0x46fad6
imul eax, dword [ebx + 0xc], 0x14
mov ebx, dword [ebp - 0x50]
add ebx, 0xffffffec
add ebx, eax
jmp 0x46ec23
imul ecx, dword [ebx + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, esi
call fcn.00468e00
imul ecx, dword [ebx + 8], 0x28
mov esi, eax
push 2
pop eax
mov edx, eax
add ecx, dword [ebp - 0x18]
call fcn.00468e00
cmp byte [ebx], 0x2c
mov edx, eax
jne 0x46fb19
imul ecx, esi, 3
mov al, byte [ecx + edx + 0x5e916c]
jmp 0x46fb23
imul eax, esi, 3
mov al, byte [eax + edx + 0x5e9100]
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x18]
push 2
pop edx
movzx eax, al
add ecx, esi
cmp eax, edx
mov edx, 0x3e40
jne 0x46fb47
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
jmp 0x46fb58
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
push 4
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x46ec23
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, esi
call fcn.00468e00
xor eax, dword [ebx + 0x10]
cdq
push edx
push eax
jmp 0x46f040
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
inc eax
add ecx, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x18]
test byte [ecx + 8], al
jne 0x46fbb0
xor edx, edx
call fcn.00468e00
neg eax
sbb eax, eax
xor ecx, ecx
push ecx
inc eax
mov ecx, esi
push eax
call fcn.004690f2
pop ecx
pop ecx
jmp 0x46ec95
mov ecx, esi
jmp 0x46f079
imul edi, dword [ebx + 4], 0x28
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.00469086
xor eax, eax
inc eax
test byte [edi + 8], al
jne 0x46ec95
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.00468d72
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46ec95
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x46fc3d
mov eax, ebx
sub eax, dword [edi + 0x68]
cdq
push 0x14
pop ecx
idiv ecx
xor edx, edx
mov ecx, eax
inc edx
mov eax, dword [edi + 0xc8]
mov esi, ecx
shr esi, 3
and ecx, 7
shl edx, cl
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x20], eax
movzx eax, byte [esi + eax]
test eax, edx
jne 0x47328e
bts eax, ecx
mov ecx, dword [ebp - 0x20]
mov byte [esi + ecx], al
mov esi, dword [ebp - 0x18]
jmp 0x46fc4c
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x47328e
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x46ec23
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, esi
call fcn.00468e00
test eax, eax
jmp 0x46ec45
xor edx, edx
xor eax, eax
cmp dword [ebx + 0xc], eax
sete dl
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
call fcn.00468e00
test eax, eax
je 0x47328e
jmp 0x46ec23
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
inc ecx
test byte [eax + esi + 8], cl
jmp 0x46ec45
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
inc ecx
test byte [eax + esi + 8], cl
jmp 0x46fc86
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x46ec23
imul ecx, dword [ebx + 0xc], 0x28
add ecx, esi
call fcn.00469086
jmp 0x47328e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x2c], ecx
cmp byte [esi + 3], 0
je 0x46fd12
mov eax, dword [esi + 0x18]
test eax, eax
je 0x46fd09
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
jle 0x46fd09
mov esi, dword [esi + 0x24]
dec eax
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x1c], eax
jmp 0x46fd30
mov ecx, esi
call fcn.0046bc20
jmp 0x46fd25
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x46fd23
mov ecx, esi
call fcn.0046bc64
jmp 0x46fd25
xor eax, eax
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
imul ecx, dword [ebx + 0xc], 0x28
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x34], edx
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x48], ecx
cmp eax, dword [edi + 0x20]
je 0x46fe01
cmp byte [esi + 2], 0
je 0x46fd73
cmp byte [esi], 3
jne 0x46f079
imul ecx, dword [esi + 0x20], 0x28
add ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x4c], eax
jmp 0x46fda8
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.004628f0
mov ecx, dword [ebp - 0x5c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x50], eax
lea edx, [ecx + 0x54]
mov ecx, esi
call fcn.00462d3d
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x50]
cmp eax, dword [ecx + 0x6c]
ja 0x472856
mov edx, dword [ebp - 0x34]
mov ecx, dword [esi + 0x4c]
mov eax, dword [edi + 0x20]
mov dword [esi + 0x1c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x46fdc1
movzx eax, al
mov dword [edx], eax
xor eax, eax
inc eax
jmp 0x46fdcc
call fcn.00454f66
mov edx, dword [ebp - 0x34]
movzx eax, al
movzx eax, al
mov dword [esi + 0x30], eax
xor eax, eax
mov word [esi + 0x3a], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edx]
jae 0x46feb8
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x46ff68
cmp eax, dword [esi + 0x50]
ja 0x46ff68
movzx eax, word [esi + 0x3a]
mov ecx, dword [ebp - 0x2c]
cmp eax, ecx
jg 0x46ffd7
mov eax, dword [esi + 0x30]
cmp eax, dword [edx]
jae 0x46ffce
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x46fe63
push 0x28
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.00589540
mov ecx, dword [esi + 0x28]
lea eax, [ebp - 0x1d8]
add esp, 0xc
xor edx, edx
push eax
mov eax, dword [ebp - 0x34]
push dword [eax]
call fcn.0046952b
mov dword [ebp - 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x38], eax
mov edi, dword [esi + 0x30]
xor ebx, ebx
movzx edx, word [esi + 0x3a]
add edi, eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x4c], edx
mov eax, dword [eax]
add eax, dword [ebp - 0x38]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x24], eax
lea eax, [esi + 0x58]
lea eax, [eax + edx*4]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x28], eax
mov esi, edx
movzx edx, byte [edi]
mov dword [eax], edx
mov eax, 0x80
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x20], edx
cmp edx, eax
jae 0x46febd
movzx eax, dl
movzx eax, byte [eax + 0x5ea690]
cdq
add ecx, eax
adc ebx, edx
xor eax, eax
inc eax
jmp 0x46feec
mov eax, dword [esi + 0x4c]
jmp 0x46fe60
lea edx, [ebp - 0x20]
mov ecx, edi
call fcn.00454f66
mov edx, dword [ebp - 0x20]
mov ecx, edx
movzx eax, al
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x40], edx
mov dword [eax], edx
call fcn.0046bc9c
mov ecx, dword [ebp - 0x44]
add ecx, eax
push 0
pop eax
adc ebx, eax
mov eax, dword [ebp - 0x4c]
add edi, eax
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x28]
inc esi
push 4
pop edx
add eax, edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
mov dword [edx + esi*4], ecx
mov edx, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x2c]
jg 0x46ff0f
cmp edi, edx
jb 0x46fe90
mov dword [ebp - 0x20], edi
cmp edi, edx
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp - 0x5c]
jb 0x46ff3a
cmp eax, edx
ja 0x46ff48
cmp ecx, dword [esi + 0x50]
jne 0x46ff48
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x46ff48
jmp 0x46ff3d
mov edx, dword [ebp - 0x28]
test edx, edx
jb 0x46ff83
ja 0x46ff48
cmp ecx, dword [esi + 0x50]
jbe 0x46ff83
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp dword [eax], ecx
jne 0x46ff58
mov eax, dword [ebp - 0x24]
mov edx, ecx
jmp 0x46ff88
cmp dword [esi + 0x4c], ecx
jne 0x46ff68
lea ecx, [ebp - 0x1d8]
call fcn.00468cdb
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x473347
imul eax, eax, 0x14
lea ebx, [edx - 0x14]
add ebx, eax
jmp 0x46ec95
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
sub eax, dword [ebp - 0x38]
mov word [esi + 0x3a], dx
mov dword [esi + 0x30], eax
cmp dword [esi + 0x4c], ecx
jne 0x46ffa2
lea ecx, [ebp - 0x1d8]
call fcn.00468cdb
mov ecx, dword [ebp - 0x40]
movzx eax, word [esi + 0x3a]
cmp eax, dword [ebp - 0x2c]
jg 0x46ffde
cmp byte [ebx + 1], 0xf5
mov ecx, dword [ebp - 0x48]
jne 0x46f079
mov edx, dword [ebx + 0x10]
mov eax, 0x800
push eax
call fcn.0046920c
jmp 0x46fbaa
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x40], ecx
jmp 0x46ffa5
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x48]
mov eax, 0x2400
test word [edx + 8], ax
je 0x46fff6
mov ecx, edx
call fcn.00469086
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x54]
cmp eax, dword [edi + edx*4 + 4]
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
jb 0x4700af
mov eax, dword [esi + 0x4c]
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x34]
add eax, dword [esi + edx*4]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x24], eax
cmp ecx, 0xc
jae 0x470035
push edx
mov edx, ecx
mov ecx, eax
call fcn.0046be0e
jmp 0x46fbaa
lea eax, [ecx - 0xc]
mov cl, byte [ebp - 0x54]
shr eax, 1
mov dword [ebp - 0x20], eax
mov dword [edx + 0xc], eax
add eax, 2
mov byte [edx + 0xa], cl
cmp dword [edx + 0x18], eax
jge 0x470070
xor ecx, ecx
inc ecx
mov word [edx + 8], cx
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x48]
mov edx, eax
call fcn.00468938
pop ecx
test eax, eax
jne 0x473407
mov edx, dword [ebp - 0x48]
jmp 0x470076
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
mov edi, dword [ebp - 0x20]
push edi
push dword [ebp - 0x24]
push dword [edx + 0x10]
call fcn.00588a40
mov esi, dword [ebp - 0x48]
xor ecx, ecx
mov edx, dword [ebp - 0x40]
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [edi + eax], cl
mov eax, dword [esi + 0x10]
mov byte [edi + eax + 1], cl
xor eax, eax
inc eax
and edx, eax
mov ax, word [edx*2 + 0x5e94f0]
jmp 0x46ee64
mov al, byte [ebp - 0x54]
mov byte [edx + 0xa], al
movzx eax, word [ebx + 2]
test al, 0xc0
je 0x4700cb
cmp ecx, 0xc
jb 0x4700c7
test cl, 1
je 0x4700d4
test al, al
js 0x4700d4
call fcn.0046bc9c
test eax, eax
jne 0x4700e1
push edx
mov edx, ecx
mov ecx, 0x63a52c
jmp 0x47002b
mov ecx, dword [ebp - 0x2c]
push edx
push eax
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x28]
call fcn.0046952b
mov dword [ebp - 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x46f69f
mov esi, dword [ebp - 0x48]
mov edx, dword [ebp - 0x40]
push esi
mov ecx, dword [esi + 0x10]
call fcn.0046be0e
mov eax, 0xefff
and word [esi + 8], ax
pop ecx
jmp 0x46ec95
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0x10]
add esi, dword [ebp - 0x18]
push dword [ebp - 0x54]
mov dl, byte [edi]
mov ecx, esi
call fcn.0046e9c1
cmp byte [edi], 0x45
pop ecx
jne 0x47018f
movzx eax, word [esi + 8]
push 4
pop ecx
mov dword [ebp - 0x20], eax
test cl, al
je 0x47018f
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp edx, 0x7fff
jg 0x470175
jl 0x47015d
cmp ecx, 0xffffffff
ja 0x470175
cmp edx, 0xffff8000
jl 0x470175
jg 0x47016b
test ecx, ecx
jb 0x470175
and eax, 0xfffb
or eax, 0x20
jmp 0x47018b
call fcn.00571650
mov eax, dword [ebp - 0x20]
push 8
and eax, 0xfffb
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 8], ax
inc edi
cmp byte [edi], 0
je 0x46ec95
add esi, 0x28
jmp 0x470129
imul edx, dword [ebx + 4], 0x28
xor eax, eax
mov ecx, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x40], eax
imul eax, dword [ebx + 8], 0x28
movlpd qword [ebp - 0x98], xmm0
add edx, esi
movlpd qword [ebp - 0x90], xmm0
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], edx
add eax, 0xffffffd8
add eax, edx
mov dword [ebp - 0x28], eax
movzx eax, byte [edi + 0x93]
mov dword [ebp - 0x44], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, esi
mov dword [ebp - 0x4c], eax
test ecx, ecx
je 0x470224
push 4
lea esi, [edx + 8]
mov edi, ecx
pop ebx
push dword [ebp - 0x54]
mov dl, byte [edi]
lea ecx, [esi - 8]
call fcn.0046e9c1
cmp byte [edi], 0x45
pop ecx
jne 0x470215
movzx eax, word [esi]
test bl, al
je 0x470215
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x4701f0
mov ebx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x94]
add esi, 0x1c
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x5c], edx
movzx edx, word [esi - 0x14]
mov dword [ebp - 0x20], edx
test dl, 1
je 0x470275
mov eax, 0x4000
and ax, dx
mov edx, dword [ebp - 0x40]
movzx eax, ax
neg eax
sbb eax, eax
and eax, 0xa
inc edx
jmp 0x47041e
test dl, 0x24
je 0x470390
mov eax, dword [esi - 0x1c]
xor ecx, ecx
cmp dword [esi - 0x18], ecx
jg 0x470299
jl 0x47028e
cmp eax, ecx
jae 0x470299
mov ecx, eax
mov eax, dword [esi - 0x18]
not ecx
not eax
jmp 0x47029e
mov ecx, eax
mov eax, dword [esi - 0x18]
inc dword [ebp - 0x40]
test eax, eax
ja 0x47031f
jb 0x4702ac
cmp ecx, 0x7f
ja 0x4702d8
mov eax, dword [esi - 0x1c]
xor edx, edx
inc edx
and eax, edx
cmp eax, dword [esi - 0x1c]
jne 0x4702d4
xor eax, eax
cmp eax, dword [esi - 0x18]
jne 0x470310
cmp dword [ebp - 0x44], 4
jb 0x470310
lea eax, [ecx + 8]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x40]
jmp 0x470421
xor eax, eax
jmp 0x470310
test eax, eax
ja 0x47031f
jb 0x4702e6
cmp ecx, 0x7fff
ja 0x4702ea
push 2
jmp 0x47030c
test eax, eax
ja 0x47031f
jb 0x4702f8
cmp ecx, 0x7fffff
ja 0x4702fc
push 3
jmp 0x47030c
test eax, eax
ja 0x47031f
jb 0x47030a
cmp ecx, 0x7fffffff
ja 0x47031f
push 4
pop edx
push 0
pop eax
mov ecx, dword [ebp - 0x48]
add dword [ebp - 0x34], edx
mov dword [esi], edx
adc ecx, eax
mov dword [ebp - 0x48], ecx
jmp 0x470388
cmp eax, 0x7fff
ja 0x470343
jb 0x47032f
or eax, 0xffffffff
cmp ecx, eax
ja 0x470343
add dword [ebp - 0x34], 6
mov ecx, dword [ebp - 0x48]
push 0
pop eax
adc ecx, eax
push 5
mov dword [ebp - 0x48], ecx
pop eax
jmp 0x4702cc
mov ecx, dword [ebp - 0x48]
push 8
pop eax
add dword [ebp - 0x34], eax
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x48], ecx
test dl, 0x20
je 0x470382
mov edx, dword [esi - 0x18]
mov ecx, dword [esi - 0x1c]
call fcn.00571650
mov eax, dword [ebp - 0x20]
push 8
pop ecx
and eax, 0xffdf
movsd qword [esi - 0x1c], xmm0
or eax, ecx
push 7
mov word [esi - 0x14], ax
pop eax
jmp 0x4702c9
mov dword [esi], 6
mov edx, dword [ebp - 0x40]
jmp 0x470423
test dl, 8
je 0x4703ac
mov edx, dword [ebp - 0x40]
inc edx
add eax, 8
push 0
mov dword [ebp - 0x34], eax
pop eax
adc ecx, eax
push 7
mov dword [ebp - 0x48], ecx
pop eax
jmp 0x47041e
mov ecx, dword [esi - 0x10]
mov eax, edx
shr eax, 1
and eax, 1
mov dword [ebp - 0x20], ecx
lea eax, [eax + ecx*2]
add eax, 0xc
mov dword [ebp - 0x38], eax
test edx, 0x4000
je 0x470401
lea ecx, [esi - 0x1c]
mov edx, dword [ecx]
lea eax, [eax + edx*2]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
or eax, dword [ebp - 0x48]
je 0x4703f2
call fcn.00468ab5
test eax, eax
jne 0x473407
mov ecx, dword [ebp - 0x20]
add ecx, dword [esi - 0x1c]
jmp 0x4703fe
mov ecx, dword [ebp - 0x20]
mov eax, edx
cdq
add dword [ebp - 0x5c], eax
adc dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x34], ecx
push 0
pop ecx
adc dword [ebp - 0x48], ecx
push ecx
push eax
call fcn.00454fcc
mov edx, dword [ebp - 0x40]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x48]
add edx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], edx
mov dword [esi], eax
lea eax, [esi - 0x1c]
cmp eax, dword [ebp - 0x24]
je 0x470436
mov eax, dword [ebp - 0x34]
sub esi, 0x28
jmp 0x47024e
cmp edx, 0x7e
jle 0x470461
mov eax, edx
cdq
push edx
push eax
call fcn.00454fcc
mov esi, eax
mov eax, dword [ebp - 0x40]
add eax, esi
mov dword [ebp - 0x40], eax
cdq
push edx
push eax
call fcn.00454fcc
mov edx, dword [ebp - 0x40]
add esp, 0x10
cmp esi, eax
jge 0x470465
inc edx
mov dword [ebp - 0x40], edx
mov eax, edx
cdq
mov dword [ebp - 0x38], eax
mov ecx, edx
add eax, dword [ebp - 0x34]
mov esi, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], ecx
adc ecx, dword [ebp - 0x48]
add esi, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
adc ecx, dword [ebp - 0x2c]
cdq
cmp ecx, edx
jg 0x4704a0
jl 0x470492
cmp esi, eax
ja 0x4704a0
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x20]
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
jmp 0x4704e9
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x6c]
cdq
cmp ecx, edx
jg 0x472856
jl 0x4704b9
cmp esi, eax
ja 0x472856
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x20]
cmp dword [ecx + 0x18], esi
jge 0x4704d4
xor eax, eax
mov edx, esi
push eax
call fcn.00468938
pop ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x4704e1
mov eax, dword [ecx + 0x14]
and word [ecx + 8], 0x2d
mov dword [ecx + 0x10], eax
xor eax, eax
test eax, eax
jne 0x473407
mov edx, dword [ebp - 0x5c]
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [ebp - 0x2c]
mov dword [ecx + 0xc], esi
je 0x470508
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x40]
mov edx, 0x80
mov esi, dword [ecx + 0x10]
lea edi, [esi + eax]
cmp eax, edx
jae 0x470523
xor ecx, ecx
mov byte [esi], al
inc ecx
mov eax, ecx
jmp 0x470538
push dword [ebp - 0x44]
mov ecx, esi
push dword [ebp - 0x38]
call fcn.00454d98
pop ecx
pop ecx
xor ecx, ecx
inc ecx
lea edx, [ecx + 0x7f]
mov ebx, dword [ebp - 0x24]
movzx eax, al
add esi, eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x20], eax
cmp eax, edx
jae 0x470550
mov byte [esi], al
mov eax, ecx
jmp 0x47055d
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.00454d98
pop ecx
pop ecx
push dword [ebp - 0x20]
movzx eax, al
mov edx, ebx
mov ecx, edi
add esi, eax
call fcn.0046bcb2
pop ecx
push 1
pop ecx
add ebx, 0x28
add edi, eax
lea edx, [ecx + 0x7f]
cmp ebx, dword [ebp - 0x28]
jbe 0x470540
jmp 0x46eebf
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x98]
mov eax, dword [edi + 0x60]
xorps xmm0, xmm0
movlpd qword [ebp - 0x98], xmm0
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
call fcn.0046707f
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, dword [ebp - 0x98]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x94]
jmp 0x46ed54
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], eax
test ecx, ecx
jne 0x4706a3
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp dword [ecx + 0xb8], edx
jg 0x473356
mov ecx, eax
call fcn.004541bf
mov esi, eax
xor edx, edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], esi
mov ecx, dword [eax + 0x1d0]
add ecx, dword [eax + 0x1cc]
push ecx
mov ecx, eax
call fcn.0049bb82
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x46f69f
mov edi, dword [ebp - 0x14]
lea eax, [esi + 0x21]
xor ecx, ecx
push ecx
push eax
mov ecx, edi
call fcn.00451e5f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47069c
mov ecx, dword [ebp - 0x20]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [ebp - 0x24]
push edx
call fcn.00588a40
add esp, 0xc
cmp byte [edi + 0x4f], 0
je 0x470663
xor eax, eax
mov byte [edi + 0x4f], al
inc eax
mov byte [edi + 0x57], al
jmp 0x470669
inc dword [edi + 0x1cc]
mov eax, dword [edi + 0x1c4]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1d8]
mov dword [edi + 0x1c4], esi
mov dword [esi + 8], eax
mov eax, dword [edi + 0x1dc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x1e0]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1e4]
mov dword [esi + 0x14], eax
mov eax, edi
jmp 0x46ec98
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx + 0x1c4]
test esi, esi
je 0x473396
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [esi]
mov edx, edi
call fcn.004543ae
test eax, eax
je 0x4706d4
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x4706bf
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x3c]
test esi, esi
je 0x473393
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp - 0x34]
cmp dword [eax + 0xb8], ecx
jle 0x4706fe
cmp edx, 1
je 0x47336b
cmp dword [esi + 0x18], ecx
jne 0x470754
cmp byte [eax + 0x57], cl
je 0x470754
xor ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
cmp edx, ecx
jne 0x470757
mov edx, ecx
mov ecx, edi
call fcn.0046b661
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f73b
mov eax, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
mov byte [eax + 0x4f], cl
mov ecx, edi
call fcn.0046b6bc
push 5
pop ecx
cmp eax, ecx
je 0x473372
mov edx, dword [ebp - 0x14]
xor eax, eax
mov byte [edx + 0x57], al
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x1c], eax
jmp 0x47085d
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0x1cc]
sub ecx, dword [ebp - 0x2c]
push 2
dec ecx
pop eax
mov dword [ebp - 0x2c], ecx
cmp edx, eax
jne 0x470853
mov eax, dword [ebp - 0x14]
xor edi, edi
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
and eax, 1
cmp dword [edi + 0x14], 0
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x44], eax
jle 0x4707df
mov ecx, eax
xor eax, eax
inc eax
xor ecx, eax
xor eax, eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x28], eax
push ecx
mov ecx, dword [ebp - 0x14]
mov edx, 0x204
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax + 4]
call fcn.004625bc
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
push 0x10
pop edx
add eax, edx
inc ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
cmp ecx, dword [edx + 0x14]
mov ecx, dword [ebp - 0x38]
jl 0x47079b
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x14], 0
jle 0x470831
xor eax, eax
mov dword [ebp - 0x28], eax
push ecx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax + 4]
call fcn.004626fc
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
push 0x10
pop edx
add eax, edx
inc ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
cmp ecx, dword [edx + 0x14]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
jl 0x4707f2
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x44], 0
je 0x47085a
xor edx, edx
mov ecx, eax
call fcn.0046cdbb
mov ecx, dword [ebp - 0x14]
call fcn.004814bc
mov edx, dword [ebp - 0x14]
xor eax, eax
inc eax
or dword [edx + 0x18], eax
jmp 0x47085d
xor eax, eax
mov dword [ebp - 0x44], eax
jmp 0x4707e1
mov edx, dword [ebp - 0x14]
cmp dword [edx + 0x1c4], esi
je 0x470892
mov edi, dword [ebp - 0x14]
mov edx, dword [edi + 0x1c4]
mov ecx, edi
mov eax, dword [edx + 0x18]
mov dword [edi + 0x1c4], eax
call fcn.00451bec
dec dword [edi + 0x1cc]
cmp dword [edi + 0x1c4], esi
jne 0x470868
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
xor eax, eax
inc eax
cmp ecx, eax
jne 0x4708c7
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x14]
mov dword [edx + 0x1c4], eax
mov edx, esi
call fcn.00451bec
cmp dword [ebp - 0x24], 0
jne 0x46f694
mov ecx, dword [ebp - 0x14]
dec dword [ecx + 0x1cc]
mov ecx, dword [ebp - 0x34]
jmp 0x4708fc
cmp dword [ebp - 0x24], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x1d8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x1dc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x1e0], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x1e4], eax
je 0x4708fc
push 2
pop eax
cmp ecx, eax
jne 0x46f694
push dword [ebp - 0x2c]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
call fcn.0049bb82
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x46f69f
jmp 0x46f697
mov edx, dword [ebx + 8]
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x24], esi
test edx, edx
je 0x47093b
mov eax, dword [eax + 0x20]
and eax, 0x100000
or eax, ecx
jne 0x4733ad
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x470a2f
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00461afa
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x4733b1
xor ecx, ecx
cmp dword [ebx + 8], ecx
je 0x470ab9
mov edx, 0x80
test byte [edi + 0x98], dl
je 0x470ab9
mov esi, dword [ebp - 0x14]
cmp byte [esi + 0x4f], cl
je 0x47099c
xor edx, edx
inc edx
cmp dword [esi + 0xb4], edx
jle 0x470ab9
cmp dword [edi + 0x30], ecx
jne 0x4709b6
mov eax, dword [esi + 0x1cc]
inc dword [esi + 0x1d0]
add eax, dword [esi + 0x1d0]
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x30]
xor edx, edx
dec eax
mov ecx, esi
push eax
call fcn.0049bb82
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x470a08
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov ecx, eax
mov esi, dword [eax + 4]
call fcn.0045f77a
mov ecx, dword [esi]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ecx + 0x60]
jle 0x4709f8
cmp byte [ecx + 6], 0
je 0x4709f8
mov edx, eax
call fcn.0045ce25
jmp 0x4709fa
xor eax, eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
call fcn.0045f7ec
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1d8]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x1dc]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x1e0]
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x1e4]
mov esi, dword [ebp - 0x24]
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp word [ebx + 2], cx
je 0x46f697
cmp esi, dword [ebx + 0xc]
jne 0x470a5e
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x46f694
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x470a6d
mov ecx, dword [ebp - 0x14]
call fcn.00451bec
mov ecx, dword [ebp - 0x14]
mov edx, str.database_schema_has_changed
call fcn.00451fc7
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebx + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x470a9a
mov ecx, dword [ebp - 0x14]
call fcn.00481466
mov eax, dword [edi + 0x98]
xor ecx, ecx
and eax, 0xfffffffd
inc ecx
or eax, ecx
push 0x11
mov dword [edi + 0x98], eax
pop eax
mov dword [ebp - 0x1c], eax
jmp 0x46f697
mov esi, dword [ebp - 0x24]
jmp 0x470a34
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0xc4]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00466fdb
pop ecx
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, eax
mov eax, dword [ebp - 0xc4]
jmp 0x46ed36
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00467022
xor edx, edx
mov dword [ebp - 0x1c], eax
inc edx
pop ecx
cmp dword [ebx + 8], edx
jne 0x470b29
mov ecx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
mov eax, dword [ebp - 0x14]
or dword [eax + 0x18], edx
jmp 0x470b3d
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x470b3a
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov eax, dword [ebp - 0x14]
cmp dword [ebx + 4], edx
jne 0x46f694
xor edx, edx
mov ecx, eax
call fcn.0046cdbb
and dword [edi + 0x98], 0xfffffffc
jmp 0x46f694
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x470b74
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x470c72
mov cl, byte [ebp - 0x2d]
mov eax, dword [edi + 0x98]
xor edx, edx
and al, 3
inc edx
cmp al, dl
je 0x4733d2
mov edx, dword [ebx + 8]
xor eax, eax
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], eax
mov eax, esi
shl eax, 4
add eax, dword [edx + 0x10]
mov dword [ebp - 0x44], esi
mov edx, dword [eax + 4]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x24]
cmp cl, 0x62
jne 0x470bda
mov eax, dword [eax + 0xc]
movzx ecx, word [ebx + 2]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x20], ecx
cmp al, byte [edi + 0x93]
jae 0x470bdf
mov byte [edi + 0x93], al
jmp 0x470bdf
xor eax, eax
mov dword [ebp - 0x20], eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x470bfc
imul esi, edx, 0x28
add esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.00468e90
mov eax, dword [esi]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x470c0f
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x28], eax
movzx eax, word [eax + 8]
jmp 0x470c1b
cmp al, 0xfd
jne 0x470c18
mov eax, dword [ebx + 0x10]
jmp 0x470c1b
mov eax, dword [ebp - 0x38]
mov edx, dword [ebx + 4]
xor ecx, ecx
push ecx
push esi
push eax
mov ecx, edi
call fcn.0046e820
mov esi, eax
add esp, 0xc
test esi, esi
je 0x473407
mov ecx, dword [ebp - 0x4c]
xor eax, eax
inc eax
push 4
mov byte [esi + 2], al
pop eax
push dword [esi + 0x28]
or dword [esi + 8], eax
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov edx, eax
push dword [ebp - 0x20]
mov dword [esi + 0x34], eax
call fcn.0046283e
mov dword [ebp - 0x1c], eax
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x2c], eax
cmp byte [ebx + 1], 0xf7
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x46f694
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
push eax
or eax, 0xffffffff
mov ecx, edi
push eax
movsx eax, word [esi + 0x38]
push eax
call fcn.0046e820
mov edx, eax
add esp, 0xc
test edx, edx
je 0x473407
xor eax, eax
inc eax
or dword [edx + 8], eax
mov byte [edx + 2], al
mov ecx, dword [esi + 0x2c]
mov dword [edx + 0x2c], ecx
mov al, byte [esi + 4]
mov byte [edx + 4], al
mov eax, dword [esi + 0x34]
push 4
mov dword [edx + 0x34], eax
mov eax, dword [esi + 8]
xor eax, dword [edx + 8]
pop ecx
push dword [edx + 0x28]
and eax, ecx
push dword [edx + 0x2c]
xor dword [edx + 8], eax
mov edx, dword [edx + 0x34]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.0046283e
add esp, 0xc
mov dword [ebp - 0x1c], eax
jmp 0x46ec95
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
xor eax, eax
test esi, esi
je 0x470d2a
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
test ecx, ecx
je 0x470e3e
mov edx, dword [esi + 0x34]
push eax
call fcn.00466e10
pop ecx
mov dword [ebp - 0x1c], eax
jmp 0x470e41
push eax
or eax, 0xffffffff
mov ecx, edi
push eax
push dword [ebx + 8]
call fcn.0046e820
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x24], esi
test esi, esi
je 0x473407
xor eax, eax
push 0x41e
inc eax
or dword [esi + 8], eax
lea eax, [esi + 0xc]
movzx ecx, word [ebx + 2]
push 5
pop edx
or ecx, edx
mov dword [ebp - 0x20], eax
push ecx
push eax
mov eax, dword [ebp - 0x14]
xor edx, edx
push eax
mov ecx, dword [eax]
call fcn.00460f12
add esp, 0x10
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x470e24
mov ecx, dword [esi + 0xc]
lea edx, [eax + 1]
push eax
call fcn.00461afa
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x470e24
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x28], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x470dfe
movzx esi, word [ebx + 2]
push 2
pop eax
or esi, eax
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
mov ecx, edi
call fcn.0045f77a
mov edx, dword [ebp - 0x24]
mov ecx, edi
add edx, 0x34
push esi
call fcn.00466acd
pop ecx
mov ecx, edi
mov dword [ebp - 0x1c], eax
call fcn.0045f7ec
cmp dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x24]
jne 0x470df7
push dword [esi + 0x28]
mov edx, dword [esi + 0x34]
push dword [ebp - 0x28]
mov ecx, dword [esi + 0xc]
push 4
pop eax
push eax
call fcn.0046283e
add esp, 0xc
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp - 0x58]
xor eax, eax
jmp 0x470e21
push dword [esi + 0x28]
xor eax, eax
xor ecx, ecx
push eax
inc ecx
push 4
pop eax
mov dword [esi + 0x34], ecx
mov edx, ecx
mov ecx, dword [esi + 0xc]
push eax
call fcn.0046283e
mov dword [ebp - 0x1c], eax
add esp, 0xc
xor eax, eax
inc eax
mov byte [esi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebx + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f69f
inc eax
mov byte [esi + 2], al
jmp 0x46ec95
mov edx, dword [ebx + 4]
xor eax, eax
inc eax
mov ecx, edi
push eax
or eax, 0xffffffff
push eax
push dword [ebx + 8]
call fcn.0046e820
add esp, 0xc
test eax, eax
je 0x473407
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00474784
pop ecx
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
jmp 0x46ec23
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, eax
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
je 0x47328e
jmp 0x46ec95
mov edx, dword [ebx + 4]
or eax, 0xffffffff
push 3
push eax
push dword [ebx + 0xc]
mov ecx, edi
call fcn.0046e820
add esp, 0xc
test eax, eax
je 0x473407
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x28], 0x63a000
jmp 0x46ec23
mov eax, dword [ebx + 4]
mov ecx, edi
mov edx, dword [edi + 0x60]
mov edx, dword [edx + eax*4]
call fcn.0046adea
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x46ec23
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov word [esi + 2], cx
mov dword [esi + 0x1c], ecx
cmp byte [esi + 4], cl
je 0x471028
imul ecx, dword [ebx + 0xc], 0x28
push 2
pop edx
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
movzx eax, word [ecx + 8]
mov dword [ebp - 0x20], eax
and al, 0x2e
cmp al, dl
jne 0x470f5e
xor edx, edx
call fcn.0046e910
mov ecx, dword [ebp - 0x24]
call fcn.00468d72
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
mov word [eax + 8], dx
test cl, 0x24
jne 0x470ff2
test cl, 8
jne 0x470fb1
xor eax, eax
inc eax
test al, cl
jne 0x47328e
cmp dword [ebp - 0x2c], 0x18
jae 0x47328e
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x64]
call fcn.00462fca
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
jmp 0x471141
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x28]
call fcn.00571650
mov eax, dword [ebp - 0x24]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x470fde
mov ecx, dword [ebp - 0x2c]
xor eax, eax
inc eax
test al, cl
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [ebp - 0x2c], ecx
jmp 0x470ff2
comisd xmm1, xmm0
jbe 0x470ff2
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
test cl, al
jne 0x470ff2
inc eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi + 0x28]
lea eax, [ebp - 0x64]
push eax
xor eax, eax
xor edx, edx
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x28]
call fcn.00463014
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov dword [esi + 0x40], ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x46f69f
jmp 0x4710b3
mov eax, dword [esi + 0x28]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x2d], al
pop eax
setne al
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0xe4], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xdc], ax
mov eax, edx
xor edx, edx
mov byte [ebp - 0xd6], cl
inc edx
and al, dl
lea edx, [ebp - 0xe4]
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0xda], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x64]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi + 0x28]
call fcn.00463014
add esp, 0x10
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp byte [ebp - 0x2d], al
je 0x4710b3
cmp byte [ebp - 0xd6], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
je 0x471141
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x64]
cmp eax, 0x18
jl 0x4710fe
test ecx, ecx
js 0x4710d0
jne 0x4710c9
cmp eax, 0x19
je 0x4710d0
xor eax, eax
mov dword [ebp - 0x64], eax
jmp 0x47114b
xor eax, eax
push eax
push dword [esi + 0x28]
mov dword [ebp - 0x64], eax
call fcn.004634d7
mov dword [ebp - 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x47114b
cmp eax, 0x65
jne 0x46f69f
xor eax, eax
mov dword [ebp - 0x1c], eax
inc eax
mov dword [ebp - 0x64], eax
jmp 0x47328e
test ecx, ecx
jg 0x471118
jne 0x471109
cmp eax, 0x16
je 0x471118
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [ebp - 0x64], ecx
jmp 0x471141
xor eax, eax
push eax
push dword [esi + 0x28]
mov dword [ebp - 0x64], eax
call fcn.004635e0
mov dword [ebp - 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x47114b
cmp eax, 0x65
jne 0x46f69f
xor eax, eax
mov dword [ebp - 0x1c], eax
inc eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x47328e
cmp dword [ebp - 0x38], 0
lea eax, [ebx + 0x14]
cmove eax, ebx
mov ebx, eax
jmp 0x46ec95
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
push 8
pop edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, edx
xor dword [ecx + 8], eax
jmp 0x46ec23
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x46ec23
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
imul ecx, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x24], eax
add ecx, esi
mov dword [ebp - 0x28], ecx
cmp dword [ebx + 0x10], edx
jle 0x4711cf
mov eax, dword [eax + 0x2c]
lea esi, [ebp - 0x140]
mov dword [ebp - 0x140], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x138], ax
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x20], edx
jmp 0x47121e
mov esi, 0x4000
test word [ecx + 8], si
je 0x4711e6
call fcn.00468ab5
mov ecx, eax
mov eax, dword [ebp - 0x24]
jmp 0x4711e8
mov ecx, edx
test ecx, ecx
jne 0x473407
mov ecx, dword [eax + 0x2c]
call fcn.0046bf92
mov esi, eax
mov dword [ebp - 0x20], esi
test esi, esi
je 0x473407
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push esi
push dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x2c]
call fcn.0046bfd5
pop ecx
pop ecx
xor edx, edx
mov byte [esi + 0xa], dl
cmp byte [ebx], 0x1b
mov dword [ebp - 0x28], edx
jne 0x471250
mov ecx, edx
movzx edx, word [esi + 8]
test edx, edx
je 0x47124e
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x471248
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x471239
jmp 0x47124e
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
xor edx, edx
lea eax, [ebp - 0xc8]
push eax
push edx
push edx
push edx
mov edx, esi
mov esi, dword [ebp - 0x24]
mov ecx, dword [esi + 0x28]
call fcn.00463014
mov edx, dword [ebp - 0x20]
add esp, 0x10
mov dword [ebp - 0x1c], eax
test edx, edx
je 0x47127f
mov ecx, dword [ebp - 0x14]
call fcn.00451bec
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0xc8]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
sete cl
xor eax, eax
inc eax
sub al, cl
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
cmp byte [ebx], 0x1d
jne 0x4712b3
test ecx, ecx
jmp 0x46f816
cmp dword [ebp - 0x28], eax
jne 0x47328e
test ecx, ecx
jmp 0x470eb8
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0x18]
test byte [esi + 8], 0x24
jne 0x47130c
push 0xa
pop ecx
push dword [ebp - 0x54]
lea edi, [ebp - 0x200]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x200]
call fcn.0046e9c1
pop ecx
push 4
pop eax
test byte [ebp - 0x1f8], al
je 0x47328e
mov edx, dword [ebp - 0x200]
mov eax, dword [ebp - 0x1fc]
mov edi, dword [ebp - 0x58]
jmp 0x47131a
mov esi, dword [ebp - 0x18]
imul eax, dword [ebx + 0xc], 0x28
mov edx, dword [eax + esi]
mov eax, dword [eax + esi + 4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], ecx
push eax
push ecx
push dword [ebp - 0x24]
mov ecx, dword [esi + 0x28]
push edx
xor edx, edx
call fcn.00463014
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov eax, dword [ebp - 0x20]
add esp, 0x10
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x5c]
mov word [esi + 2], cx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
test eax, eax
je 0x46f694
cmp dword [ebx + 8], ecx
jne 0x47328e
mov ecx, 0x159cf
call fcn.004ad767
jmp 0x470ab1
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, dword [edi + 0x60]
mov edx, dword [ebx + 4]
push 0
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add dword [eax + 0x10], ecx
pop ecx
adc dword [eax + 0x14], ecx
jmp 0x46ec23
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [ebp - 0x70], xmm0
mov ecx, edi
mov dword [ebp - 0x38], eax
call fcn.0046eafa
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
push 2
mov dword [ebp - 0x24], eax
pop eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x3c], ecx
test byte [ecx + 8], al
jne 0x471452
mov ecx, dword [ecx + 0x28]
lea edx, [ebp - 0x38]
call fcn.00462fca
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp dword [ebp - 0x38], eax
je 0x47140e
inc eax
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], esi
jmp 0x471458
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.004628f0
mov eax, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], esi
cmp esi, 0x7fffffff
jl 0x471446
jg 0x47143b
or ecx, 0xffffffff
cmp eax, ecx
jb 0x471446
mov ecx, dword [ebp - 0x3c]
push 2
pop edx
or dword [ecx + 8], edx
jmp 0x47145b
xor ecx, ecx
inc ecx
add eax, ecx
push 0
pop ecx
adc esi, ecx
jmp 0x471406
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4714e0
mov ecx, dword [edi + 0xc8]
test ecx, ecx
jne 0x4714c9
imul eax, edx, 0x28
add eax, dword [ebp - 0x18]
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.00468e90
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x471494
cmp eax, 0x7fffffff
je 0x47154d
mov edi, dword [ebp - 0x3c]
test byte [edi + 8], 2
mov edi, dword [ebp - 0x58]
jne 0x47154d
add edx, 1
adc eax, 0
mov dword [ebp - 0x20], eax
cmp esi, eax
jg 0x4714d8
jl 0x4714ba
mov eax, dword [ebp - 0x2c]
cmp eax, edx
jae 0x4714db
mov esi, dword [ebp - 0x20]
mov eax, edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], esi
jmp 0x4714db
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4714c7
imul eax, edx, 0x28
add eax, dword [ecx + 0x10]
jmp 0x471472
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov ecx, dword [ebp - 0x3c]
push 2
pop edx
test byte [ecx + 8], dl
je 0x47155a
xor eax, eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x70]
push eax
push 8
pop eax
push eax
call fcn.00453910
mov esi, dword [ebp - 0x6c]
xor ecx, ecx
mov eax, dword [ebp - 0x70]
inc ecx
push 0
pop edx
and esi, 0x3fffffff
add eax, ecx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
push ecx
adc esi, edx
mov dword [ebp - 0x70], eax
push edx
push esi
push eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x6c], esi
mov ecx, dword [eax + 0x28]
call fcn.00463014
add esp, 0x18
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp dword [ebp - 0x38], eax
jne 0x471554
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x64
jl 0x4714f0
push 0xd
jmp 0x473365
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov byte [ecx + 3], dl
mov dword [ecx + 0x1c], edx
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp 0x46ec95
imul edx, dword [ebx + 8], 0x28
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edi, dword [ebp - 0x18]
add edx, esi
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
cmp byte [ebx + 1], 0xfa
mov ecx, dword [ebp - 0x18]
mov ecx, dword [eax + ecx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x160], ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x15c], eax
jne 0x4715d9
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0xf0], 0
mov edi, dword [ebp - 0x58]
je 0x4715d9
mov eax, dword [ebp - 0x14]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x44]
jmp 0x4715e1
and dword [ebp - 0x24], 0
and dword [ebp - 0x28], 0
test byte [ebx + 2], 1
je 0x4715ea
inc dword [edi + 0x2c]
test byte [ebx + 2], 0x20
je 0x4715fe
mov edi, dword [ebp - 0x14]
mov dword [edi + 0x28], ecx
mov ecx, edi
mov edi, dword [ebp - 0x58]
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 0x10]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0x158], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [ebp - 0x14c], eax
pop eax
test al, cl
je 0x471620
mov eax, dword [esi + 0x20]
jmp 0x471622
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, 0x4000
test word [edx + 8], ax
push 0
pop eax
je 0x47163f
mov eax, dword [edx]
mov dword [ebp - 0x148], eax
xor eax, eax
jmp 0x471645
mov dword [ebp - 0x148], eax
push dword [ebp - 0x20]
and ecx, 0xa
mov dword [ebp - 0x168], eax
push ecx
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x168]
call fcn.0046643b
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov byte [esi + 3], cl
mov dword [esi + 0x1c], ecx
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x46ec95
push dword [ebp - 0x15c]
push dword [ebp - 0x160]
push dword [eax]
push dword [ebp - 0x28]
push 4
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0xec]
call dword [eax + 0xf0]
add esp, 0x18
jmp 0x46ec95
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x20], esi
jne 0x47171d
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [eax + 0xf0], ecx
je 0x47171d
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x24], eax
pop eax
test byte [ebx + 2], al
je 0x471725
cmp byte [esi + 4], 0
je 0x471725
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.004628f0
mov ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0x20]
mov dword [ecx + 0x40], eax
mov eax, dword [esi + 0x24]
mov esi, ecx
mov dword [esi + 0x44], eax
jmp 0x471725
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dl, byte [ebx + 2]
mov ecx, dword [esi + 0x28]
call fcn.004667dd
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
test eax, eax
jne 0x46f69f
inc eax
test byte [ebp - 0x44], al
je 0x46ec95
mov edx, dword [ebp - 0x14]
inc dword [edi + 0x2c]
mov eax, dword [edx + 0xf0]
test eax, eax
je 0x473180
mov ecx, dword [ebp - 0x24]
test byte [ecx + 0x24], 0x20
jne 0x473180
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [ecx]
push dword [ebp - 0x28]
push 9
push dword [edx + 0xec]
call eax
jmp 0x4716b0
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x2c]
add dword [ecx + 0x68], eax
mov dword [ecx + 0x64], eax
xor eax, eax
mov dword [edi + 0x2c], eax
mov eax, ecx
jmp case.0x46ebe4.86
imul edx, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, esi
xor esi, esi
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x2c], esi
lea esi, [ebp - 0x2c]
push esi
push dword [ebx + 0x10]
call fcn.00475fc5
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x46f69f
cmp dword [ebp - 0x2c], 0
jmp 0x46ec45
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, esi
mov ecx, dword [eax + ecx*4]
call fcn.00475f56
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
jmp 0x46ec23
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edx, dword [ebx + 4]
mov esi, eax
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x28]
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.004628f0
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [edx + 0x6c]
ja 0x472856
push esi
push eax
xor edx, edx
call fcn.0046952b
mov dword [ebp - 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x46f69f
cmp dword [ebx + 0xc], eax
jne 0x46ec95
mov eax, 0x1000
test word [esi + 8], ax
je 0x46ec95
mov ecx, esi
call fcn.00468a6b
test eax, eax
mov eax, dword [ebp - 0x14]
jne 0x47340a
jmp 0x46ec98
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x20], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x4718aa
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x46ec95
cmp byte [esi + 3], 0
je 0x4718c1
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0xb8], ecx
mov eax, dword [esi + 0x44]
jmp 0x471941
push 2
pop eax
cmp byte [esi], al
jne 0x4718fb
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0xb8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov edx, esi
mov dword [ebp - 0x1c], eax
mov ecx, edi
call fcn.0046ce71
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f69f
mov ecx, dword [ebp - 0xb8]
jmp 0x471947
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x47190c
mov ecx, esi
call fcn.0046bc64
jmp 0x47190e
xor eax, eax
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp byte [esi + 2], al
je 0x47192b
mov edx, dword [ebp - 0x20]
inc eax
mov word [edx + 8], ax
jmp 0x46ec95
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.004628f0
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0xb8], ecx
mov eax, dword [esi + 0x24]
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0x20]
mov dword [edx], ecx
mov eax, dword [ebp - 0xb4]
mov dword [edx + 4], eax
jmp 0x46ec95
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov byte [esi + 2], al
xor eax, eax
mov dword [esi + 0x1c], eax
cmp byte [esi], al
jne 0x46ec95
mov esi, dword [esi + 0x28]
push dword [esi + 0x10]
call fcn.00451b88
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x46ec95
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebp - 0x2d], 0x82
mov dword [ebp - 0x3c], eax
mov ecx, dword [esi + 0x28]
jne 0x4719b5
or eax, 0xffffffff
mov dword [esi + 0x20], eax
cmp byte [ecx], 0
je 0x46ec95
lea edx, [ebp - 0x3c]
call fcn.00462fca
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x1c], eax
mov byte [esi + 2], cl
mov byte [esi + 3], dl
mov dword [esi + 0x1c], edx
test eax, eax
jne 0x46f69f
cmp dword [ebx + 8], eax
jle 0x46ec95
jmp 0x4712ac
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x80]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.00462f9e
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp dword [ebp - 0x80], eax
jne 0x47328e
mov ecx, esi
call fcn.004633af
xor ecx, ecx
cmp edx, ecx
jl 0x46ec95
jg 0x471a29
cmp eax, ecx
jb 0x46ec95
push edx
push eax
call fcn.0045537a
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x46ec95
xor eax, eax
inc eax
mov dword [ebp - 0x80], eax
jmp 0x47328e
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0x28]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
cmp byte [esi], al
jne 0x471a6c
mov ecx, esi
call fcn.00475e63
jmp 0x471a7c
mov ecx, dword [esi + 0x28]
call fcn.00462f9e
xor ecx, ecx
mov byte [esi + 3], cl
mov dword [esi + 0x1c], ecx
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [esi + 2], al
jmp 0x46f816
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x14]
call fcn.00475eb3
jmp 0x471abd
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
push dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x28]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov dword [esi + 0x1c], ecx
test eax, eax
jne 0x471adc
mov byte [esi + 2], cl
movzx eax, word [ebx + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x472e12
cmp eax, 0x65
jne 0x46f69f
mov eax, ecx
mov dword [ebp - 0x1c], eax
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x47243f
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0x20], ecx
add esi, dword [ebp - 0x18]
test byte [ebx + 2], al
je 0x471b13
inc dword [edi + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x471b2a
mov ecx, esi
call fcn.00468ab5
mov ecx, dword [ebp - 0x20]
jmp 0x471b2c
xor eax, eax
test eax, eax
jne 0x46f69f
cmp byte [ebx], 0x83
jne 0x471b45
mov edx, esi
call fcn.00475323
jmp 0x470ab1
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x1a8], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x1b0], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
mov dword [ebp - 0x1a4], edx
pop edx
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x19c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x198], ax
movzx eax, word [ebx + 2]
test dl, al
je 0x471b86
mov ecx, dword [ecx + 0x20]
jmp 0x471b88
xor ecx, ecx
mov esi, dword [ebp - 0x20]
lea edx, [ebp - 0x1b0]
push ecx
and eax, 0xa
push eax
mov ecx, dword [esi + 0x28]
call fcn.0046643b
pop ecx
pop ecx
xor ecx, ecx
mov dword [esi + 0x1c], ecx
jmp 0x470ab1
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x120], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x118], ax
imul eax, dword [ebx + 8], 0x28
mov byte [ebp - 0x116], dl
mov dword [ebp - 0x20], ecx
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0xcc]
push eax
push edx
push edx
push edx
lea edx, [ebp - 0x120]
call fcn.00463014
add esp, 0x10
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp dword [ebp - 0xcc], eax
jne 0x471c25
mov ecx, dword [ebp - 0x20]
push 4
pop eax
mov dl, al
call fcn.004667dd
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
xor ecx, ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
jmp 0x46ec95
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x471c4c
mov ecx, esi
call fcn.0046bc64
jmp 0x471c4e
xor eax, eax
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f69f
cmp byte [esi + 2], al
jne 0x471ce3
mov edx, dword [esi + 0x28]
lea eax, [ebp - 0x90]
mov ecx, dword [ebp - 0x14]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x90], xmm0
call fcn.0046cc58
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x46f69f
cmp byte [ebx], 0x86
jne 0x471cc4
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov byte [ecx + 2], al
mov eax, dword [ebp - 0x90]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 0x44], eax
xor eax, eax
inc eax
mov byte [ecx + 3], al
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x24], esi
jmp 0x46ec95
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, dword [ebp - 0x90]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x8c]
mov dword [eax + 4], ecx
jmp 0x46ec95
imul ecx, dword [ebx + 8], 0x28
mov esi, dword [ebp - 0x18]
add ecx, esi
call fcn.00469086
jmp 0x46ec23
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
cmp byte [ebp - 0x2d], 0x27
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x130], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x128], ax
sbb al, al
mov byte [ebp - 0x126], al
imul eax, dword [ebx + 0xc], 0x28
add eax, esi
mov dword [ebp - 0x12c], eax
xor eax, eax
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.0046cd31
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
inc ecx
test byte [ebx], cl
mov ecx, dword [ebp - 0x44]
je 0x471d56
neg ecx
jmp 0x471d57
inc ecx
test eax, eax
jne 0x46f69f
test ecx, ecx
jg 0x47328e
jmp 0x46ec23
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
xor ecx, ecx
mov dword [ebp - 0x20], eax
inc ecx
mov word [eax + 8], cx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc0]
inc ecx
cmp dword [eax + 0xb4], ecx
jg 0x4733dc
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov esi, dword [ebx + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
shl ecx, 4
mov dword [ebp - 0x24], ecx
mov eax, dword [eax + 0x10]
mov edi, dword [ecx + eax + 4]
mov ecx, edi
call fcn.0045f77a
lea eax, [ebp - 0x34]
mov edx, esi
push eax
mov ecx, edi
call fcn.00466e69
pop ecx
mov ecx, edi
mov dword [ebp - 0x1c], eax
call fcn.0045f7ec
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], edx
test eax, eax
jne 0x473642
mov eax, dword [ebp - 0x14]
test esi, esi
je 0x46ec98
mov edx, dword [eax + 0x10]
add edx, dword [ebp - 0x24]
mov edi, dword [ebx + 4]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x471e1d
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x471e1b
mov dword [ecx + 0x1c], edi
mov eax, dword [eax]
test eax, eax
jne 0x471e10
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x471e36
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x471e34
mov dword [ecx + 0x2c], edi
mov eax, dword [eax]
test eax, eax
jne 0x471e29
mov al, byte [ebp - 0x28]
inc al
mov byte [ebp - 0x5d], al
jmp 0x46ec95
xor ecx, ecx
lea eax, [ebp - 0x48]
xor edx, edx
cmp dword [ebx + 0xc], edx
mov dword [ebp - 0x48], edx
mov edx, dword [ebx + 4]
cmove eax, ecx
mov ecx, dword [ebp - 0x14]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00466e10
pop ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebx + 0xc], ecx
je 0x470e88
mov edx, dword [ebp - 0x48]
add dword [edi + 0x2c], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x470e88
imul ecx, ecx, 0x28
mov eax, edx
cdq
add dword [ecx + esi], eax
adc dword [ecx + esi + 4], edx
mov eax, dword [ebp - 0x1c]
jmp 0x470e88
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
inc eax
cmp byte [ecx], al
jne 0x471ec4
mov edx, dword [ecx + 0x28]
mov ecx, dword [ebp - 0x14]
call fcn.00474a68
jmp 0x46ec23
mov ecx, dword [ecx + 0x28]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.00466e10
jmp 0x470e84
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov edi, dword [ecx + edx*8 + 4]
mov ecx, edi
call fcn.0045f77a
push esi
lea edx, [ebp - 0x40]
mov ecx, edi
call fcn.00466acd
pop ecx
mov ecx, edi
mov dword [ebp - 0x1c], eax
call fcn.0045f7ec
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x473642
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46ec95
inc byte [eax + 0x5a]
xor ecx, ecx
push ecx
push ecx
push ecx
push dword [ebx + 0x10]
push eax
call fcn.0048d141
mov ecx, dword [ebp - 0x14]
add esp, 0x14
dec byte [ecx + 0x5a]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f6a2
jmp 0x471799
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x471fac
mov eax, dword [eax + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.004860b3
mov eax, dword [ebp - 0x14]
mov edx, esi
mov esi, dword [ebp - 0x14]
pop ecx
mov ecx, esi
and dword [eax + 0x18], 0xffffffef
xor eax, eax
inc eax
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.00490760
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
inc ecx
or dword [esi + 0x18], ecx
and dword [edi + 0x98], 0xfffffffc
jmp 0x472065
mov ecx, dword [ebp - 0x14]
push dword [ebx + 0x10]
mov dword [ebp - 0x110], eax
lea eax, [edi + 0x7c]
mov dword [ebp - 0x10c], eax
xor eax, eax
mov dword [ebp - 0x108], esi
add esi, esi
mov dword [ebp - 0x100], eax
mov eax, dword [ecx + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.0045373d
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4733ed
mov eax, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
mov byte [eax + 0xa5], cl
xor ecx, ecx
push ecx
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xfc], ecx
lea ecx, [ebp - 0x110]
push ecx
push fcn.004905cc
push esi
push eax
call fcn.0048d141
add esp, 0x14
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x47204e
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x47204e
cmp dword [ebp - 0xfc], eax
jne 0x47204e
mov ecx, 0x15f51
call fcn.004ad767
mov dword [ebp - 0x1c], eax
mov edx, esi
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.00451bec
xor eax, eax
mov byte [esi + 0xa5], al
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x4733f3
jmp 0x46ec95
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.0048006e
jmp 0x470e85
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
shl ecx, 4
add ecx, dword [eax + 0x10]
xor eax, eax
push eax
push 8
pop eax
mov ecx, dword [ecx + 0xc]
add ecx, eax
call fcn.0045574d
pop ecx
mov ecx, dword [ebp - 0x14]
mov edx, eax
call fcn.004816a4
mov eax, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
or dword [eax + 0x18], ecx
jmp case.0x46ebe4.86
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.0048134f
jmp 0x46f02f
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.0049874b
jmp 0x46f02f
imul eax, dword [ebx + 4], 0x28
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x10]
add edx, 4
add eax, dword [ebp - 0x18]
add esi, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [esi]
inc eax
push eax
movzx eax, word [ebx + 2]
push dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00467983
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov dword [ebp - 0x20], eax
call fcn.00469086
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x472158
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x473407
dec eax
cdq
sub dword [esi], eax
push fcn.00451b88
sbb dword [esi + 4], edx
xor eax, eax
inc eax
mov edx, ecx
mov ecx, dword [ebp - 0x24]
push eax
or eax, 0xffffffff
push eax
call fcn.004692e9
add esp, 0xc
movzx edx, byte [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
call fcn.00468923
jmp 0x46ec95
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
push 0x10
pop ecx
add esi, dword [ebp - 0x18]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
test byte [esi + 8], cl
jne 0x472194
mov ecx, esi
call fcn.00469157
test eax, eax
jne 0x473407
mov eax, dword [ebp - 0x20]
push dword [eax + 4]
mov ecx, dword [esi + 0x10]
push dword [eax]
call fcn.004593aa
jmp 0x46fba9
imul esi, dword [ebx + 4], 0x28
push 0x10
pop eax
add esi, dword [ebp - 0x18]
test byte [esi + 8], al
je 0x4721ea
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0xf0]
call fcn.004595cc
test eax, eax
je 0x4721ea
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0xec]
mov esi, dword [ebp - 0x18]
push dword [ebp - 0xf0]
add ecx, esi
call fcn.004690f2
pop ecx
pop ecx
xor ecx, ecx
jmp 0x472442
mov ecx, esi
call fcn.00469086
jmp 0x472e12
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
push 0x10
pop edx
add esi, dword [ebp - 0x18]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
test byte [esi + 8], dl
jne 0x47222a
mov ecx, esi
call fcn.00469157
test eax, eax
jne 0x473407
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x47224c
push dword [eax + 4]
mov edx, ecx
mov ecx, dword [esi + 0x10]
push dword [eax]
call fcn.0045961a
pop ecx
pop ecx
test eax, eax
jne 0x47328e
mov ecx, dword [ebp - 0x20]
test ecx, ecx
js 0x46ec95
mov eax, dword [ebp - 0x24]
jmp 0x472194
imul ecx, dword [ebx + 0xc], 0x28
xor eax, eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edx
add ecx, esi
mov dword [ebp - 0x20], ecx
cmp word [ebx + 2], ax
je 0x472295
mov eax, dword [edi + 0xc8]
mov edx, dword [edx + 0x14]
test eax, eax
je 0x472292
cmp dword [eax + 0x1c], edx
je 0x47228a
mov eax, dword [eax + 4]
test eax, eax
jne 0x47227e
test eax, eax
jne 0x46ec23
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x14]
mov eax, dword [edi + 0xd0]
cmp eax, dword [esi + 0x94]
jge 0x473425
push 0x10
pop eax
test byte [ecx + 8], al
jne 0x47239d
mov esi, dword [ebp - 0x2c]
mov edx, dword [edx + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [ebp - 0x28], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [esi + 4]
add eax, 7
add ecx, edx
mov eax, eax
test eax, eax
jns 0x4722e3
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
cdq
push edx
push eax
call fcn.00451dd3
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x473407
mov ecx, dword [ebp - 0x20]
call fcn.00468cdb
mov eax, dword [ebp - 0x20]
mov ecx, 0x410
sub ebx, dword [ebp - 0x50]
push 0x14
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x10], esi
mov dword [eax + 0x24], 0x46a761
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x3c], ecx
mov dword [esi], edi
mov eax, dword [eax + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov edx, dword [ebp - 0x2c]
mov dword [esi + 0x30], eax
mov eax, dword [edi + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x68]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [esi + 0x50]
add ecx, esi
cmp eax, ecx
je 0x4723a0
mov ebx, dword [ebp - 0x14]
mov edx, 0x80
mov word [eax + 8], dx
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x47238a
mov edx, dword [ebp - 0x2c]
jmp 0x4723a0
mov esi, dword [ecx + 0x10]
inc dword [edi + 0xd0]
xor ebx, ebx
mov eax, dword [edi + 0xc8]
mov ecx, dword [ebp - 0x14]
mov dword [esi + 4], eax
push 7
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 0x2c]
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0xdc]
mov dword [esi + 0x28], eax
mov dword [edi + 0x58], ecx
mov dword [edi + 0xc8], esi
mov dword [edi + 0xdc], ebx
mov dword [edi + 0x2c], ebx
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [esi + 0x40]
mov dword [edi + 0x1c], eax
imul eax, dword [edi + 0x18], 0x28
add ecx, eax
mov dword [edi + 0x60], ecx
mov eax, dword [edx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edx + 4]
pop esi
add eax, esi
cdq
and edx, esi
add eax, edx
sar eax, 3
push eax
push ebx
push ecx
call fcn.00589540
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [eax]
mov dword [edi + 0x68], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], ecx
mov dword [edi + 0x6c], eax
lea ebx, [ecx - 0x14]
xor ecx, ecx
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x110], ecx
je 0x472e54
mov ecx, dword [ebp - 0x14]
push 9
pop eax
push 7
cmp byte [ecx + 0x51], 0
pop ecx
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0x1c], eax
mov dword [edi + 0x28], eax
call fcn.004ac0c6
jmp 0x47344c
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov esi, dword [edi + 0xc8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
jmp 0x46ffc4
mov eax, dword [eax + 0x20]
xor ecx, ecx
and eax, 0x80000
or eax, ecx
mov eax, dword [ebx + 8]
cdq
je 0x4724cb
mov ecx, dword [ebp - 0x14]
add dword [ecx + 0x1e0], eax
mov eax, ecx
adc dword [eax + 0x1e4], edx
jmp case.0x46ebe4.86
cmp dword [ebx + 4], ecx
je 0x4724e6
mov ecx, dword [ebp - 0x14]
add dword [ecx + 0x1d8], eax
mov eax, ecx
adc dword [eax + 0x1dc], edx
jmp case.0x46ebe4.86
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x46ec23
xor ecx, ecx
cmp dword [ebx + 4], ecx
je 0x47250f
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x1d8]
or eax, dword [ecx + 0x1dc]
jne 0x471799
jmp 0x47251e
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x46ec23
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x1e0]
or eax, dword [ecx + 0x1e4]
je 0x47328e
jmp 0x471799
mov eax, dword [edi + 0xc8]
test eax, eax
jne 0x47257e
imul edi, dword [ebx + 4], 0x28
add edi, esi
mov ecx, edi
call fcn.00468e90
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.00468e90
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x46ec95
jl 0x472572
cmp dword [edi], eax
jae 0x46ec95
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46ec95
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x47257c
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x472545
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, esi
mov edi, dword [ecx + 4]
mov esi, dword [ecx]
cmp edi, edx
jl 0x46ec98
jg 0x4725ad
cmp esi, edx
jbe 0x46ec98
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x47328e
imul eax, dword [ebx + 0xc], 0x28
mov edx, ebx
imul esi, dword [ebx + 4], 0x28
mov ecx, edi
add eax, dword [ebp - 0x18]
add esi, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
call fcn.0046eafa
mov ecx, dword [esi + 4]
xor edx, edx
mov dword [ebp - 0xbc], ecx
mov edi, eax
mov eax, dword [esi]
mov dword [ebp - 0xc0], eax
cmp ecx, edx
jl 0x47264a
jg 0x4725f8
cmp eax, edx
jbe 0x47264a
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, edx
jl 0x47260a
jg 0x472621
cmp ecx, edx
ja 0x472621
xorps xmm0, xmm0
movlpd qword [ebp - 0x98], xmm0
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
push eax
push ecx
lea ecx, [ebp - 0xc0]
call fcn.0045512f
pop ecx
pop ecx
test eax, eax
jne 0x47264a
mov eax, dword [ebp - 0xc0]
mov dword [edi], eax
mov eax, dword [ebp - 0xbc]
mov dword [edi + 4], eax
jmp 0x46ec95
or eax, 0xffffffff
mov dword [edi], eax
jmp 0x472642
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x46ec95
xor eax, eax
cmp esi, eax
jl 0x47328e
jg 0x47267a
cmp edx, eax
jbe 0x47328e
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x47328e
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
cmp edx, 0x80000000
jl 0x4726b2
jg 0x4726a6
xor edi, edi
cmp eax, edi
jbe 0x4726b2
jmp 0x4726a8
xor edi, edi
sub eax, 1
mov dword [ecx], eax
sbb edx, edi
mov dword [ecx + 4], edx
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x46fc86
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x20], eax
push ecx
mov ecx, dword [ebp - 0x14]
lea eax, [eax*4 + 0x44]
push eax
call fcn.00451e5f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x473407
mov eax, dword [ebp - 0x20]
xor edx, edx
add eax, 7
mov dword [esi + 8], edx
push 0x14
lea ecx, [esi + eax*4]
xor eax, eax
inc eax
mov dword [esi], ecx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x18], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, ebx
sub eax, dword [ebp - 0x50]
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x18], al
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x20]
mov byte [esi + 0x19], al
mov word [ebx], 0xf09b
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
cmp dword [esi + 8], edx
je 0x472770
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edx
js 0x472770
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x18]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x472756
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x20]
inc dword [edx + 0xc]
xor eax, eax
cmp dword [ebx + 4], eax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
je 0x47278c
call dword [ecx + 0x1c]
jmp 0x47278f
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x46ec95
jle 0x4727c0
mov ecx, dword [esi]
xor eax, eax
lea edx, [eax + 1]
call fcn.004695fb
push eax
push 0x5fc380
push edi
call fcn.00469a7c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x1c], eax
cmp byte [esi + 0x18], 0
je 0x4727e4
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x4727df
xor ecx, ecx
push ecx
inc ecx
push ecx
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x18]
call fcn.004690f2
pop ecx
pop ecx
xor eax, eax
mov byte [esi + 0x18], al
mov ecx, dword [esi]
call fcn.00468cdb
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
xor eax, eax
mov dword [esi + 0x14], eax
jmp 0x46f694
imul esi, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
add esi, ecx
test eax, eax
je 0x472827
push dword [ebx + 0x10]
imul edx, eax, 0x28
add edx, ecx
mov ecx, esi
call fcn.00468c20
imul esi, dword [ebx + 0xc], 0x28
pop ecx
add esi, dword [ebp - 0x18]
jmp 0x472831
mov edx, dword [ebx + 0x10]
mov ecx, esi
call fcn.00468ba0
mov dword [ebp - 0x1c], eax
mov ecx, esi
test eax, eax
jne 0x473442
movzx edx, byte [ebp - 0x54]
call fcn.00468923
mov ecx, esi
call fcn.004691c8
test eax, eax
je 0x46ec95
push str.string_or_blob_too_big
push edi
call fcn.00469a7c
pop ecx
pop ecx
push 0x12
jmp 0x473365
mov edx, dword [ebx + 4]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
or ecx, 0xffffffff
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0xc]
push ecx
push dword [ebx + 8]
mov ecx, eax
call fcn.004ac938
add esp, 0xc
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4728ab
push 5
pop ecx
cmp eax, ecx
jne 0x46f69f
xor eax, eax
mov dword [ebp - 0x1c], eax
inc eax
mov dword [ebp - 0x10], eax
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0x18]
xor eax, eax
mov edi, eax
mov eax, dword [ebp + edi*4 - 0x10]
mov ecx, esi
cdq
push edx
push eax
call fcn.004690f2
inc edi
add esi, 0x28
pop ecx
pop ecx
cmp edi, 3
jl 0x4728b6
jmp 0x46ec95
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, dword [ebp - 0x14]
or esi, 0xffffffff
mov edx, dword [ebx + 4]
add edx, edx
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xc]
cmp eax, esi
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [ebp - 0x38], ecx
movzx edx, byte [ecx + 5]
cmove eax, edx
mov dword [ebp - 0x24], edx
cmp byte [ecx + 0x10], 3
mov dword [ebp - 0x20], eax
jb 0x472919
xor eax, eax
jmp 0x472933
mov eax, dword [ecx + 0x40]
xor esi, esi
cmp dword [eax], esi
je 0x472930
xor eax, eax
cmp dword [ecx + 0x4c], eax
jl 0x472930
jg 0x472933
cmp dword [ecx + 0x48], eax
ja 0x472933
xor eax, eax
inc eax
test eax, eax
mov esi, edx
mov eax, 0x5f4bbf
cmovne esi, dword [ebp - 0x20]
cmp byte [ecx + 0xf], 0
jne 0x47294c
mov eax, dword [ecx + 0xa8]
cmp esi, 5
jne 0x472976
mov ecx, eax
call fcn.004541bf
mov ecx, dword [ebp - 0x38]
test eax, eax
je 0x47296c
push esi
pop eax
mov esi, eax
call fcn.0045d254
test eax, eax
jne 0x472973
mov edx, dword [ebp - 0x24]
mov esi, edx
jmp 0x472976
mov edx, dword [ebp - 0x24]
cmp esi, edx
je 0x4729ee
push 5
pop eax
cmp edx, eax
je 0x472985
cmp esi, eax
jne 0x4729ee
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x4f], 0
je 0x473463
cmp dword [eax + 0xb4], 1
jg 0x473463
cmp edx, 5
jne 0x4729be
mov edx, eax
call fcn.0045d32d
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x4729f3
mov ecx, dword [ebp - 0x38]
mov edx, esi
call fcn.0045d13b
jmp 0x4729d6
push 4
pop eax
cmp edx, eax
jne 0x4729cf
push 2
pop eax
mov edx, eax
call fcn.0045d13b
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x4729f3
mov ecx, dword [ebp - 0x28]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.00467e26
mov dword [ebp - 0x1c], eax
jmp 0x4729f1
mov eax, dword [ebp - 0x1c]
test eax, eax
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
cmove edx, esi
call fcn.0045d13b
mov esi, dword [ebp - 0x44]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x472a18
xor eax, eax
mov ecx, eax
jmp 0x472a1f
mov ecx, dword [eax*4 + 0x5e9a18]
mov dword [esi + 0x10], ecx
call fcn.004541bf
movzx edx, byte [ebp - 0x54]
mov ecx, esi
mov dword [esi + 0xc], eax
xor eax, eax
inc eax
mov byte [esi + 0xa], al
call fcn.00468923
jmp 0x46f694
mov eax, dword [ebx + 8]
test eax, eax
je 0x472a4e
imul eax, eax, 0x28
add eax, esi
jmp 0x472a50
xor eax, eax
mov edx, dword [ebp - 0x14]
lea ecx, [edi + 0x7c]
push eax
push dword [ebx + 4]
call fcn.0049aa0e
pop ecx
jmp 0x470e84
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00462231
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x46ec23
cmp eax, 0x65
jne 0x46f69f
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x47328e
xor ecx, ecx
cmp dword [ebx + 4], ecx
jne 0x472aaa
mov edx, dword [ebx + 8]
mov ecx, eax
call fcn.0046cdbb
jmp 0x46ec23
mov eax, dword [ebx + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
jmp 0x46ec23
mov al, byte [ebx + 0xc]
mov byte [ebp - 0xd4], al
test al, al
jne 0x472ae6
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x400
mov dword [ebp - 0x98], eax
jne 0x46ec23
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 4]
push dword [ebp - 0xd4]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00467d7a
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
je 0x46ec23
cmp al, 6
jne 0x46f69f
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x473452
mov esi, dword [ebx + 0x10]
mov ecx, eax
mov edx, esi
call fcn.0049bac7
mov dword [ebp - 0x1c], eax
test esi, esi
je 0x46f697
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0046ce71
jmp 0x46f694
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0x228]
push eax
call fcn.00589540
imul edx, dword [ebx + 8], 0x28
lea ecx, [ebp - 0x228]
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x208], eax
add edx, esi
call fcn.0046925f
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x228]
xor eax, eax
lea edx, [eax + 1]
call fcn.004695fb
test eax, eax
je 0x472ba4
mov edx, dword [ebx + 4]
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x14]
push eax
call fcn.0049b754
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x228]
call fcn.00468cdb
jmp 0x471e9c
inc dword [eax + 0xc0]
mov ecx, eax
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.0049b9cc
pop ecx
mov ecx, dword [ebp - 0x14]
dec dword [ecx + 0xc0]
jmp 0x471f50
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x473492
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x473492
lea ecx, [ebp - 0x4c]
push ecx
push esi
call dword [eax + 0x18]
pop ecx
pop ecx
mov edx, esi
mov dword [ebp - 0x1c], eax
mov ecx, edi
call fcn.0046ce71
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x4c]
mov ecx, edi
push 2
mov dword [eax], esi
mov edx, dword [ebx + 4]
pop eax
push eax
or eax, 0xffffffff
push eax
xor eax, eax
push eax
call fcn.0046e820
add esp, 0xc
test eax, eax
je 0x473483
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x46ec95
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x38], eax
add edx, esi
mov esi, dword [eax + 0x28]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [edx]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x20], eax
xor eax, eax
test ecx, ecx
jle 0x472c91
mov edi, dword [ebp - 0x20]
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x472c83
mov edi, dword [ebp - 0x58]
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x28]
push esi
call dword [eax + 0x20]
mov edx, dword [ebp - 0x44]
add esp, 0x14
mov ecx, edi
mov dword [ebp - 0x1c], eax
call fcn.0046ce71
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x24]
push esi
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x46ec95
jmp 0x47328e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x20], eax
add esi, dword [ebp - 0x18]
cmp byte [eax + 2], 0
jne 0x46fbb0
mov eax, dword [eax + 0x28]
push 0x20
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
xor eax, eax
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.00589540
xor ecx, ecx
mov dword [ebp - 0x188], esi
inc ecx
add esp, 0xc
test byte [ebx + 2], cl
je 0x472d3c
mov ecx, esi
call fcn.00469086
mov eax, 0x4001
mov word [esi + 8], ax
xor eax, eax
mov dword [esi], eax
jmp 0x472d4f
mov ax, word [esi + 8]
mov edx, 0x3e40
and ax, dx
or ax, cx
mov word [esi + 8], ax
push dword [ebx + 8]
lea eax, [ebp - 0x188]
push eax
mov eax, dword [ebp - 0x20]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x24]
call dword [eax + 0x2c]
mov edx, dword [ebp - 0x28]
add esp, 0xc
mov ecx, edi
mov dword [ebp - 0x1c], eax
call fcn.0046ce71
cmp dword [ebp - 0x174], 0
jle 0x472da2
xor eax, eax
mov ecx, esi
lea edx, [eax + 1]
call fcn.004695fb
push eax
push 0x5fc380
push edi
call fcn.00469a7c
mov eax, dword [ebp - 0x174]
add esp, 0xc
mov dword [ebp - 0x1c], eax
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.00468923
mov ecx, esi
call fcn.004691c8
test eax, eax
jne 0x472856
jmp 0x46f694
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x20], eax
cmp byte [eax + 2], 0
jne 0x46ec23
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x24], ecx
call dword [ecx + 0x24]
pop ecx
mov edx, esi
mov dword [ebp - 0x1c], eax
mov ecx, edi
call fcn.0046ce71
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f69f
mov eax, dword [ebp - 0x20]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x24]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x47243d
mov esi, dword [ebp - 0x18]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x50]
add ebx, 0xffffffec
add ebx, eax
jmp 0x4721e3
mov eax, dword [eax + 0x148]
test eax, eax
je 0x46ec23
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + 0x150]
push dword [ecx + 0x14c]
mov dword [ebp - 0x7c], edx
call eax
pop ecx
test eax, eax
jne 0x473499
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x7c]
cmp dword [ebp - 0xa4], edx
jae 0x472e26
jmp case.0x46ebe4.86
mov eax, dword [eax + 0x20]
mov edx, 0x4000000
mov ecx, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x24], eax
or dword [ecx + 0x20], edx
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
xor eax, eax
add esi, dword [ebp - 0x18]
mov ecx, esi
lea edx, [eax + 1]
call fcn.00468923
test eax, eax
jne 0x46f69f
mov ecx, dword [ebp - 0x20]
push dword [esi + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x4c]
cmp dword [ebp - 0x24], 0
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jne 0x472ec8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0x20]
mov ecx, edi
call fcn.0046ce71
jmp 0x470b4f
cmp byte [eax + 0x51], 0
jne 0x473407
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x473492
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x473492
mov edx, dword [ebx + 8]
xor ecx, ecx
cmp dword [eax + 0x34], ecx
mov eax, dword [ebp - 0x14]
je 0x46ec98
mov al, byte [eax + 0x56]
mov byte [ebp - 0x2d], al
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x20], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x18]
test edx, edx
jle 0x472f35
mov edi, dword [ebp - 0x20]
mov dword [edi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x472f27
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x14]
mov al, byte [ebx + 2]
mov byte [ecx + 0x56], al
lea eax, [ebp - 0xf8]
push eax
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
push edx
push esi
call dword [eax + 0x34]
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov edx, esi
mov al, byte [ebp - 0x2d]
mov byte [ecx + 0x56], al
mov ecx, edi
call fcn.0046ce71
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x472f90
xor ecx, ecx
cmp dword [ebx + 4], ecx
mov ecx, dword [ebp - 0x14]
je 0x472f93
mov eax, dword [ebp - 0xf8]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0xf4]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0x1c]
jmp 0x472f93
mov ecx, dword [ebp - 0x14]
cmp al, 0x13
jne 0x472fc6
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x472fc6
movzx eax, word [ebx + 2]
push 4
pop edx
cmp ax, dx
jne 0x472fb3
xor eax, eax
jmp 0x470ced
push 5
pop edx
cmp ax, dx
jne 0x472fbe
push 2
pop eax
mov byte [edi + 0x92], al
jmp 0x472fc9
inc dword [edi + 0x2c]
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46f6a2
jmp 0x46ec95
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx + 4]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
xor ecx, ecx
jmp 0x46ed54
mov edx, ebx
mov ecx, edi
call fcn.0046eafa
mov edx, dword [ebx + 4]
mov dword [ebp - 0x20], eax
add edx, edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
xor eax, eax
mov esi, eax
mov edi, dword [ecx + edx*8 + 4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x473031
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x2c]
cmp esi, ecx
cmovb esi, ecx
mov ecx, edi
call fcn.0045f77a
mov eax, dword [edi + 4]
mov eax, dword [eax]
test esi, esi
jle 0x473047
mov dword [eax + 0x9c], esi
mov esi, dword [eax + 0x9c]
mov ecx, edi
call fcn.0045f7ec
mov eax, esi
jmp 0x471f28
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x20], eax
push ecx
mov ecx, dword [ebp - 0x14]
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00451e5f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x473407
xor eax, eax
mov dword [esi], eax
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x50]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
push 2
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x20]
mov byte [esi + 0x19], al
mov dword [esi + 0xc], edi
pop eax
add byte [ebx], al
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], esi
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
cmp dword [esi], ecx
je 0x4730f2
movzx edx, byte [esi + 0x19]
sub edx, 1
mov dword [esi], ecx
js 0x4730f2
lea edi, [edx + 7]
push 4
lea edi, [esi + edi*4]
pop ecx
mov eax, dword [ebx + 8]
add eax, edx
imul eax, eax, 0x28
add eax, dword [ebp - 0x18]
mov dword [edi], eax
sub edi, ecx
sub edx, 1
jns 0x4730d8
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x24]
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
xor edx, edx
inc edx
or ax, dx
mov word [ecx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x47316c
jle 0x473146
mov ecx, dword [ebp - 0x24]
xor eax, eax
lea edx, [eax + 1]
call fcn.004695fb
push eax
push 0x5fc380
push edi
call fcn.00469a7c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x1c], eax
push dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea edx, [edi + 0xdc]
push dword [esi + 0x10]
call fcn.0046babf
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x1c]
pop ecx
pop ecx
test eax, eax
jne 0x46f69f
mov esi, dword [ebp - 0x24]
test byte [esi + 8], 0x12
je 0x46ec95
mov ecx, esi
jmp 0x47283e
mov eax, edx
jmp 0x46ec98
mov cl, byte [eax + 0x58]
test cl, 0x41
je 0x473243
push 0x10
pop eax
test byte [edi + 0x98], al
jne 0x473243
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x4731b7
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x473243
test cl, 0x40
mov ecx, dword [ebp - 0x14]
je 0x4731eb
mov edi, dword [ecx + 0xcc]
mov edx, eax
mov ecx, dword [ebp - 0x58]
call fcn.0046e524
mov esi, eax
mov eax, dword [ebp - 0x14]
push esi
push dword [eax + 0xd0]
call edi
push esi
call fcn.00451b88
mov edi, dword [ebp - 0x58]
add esp, 0xc
jmp 0x47322d
xor edx, edx
inc edx
push eax
cmp dword [ecx + 0xbc], edx
jle 0x473232
push str.____s
push ecx
call fcn.0045373d
add esp, 0xc
mov esi, eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
push esi
push edi
push dword [eax + 0xd0]
push ecx
call dword [eax + 0xcc]
add esp, 0x10
test esi, esi
je 0x47322d
mov ecx, dword [ebp - 0x14]
mov edx, esi
call fcn.00451bec
mov esi, dword [ebp - 0x18]
jmp 0x473243
push edi
push dword [ecx + 0xd0]
push edx
call dword [ecx + 0xcc]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x6314c8]
jl 0x473285
cmp byte [ebx], 0xa8
je 0x46ec23
xor eax, eax
inc eax
mov ecx, eax
cmp dword [edi + 0x6c], eax
jle 0x473280
push 0x14
pop esi
mov eax, esi
xor ebx, ebx
mov edx, dword [edi + 0x68]
cmp byte [eax + edx], 0x11
jne 0x473275
mov dword [eax + edx + 4], ebx
inc ecx
add eax, esi
cmp ecx, dword [edi + 0x6c]
jl 0x473268
mov ebx, dword [ebp - 0x3c]
xor eax, eax
mov dword [ebx + 4], eax
inc dword [ebx + 4]
inc dword [edi + 0xbc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x50]
add ebx, 0xffffffec
jmp 0x46ff7c
mov ecx, dword [ebx + 4]
mov dword [edi + 0x28], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x47331d
movzx eax, word [ebx + 2]
test ax, ax
je 0x4732f2
push dword [eax*4 + 0x5e9988]
push str._s_constraint_failed
push edi
call fcn.00469a7c
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x473303
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [ebp - 0x14]
call fcn.0045373d
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x473303
push dword [ebx + 0x10]
push 0x5fc380
push edi
call fcn.00469a7c
add esp, 0xc
push dword [edi + 0x7c]
push dword [edi + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.004538db
add esp, 0x14
mov ecx, edi
call fcn.0046b6bc
mov edx, dword [ebp - 0x14]
push 5
pop ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x47338b
push 0x65
pop eax
xor ecx, ecx
cmp dword [edi + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x1c], eax
jmp 0x46f73e
mov ecx, 0x152d5
call fcn.004ad767
jmp 0x46f69f
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.00469a7c
pop ecx
pop ecx
push 5
pop eax
jmp 0x46f69f
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x47335b
mov eax, ebx
sub eax, dword [ebp - 0x50]
push 0x14
cdq
pop esi
idiv esi
mov dword [edi + 0x24], eax
xor eax, eax
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
mov byte [edx + 0x4f], al
mov dword [edi + 0x28], ecx
jmp 0x46f73e
mov eax, dword [ebp - 0x24]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.00469a7c
add esp, 0xc
xor eax, eax
inc eax
jmp 0x46f69f
push 8
jmp 0x473365
push 0x14
cmp al, 5
jne 0x47364a
mov eax, ebx
sub eax, dword [ebp - 0x50]
cdq
pop ecx
idiv ecx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x28], eax
jmp 0x46f73b
mov eax, 0x204
jmp 0x46f69f
push 6
pop eax
push 2
pop ecx
mov byte [edi + 0x92], cl
jmp 0x46f69f
push 7
pop eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x14]
call fcn.004814bc
mov eax, dword [ebp - 0x1c]
cmp eax, 7
jne 0x46f69f
mov eax, dword [ebp - 0x14]
mov ecx, eax
call fcn.004520bc
push str.out_of_memory
push edi
call fcn.00469a7c
pop ecx
pop ecx
push 7
jmp 0x473365
xor eax, eax
inc eax
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0x1c], eax
call fcn.00469a7c
mov eax, dword [ebp - 0x1c]
pop ecx
pop ecx
mov ecx, esi
jmp 0x46f6a2
xor eax, eax
lea edx, [eax + 1]
call fcn.004695fb
push eax
push 0x5fc380
push edi
call fcn.00469a7c
mov eax, dword [ebp - 0x1c]
add esp, 0xc
jmp 0x46f69f
xor eax, eax
mov ecx, str.out_of
push 5
inc eax
pop edx
mov dword [ebp - 0x1c], eax
cmp esi, edx
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x473452
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x4c]
call dword [eax + 0x1c]
pop ecx
jmp 0x473407
push 6
jmp 0x473365
or eax, 0xffffffff
mov dword [ebp - 0x7c], eax
push 9
jmp 0x473365
xor edx, edx
mov ecx, edi
call fcn.0046b661
test eax, eax
jne 0x46f69f
mov eax, dword [edi]
xor ecx, ecx
cmp dword [eax + 0x1d0], ecx
je 0x4734d6
cmp dword [edi + 0x30], ecx
je 0x4734d6
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.0046b56c
xor ecx, ecx
mov eax, dword [edi + 0x20]
push 2
pop edx
add eax, edx
mov dword [ebp - 0x80], ecx
xor edx, edx
inc edx
or eax, edx
mov dword [edi + 0x20], eax
imul eax, dword [ebx + 4], 0x28
add esi, eax
mov dword [edi + 0x78], esi
cmp dword [ebx + 8], ecx
jle 0x473529
mov eax, 0x1000
test word [esi + 8], ax
je 0x473511
mov ecx, esi
call fcn.00468a6b
test eax, eax
jne 0x473407
mov ecx, esi
call fcn.00468b00
mov eax, dword [ebp - 0x80]
add esi, 0x28
inc eax
mov dword [ebp - 0x80], eax
cmp eax, dword [ebx + 8]
jl 0x4734f7
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x51], 0
jne 0x47340a
push 4
pop edx
test byte [eax + 0x58], dl
je 0x473550
push ecx
push edi
push dword [eax + 0xd0]
push edx
call dword [eax + 0xcc]
add esp, 0x10
mov eax, ebx
mov dword [ebp - 0x1c], 0x64
sub eax, dword [ebp - 0x50]
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov dword [edi + 0x24], eax
jmp 0x46f73b
mov edx, dword [ebx + 4]
movzx eax, byte [eax + 0x4f]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x80], edx
cmp edx, eax
je 0x47361b
test esi, esi
je 0x47359b
mov esi, dword [ebp - 0x14]
mov edx, 0x204
mov ecx, esi
call fcn.004abfbf
xor eax, eax
inc eax
mov byte [esi + 0x4f], al
jmp 0x4735d6
test edx, edx
je 0x4735b6
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [eax + 0xb8], ecx
jle 0x4735b6
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x47335b
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.0046b661
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x46f73b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x80]
mov byte [ecx + 0x4f], al
mov ecx, edi
call fcn.0046b6bc
push 5
pop ecx
cmp eax, ecx
jne 0x4735fd
mov eax, ebx
sub eax, dword [ebp - 0x50]
cdq
push 0x14
pop esi
idiv esi
mov dword [edi + 0x24], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x80]
jmp 0x473382
mov ecx, dword [ebp - 0x14]
call fcn.004abbd5
push 0x65
pop eax
xor ecx, ecx
cmp dword [edi + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x1c], eax
jmp 0x46f73b
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.00469a7c
pop ecx
pop ecx
jmp 0x4733a5
mov edi, dword [ebp - 0x58]
jmp 0x46f69f
mov ecx, dword [ebp - 0x14]
jmp 0x46f6a4
add dword [edi + 0xb4], esi
xor eax, eax
cmp dword [edi + 0xa0], eax
je 0x473669
mov ecx, edi
call fcn.0046a66d
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0057086f
mov esp, ebp
pop ebp
ret