Function at 0x58bef0
Capabilities:
Encode data using xor

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x58bf20
test dword [0x87ed4c], 0xffffffff
jne 0x58c730
call fcn.007663a0
jmp fcn.0058bef0
push edi
push esi
push ebp
push ebx
sub esp, 0x6c
mov ebx, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], edx
cmp edx, 1
je 0x58bf45
mov eax, 0x789700
mov dword [esp + 0x5c], str.sqlite_master
jmp 0x58bf52
mov eax, 0x789780
mov dword [esp + 0x5c], str.sqlite_temp_master
mov ebp, dword [esp + 0x5c]
mov esi, edx
mov edi, ecx
mov dword [esp + 0x14], ebp
mov edx, 3
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], 0x78d934
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x24]
call fcn.0058b93c
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x58c5f1
mov esi, dword [ebx + 8]
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
shl ebp, 4
mov ecx, dword [esi + ebp]
test eax, eax
je 0x58c71b
mov edx, eax
movsx edi, byte [edx]
test edi, edi
je 0x58bfcc
inc eax
movsx edx, byte [eax]
test edx, edx
jne 0x58bfc4
sub eax, dword [esp + 0x5c]
and eax, 0x3fffffff
mov edx, dword [ebx + 4]
test edx, edx
jle 0x58c12a
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x3c]
mov edi, ebx
xor edi, 1
jmp 0x58c005
mov edi, ebx
shl edi, 4
test ecx, ecx
je 0x58c070
mov ebp, dword [edi + esi]
lea eax, [ecx + 1]
movzx edx, byte [ecx]
test edx, edx
je 0x58c704
mov dword [esp + 0x48], ecx
movzx ecx, byte [ebp]
movzx edx, byte [edx + 0x789b60]
movzx ecx, byte [ecx + 0x789b60]
cmp edx, ecx
jne 0x58c6f9
movzx edx, byte [eax]
inc ebp
inc eax
test edx, edx
jne 0x58c021
mov ecx, dword [esp + 0x48]
movzx eax, byte [ebp]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
cmp eax, edx
je 0x58c070
inc ebx
cmp ebx, dword [esp + 0x4c]
jge 0x58c122
cmp ebx, 2
jl 0x58bffc
jmp 0x58c003
mov edx, dword [edi + esi + 0xc]
mov ebp, dword [edx + 0x10]
test ebp, ebp
je 0x58c0e2
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x44], edi
xor eax, eax
mov edi, dword [esp + 0x40]
test edi, edi
jle 0x58c0bc
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x44]
lea ebx, [eax*8]
xor ebx, eax
movzx eax, byte [ecx]
inc ecx
movzx eax, byte [eax + 0x789b60]
xor eax, ebx
dec edi
test edi, edi
jg 0x58c099
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov edi, dword [edx + 4]
xor edx, edx
div edi
mov eax, dword [ebp + edx*8 + 4]
mov edx, dword [ebp + edx*8]
mov ebp, 1
mov dword [esp + 0x68], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x40]
jmp 0x58c0fd
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 8]
mov ebp, 1
mov dword [esp + 0x68], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x40]
test edx, edx
mov ebx, edx
cmovne ebx, ebp
dec edx
test ebx, ebx
je 0x58c6e8
test eax, eax
je 0x58c6e8
cmp ecx, dword [eax + 0x10]
je 0x58c644
mov eax, dword [eax]
jmp 0x58c0fd
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
mov edi, dword [ebp + esi + 4]
test edi, edi
jne 0x58c151
cmp dword [esp + 0x58], 1
jne 0x58c147
mov edx, dword [esi + 0x1c]
movzx eax, word [edx + 0x4a]
or eax, 1
mov word [edx + 0x4a], ax
xor eax, eax
add esp, 0x6c
pop ebx
pop ebp
pop esi
pop edi
ret
movzx eax, byte [edi + 9]
test eax, eax
je 0x58c230
movzx eax, byte [edi + 0xa]
inc dword [edi + 0xc]
test eax, eax
je 0x58c171
mov edi, dword [ebp + esi + 4]
jmp 0x58c230
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58c223
push eax
call dword [0x8303cc]
pop ecx
test eax, eax
jne 0x58c193
mov edx, dword [edi + 4]
jmp 0x58c223
mov eax, dword [edi + 0x14]
test eax, eax
je 0x58c1c9
mov dword [esp + 0x54], ebx
mov ebx, eax
movzx edx, byte [ebx + 0xa]
test edx, edx
je 0x58c1be
mov edx, dword [ebx + 4]
mov edx, dword [edx + 0x30]
test edx, edx
je 0x58c1ba
push edx
call dword [0x8303d0]
pop ecx
mov byte [ebx + 0xa], 0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x58c1a0
mov ebx, dword [esp + 0x54]
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58c1de
push eax
call dword [0x8303c8]
pop ecx
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov dword [edx + 4], eax
mov byte [edi + 0xa], 1
mov edi, dword [edi + 0x14]
test edi, edi
je 0x58c168
cmp dword [edi + 0xc], 0
je 0x58c216
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58c20d
push eax
call dword [0x8303c8]
pop ecx
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov dword [edx + 4], eax
mov byte [edi + 0xa], 1
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x58c1f2
mov edi, dword [ebp + esi + 4]
jmp 0x58c230
mov eax, dword [edi]
mov dword [edx + 4], eax
mov byte [edi + 0xa], 1
mov edi, dword [ebp + esi + 4]
movzx eax, byte [edi + 8]
test eax, eax
jne 0x58c255
mov eax, edi
xor edx, edx
call fcn.004c07b0
mov edi, eax
test edi, edi
jne 0x58c60c
mov dword [esp + 0x50], 1
jmp 0x58c25b
xor eax, eax
mov dword [esp + 0x50], eax
xor edi, edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
lea esi, [edi + 1]
mov ebp, dword [eax + edx + 4]
mov ebx, dword [ebp + 4]
movzx ecx, byte [ebp + 9]
test ecx, ecx
je 0x58c35d
movzx eax, byte [ebp + 0xa]
inc dword [ebp + 0xc]
test eax, eax
jne 0x58c35d
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x58c631
push eax
call dword [0x8303cc]
pop ecx
test eax, eax
je 0x58c34c
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x58c2e7
mov dword [esp + 0x34], edi
mov edi, eax
movzx edx, byte [edi + 0xa]
test edx, edx
je 0x58c2dc
mov edx, dword [edi + 4]
mov edx, dword [edx + 0x30]
test edx, edx
je 0x58c2d8
push edx
call dword [0x8303d0]
pop ecx
mov byte [edi + 0xa], 0
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x58c2be
mov edi, dword [esp + 0x34]
mov edx, dword [ebp + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58c2fc
push eax
call dword [0x8303c8]
pop ecx
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov dword [edx + 4], eax
mov eax, dword [ebp + 0x14]
mov byte [ebp + 0xa], 1
test eax, eax
je 0x58c628
mov dword [esp + 0x34], edi
mov edi, eax
cmp dword [edi + 0xc], 0
je 0x58c33b
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x58c332
push edx
call dword [0x8303c8]
pop ecx
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov dword [ecx + 4], edx
mov byte [edi + 0xa], 1
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x58c317
mov edi, dword [esp + 0x34]
movzx ecx, byte [ebp + 9]
jmp 0x58c35d
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov dword [edx + 4], eax
movzx ecx, byte [ebp + 9]
mov byte [ebp + 0xa], 1
mov ebx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x40]
movzx edx, byte [eax + esi*4 + 0x24]
movzx ebx, byte [eax + esi*4 + 0x25]
shl edx, 0x18
shl ebx, 0x10
or edx, ebx
movzx ebx, byte [eax + esi*4 + 0x26]
movzx eax, byte [eax + esi*4 + 0x27]
shl ebx, 8
or edx, ebx
or edx, eax
mov dword [esp + edi*4 + 0x3c], edx
test ecx, ecx
je 0x58c3ad
mov eax, dword [ebp + 0xc]
dec eax
mov dword [ebp + 0xc], eax
jne 0x58c3ad
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x58c3a9
push eax
call dword [0x8303d0]
pop ecx
mov byte [ebp + 0xa], 0
mov edi, esi
cmp esi, 5
jl 0x58c269
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
mov eax, dword [ebp + esi + 0xc]
mov dword [eax], edi
mov dword [esp + 0x38], edx
test edx, edx
je 0x58c44d
cmp dword [esp + 0x58], 0
jne 0x58c422
mov eax, edx
and eax, 3
mov dword [esp + 0x38], eax
jne 0x58c3f8
mov eax, dword [ebx + 8]
mov edx, dword [eax + 0xc]
mov byte [edx + 0x49], 1
jmp 0x58c401
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x49], al
mov eax, ebx
mov edx, str.BINARY
xor ecx, ecx
call fcn.0041ed00
mov edi, dword [ebx + 8]
mov dword [ebx + 0x2c], eax
mov eax, dword [edi + 0xc]
movzx edx, byte [eax + 0x49]
mov dword [esp + 0x34], edx
jmp 0x58c46d
mov edi, dword [ebx + 8]
mov eax, dword [edi + 0xc]
movzx edx, byte [eax + 0x49]
cmp edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
je 0x58c46d
push str.attached_databases_must_use_the_same_text_encoding_as_main_database
push ebx
push dword [esp + 0x68]
call fcn.00497b50
add esp, 0xc
jmp 0x58c5b1
mov edi, dword [ebx + 8]
mov edx, dword [edi + ebp + 0xc]
movzx eax, word [edx + 0x4a]
or eax, 4
mov word [edx + 0x4a], ax
mov ecx, dword [ebx + 8]
mov edi, dword [ecx + 0xc]
movzx eax, byte [edi + 0x49]
mov dword [esp + 0x34], eax
mov edx, dword [ebp + esi + 0xc]
mov eax, dword [esp + 0x34]
mov byte [edx + 0x49], al
mov ecx, dword [ebp + esi + 0xc]
cmp dword [ecx + 0x4c], 0
jne 0x58c4ac
mov eax, dword [esp + 0x44]
mov edi, 0x7d0
test eax, eax
cmove eax, edi
cdq
xor eax, edx
sub eax, edx
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp + esi + 0xc]
mov eax, dword [ebp + esi + 4]
mov edx, dword [ecx + 0x4c]
call fcn.004d9170
mov ecx, dword [ebp + esi + 0xc]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov byte [ecx + 0x48], al
mov eax, dword [ebp + esi + 0xc]
movzx edx, byte [eax + 0x48]
test edx, edx
jne 0x58c4cf
mov byte [eax + 0x48], 1
mov eax, dword [ebp + esi + 0xc]
movzx edx, byte [eax + 0x48]
cmp edx, 4
jg 0x58c59f
cmp dword [esp + 0x58], 0
jne 0x58c4ed
cmp dword [esp + 0x34], 4
jl 0x58c4ed
and dword [ebx + 0xc], 0xffefffff
mov eax, dword [ebx + 8]
push dword [esp + 0x5c]
push dword [eax + ebp]
push str.SELECT_name__rootpage__sql_FROM__q._s
push ebx
call fcn.00455e50
add esp, 0x10
mov dword [esp + 0x38], eax
mov edi, dword [ebx + 0xf8]
mov dword [esp + 0x34], edi
xor edx, edx
lea eax, [esp + 0x24]
mov ecx, 0x58b930
mov dword [ebx + 0xf8], edx
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
call fcn.005037fc
mov edi, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [ebx + 0xf8], ecx
test edi, edi
cmove edi, dword [esp + 0x30]
mov eax, ebx
call fcn.004e33d8
test edi, edi
jne 0x58c564
mov edx, dword [esp + 0x58]
mov eax, ebx
call fcn.004ab870
movzx eax, byte [ebx + 0x1e]
test eax, eax
jne 0x58c572
test edi, edi
jne 0x58c580
jmp 0x58c589
mov eax, ebx
xor edx, edx
call fcn.004c3680
mov edi, 7
test dword [ebx + 0xc], 0x800000
je 0x58c5b6
mov eax, dword [ebx + 8]
xor edi, edi
mov ecx, dword [eax + ebp + 0xc]
movzx edx, word [ecx + 0x4a]
or edx, 1
mov word [ecx + 0x4a], dx
jmp 0x58c5b6
push str.unsupported_file_format
push ebx
push dword [esp + 0x68]
call fcn.00497b50
add esp, 0xc
mov edi, 1
cmp dword [esp + 0x50], 0
je 0x58c5c6
mov eax, dword [ebp + esi + 4]
call fcn.004c9140
mov ebp, dword [ebp + esi + 4]
movzx eax, byte [ebp + 9]
test eax, eax
je 0x58c5f1
mov eax, dword [ebp + 0xc]
dec eax
mov dword [ebp + 0xc], eax
jne 0x58c5f1
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x58c5ed
push eax
call dword [0x8303d0]
pop ecx
mov byte [ebp + 0xa], 0
cmp edi, 0xc0a
je 0x58c5fe
cmp edi, 7
jne 0x58c602
mov byte [ebx + 0x1e], 1
mov eax, edi
add esp, 0x6c
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, edi
call fcn.0058dee0
push eax
push 0x799014
push ebx
push dword [esp + 0x6c]
call fcn.00497b50
add esp, 0x10
jmp 0x58c5c6
movzx ecx, byte [ebp + 9]
jmp 0x58c35d
mov eax, dword [ebp]
mov dword [ebx + 4], eax
movzx ecx, byte [ebp + 9]
mov byte [ebp + 0xa], 1
jmp 0x58c35d
mov esi, dword [eax + 0xc]
mov ebx, dword [esp + 0x5c]
mov edi, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
xor edx, edx
jmp 0x58c65b
inc esi
inc ebx
test edi, edi
mov eax, edx
cmovg eax, ebp
dec edi
test eax, eax
je 0x58c6da
movzx eax, byte [esi]
test eax, eax
je 0x58c6da
movzx eax, byte [eax + 0x789b60]
movzx ecx, byte [ebx]
movzx ecx, byte [ecx + 0x789b60]
cmp eax, ecx
je 0x58c659
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
test edi, edi
js 0x58c6af
movzx edi, byte [esi]
movzx esi, byte [edi + 0x789b60]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0x789b60]
cmp ebx, esi
jne 0x58c11e
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 8]
test eax, eax
je 0x58c05e
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
or byte [eax + 0x22], 1
mov esi, dword [ebx + 8]
jmp 0x58c12a
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
jmp 0x58c68f
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
jmp 0x58c05e
mov eax, ecx
mov ecx, dword [esp + 0x48]
jmp 0x58c05a
movzx eax, byte [ebp]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
jmp 0x58c05a
xor eax, eax
jmp 0x58bfd5
push edi
push esi
push ebp
push ebx
sub esp, 0x6c
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], edx
mov ebp, eax
cmp edx, 1
je 0x58c755
mov eax, str.CREATE_TABLE_sqlite_master__n__type_text__n__name_text__n__tbl_name_text__n__rootpage_integer__n__sql_text_n_
mov dword [esp + 0x5c], str.sqlite_master
jmp 0x58c762
mov eax, str.CREATE_TEMP_TABLE_sqlite_temp_master__n__type_text__n__name_text__n__tbl_name_text__n__rootpage_integer__n__sql_text_n_
mov dword [esp + 0x5c], str.sqlite_temp_master
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x78d934
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
mov esi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
mov edi, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x24]
mov edx, 3
lea ecx, [esp + 0x14]
call fcn.0058b93c
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x58cdf4
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x58]
shl ebx, 4
mov ecx, dword [esi + ebx]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x58cf0f
mov edx, eax
movsx edi, byte [edx]
test edi, edi
je 0x58c7dc
inc eax
movsx edx, byte [eax]
test edx, edx
jne 0x58c7d4
sub eax, dword [esp + 0x5c]
and eax, 0x3fffffff
mov edx, dword [ebp + 4]
test edx, edx
jle 0x58c935
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x38]
mov edi, ebp
xor edi, 1
jmp 0x58c815
mov edi, ebp
shl edi, 4
test ecx, ecx
je 0x58c87e
mov ebx, dword [edi + esi]
lea eax, [ecx + 1]
movzx edx, byte [ecx]
test edx, edx
je 0x58cef9
mov dword [esp + 0x40], ecx
movzx ecx, byte [ebx]
movzx edx, byte [edx + 0x789b60]
movzx ecx, byte [ecx + 0x789b60]
cmp edx, ecx
jne 0x58ceee
inc ebx
movzx edx, byte [eax]
inc eax
test edx, edx
jne 0x58c831
mov ecx, dword [esp + 0x40]
movzx eax, byte [ebx]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
cmp eax, edx
je 0x58c87e
inc ebp
cmp ebp, dword [esp + 0x44]
jge 0x58c92d
cmp ebp, 2
jl 0x58c80c
jmp 0x58c813
mov edx, dword [edi + esi + 0xc]
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x58c8ee
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x34]
xor eax, eax
test edi, edi
jle 0x58c8ca
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
lea ebp, [eax*8]
xor ebp, eax
movzx eax, byte [ecx]
movzx eax, byte [eax + 0x789b60]
xor eax, ebp
inc ecx
dec edi
test edi, edi
jg 0x58c8a7
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov edi, dword [edx + 4]
xor edx, edx
div edi
mov eax, dword [ebx + edx*8 + 4]
mov ebx, dword [ebx + edx*8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
jmp 0x58c908
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
xor edx, edx
test ebx, ebx
setne dl
dec ebx
test edx, edx
je 0x58cedd
test eax, eax
je 0x58cedd
cmp ebp, dword [eax + 0x10]
je 0x58ce47
mov eax, dword [eax]
jmp 0x58c908
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x54]
mov edi, dword [ebx + esi + 4]
test edi, edi
jne 0x58c95c
cmp dword [esp + 0x58], 1
jne 0x58c952
mov edx, dword [esi + 0x1c]
movzx eax, word [edx + 0x4a]
or eax, 1
mov word [edx + 0x4a], ax
xor eax, eax
add esp, 0x6c
pop ebx
pop ebp
pop esi
pop edi
ret
movzx eax, byte [edi + 9]
test eax, eax
je 0x58ca3b
inc dword [edi + 0xc]
movzx eax, byte [edi + 0xa]
test eax, eax
je 0x58c97c
mov edi, dword [ebx + esi + 4]
jmp 0x58ca3b
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58ca2e
push eax
call dword [0x8303cc]
pop ecx
test eax, eax
jne 0x58c99e
mov edx, dword [edi + 4]
jmp 0x58ca2e
mov eax, dword [edi + 0x14]
test eax, eax
je 0x58c9d4
mov dword [esp + 0x54], ebp
mov ebp, eax
movzx edx, byte [ebp + 0xa]
test edx, edx
je 0x58c9c9
mov edx, dword [ebp + 4]
mov edx, dword [edx + 0x30]
test edx, edx
je 0x58c9c5
push edx
call dword [0x8303d0]
pop ecx
mov byte [ebp + 0xa], 0
mov ebp, dword [ebp + 0x14]
test ebp, ebp
jne 0x58c9ab
mov ebp, dword [esp + 0x54]
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58c9e9
push eax
call dword [0x8303c8]
pop ecx
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov dword [edx + 4], eax
mov byte [edi + 0xa], 1
mov edi, dword [edi + 0x14]
test edi, edi
je 0x58c973
cmp dword [edi + 0xc], 0
je 0x58ca21
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58ca18
push eax
call dword [0x8303c8]
pop ecx
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov dword [edx + 4], eax
mov byte [edi + 0xa], 1
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x58c9fd
mov edi, dword [ebx + esi + 4]
jmp 0x58ca3b
mov eax, dword [edi]
mov dword [edx + 4], eax
mov byte [edi + 0xa], 1
mov edi, dword [ebx + esi + 4]
movzx eax, byte [edi + 8]
test eax, eax
jne 0x58ca60
mov eax, edi
xor edx, edx
call fcn.004c07b0
mov edi, eax
test edi, edi
jne 0x58ce0f
mov dword [esp + 0x50], 1
jmp 0x58ca66
xor eax, eax
mov dword [esp + 0x50], eax
xor edi, edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], ebp
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov ebp, dword [eax + edx + 4]
lea esi, [edi + 1]
mov ebx, dword [ebp + 4]
movzx ecx, byte [ebp + 9]
test ecx, ecx
je 0x58cb68
inc dword [ebp + 0xc]
movzx eax, byte [ebp + 0xa]
test eax, eax
jne 0x58cb68
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x58ce34
push eax
call dword [0x8303cc]
pop ecx
test eax, eax
je 0x58cb57
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x58caf2
mov dword [esp + 0x34], edi
mov edi, eax
movzx edx, byte [edi + 0xa]
test edx, edx
je 0x58cae7
mov edx, dword [edi + 4]
mov edx, dword [edx + 0x30]
test edx, edx
je 0x58cae3
push edx
call dword [0x8303d0]
pop ecx
mov byte [edi + 0xa], 0
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x58cac9
mov edi, dword [esp + 0x34]
mov edx, dword [ebp + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x58cb07
push eax
call dword [0x8303c8]
pop ecx
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov dword [edx + 4], eax
mov byte [ebp + 0xa], 1
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x58ce2b
mov dword [esp + 0x34], edi
mov edi, eax
cmp dword [edi + 0xc], 0
je 0x58cb46
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x58cb3d
push edx
call dword [0x8303c8]
pop ecx
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov dword [ecx + 4], edx
mov byte [edi + 0xa], 1
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x58cb22
mov edi, dword [esp + 0x34]
movzx ecx, byte [ebp + 9]
jmp 0x58cb68
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov dword [edx + 4], eax
mov byte [ebp + 0xa], 1
movzx ecx, byte [ebp + 9]
mov ebx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x40]
movzx edx, byte [eax + esi*4 + 0x24]
shl edx, 0x18
movzx ebx, byte [eax + esi*4 + 0x25]
shl ebx, 0x10
or edx, ebx
movzx ebx, byte [eax + esi*4 + 0x26]
shl ebx, 8
or edx, ebx
movzx eax, byte [eax + esi*4 + 0x27]
or edx, eax
mov dword [esp + edi*4 + 0x3c], edx
test ecx, ecx
je 0x58cbb8
mov eax, dword [ebp + 0xc]
dec eax
mov dword [ebp + 0xc], eax
jne 0x58cbb8
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x58cbb4
push eax
call dword [0x8303d0]
pop ecx
mov byte [ebp + 0xa], 0
mov edi, esi
cmp esi, 5
jl 0x58ca74
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x54]
mov eax, dword [ebx + esi + 0xc]
mov edi, dword [esp + 0x3c]
mov dword [eax], edi
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
test edx, edx
je 0x58cc58
cmp dword [esp + 0x58], 0
jne 0x58cc2d
mov eax, edx
and eax, 3
mov dword [esp + 0x38], eax
jne 0x58cc03
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov byte [edx + 0x49], 1
jmp 0x58cc0c
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x49], al
mov eax, ebp
mov edx, str.BINARY
xor ecx, ecx
call fcn.0041ed00
mov dword [ebp + 0x2c], eax
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
movzx edx, byte [eax + 0x49]
mov dword [esp + 0x34], edx
jmp 0x58cc78
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
movzx edx, byte [eax + 0x49]
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x38]
je 0x58cc78
push str.attached_databases_must_use_the_same_text_encoding_as_main_database
push ebp
push dword [esp + 0x68]
call fcn.00497b50
add esp, 0xc
jmp 0x58cdb4
mov edi, dword [ebp + 8]
mov edx, dword [edi + ebx + 0xc]
movzx eax, word [edx + 0x4a]
or eax, 4
mov word [edx + 0x4a], ax
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0xc]
movzx eax, byte [edi + 0x49]
mov dword [esp + 0x34], eax
mov edx, dword [ebx + esi + 0xc]
mov eax, dword [esp + 0x34]
mov byte [edx + 0x49], al
mov ecx, dword [ebx + esi + 0xc]
cmp dword [ecx + 0x4c], 0
jne 0x58ccb6
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x58cc9a
mov eax, 0x7d0
cdq
xor eax, edx
sub eax, edx
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebx + esi + 0xc]
mov eax, dword [ebx + esi + 4]
mov edx, dword [ecx + 0x4c]
call fcn.004d9170
mov ecx, dword [ebx + esi + 0xc]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov byte [ecx + 0x48], al
mov eax, dword [ebx + esi + 0xc]
movzx edx, byte [eax + 0x48]
test edx, edx
jne 0x58ccd9
mov byte [eax + 0x48], 1
mov eax, dword [ebx + esi + 0xc]
movzx edx, byte [eax + 0x48]
cmp edx, 4
jg 0x58cda2
cmp dword [esp + 0x58], 0
jne 0x58ccf7
cmp dword [esp + 0x34], 4
jl 0x58ccf7
and dword [ebp + 0xc], 0xffefffff
mov eax, dword [ebp + 8]
push dword [esp + 0x5c]
push dword [eax + ebx]
push str.SELECT_name__rootpage__sql_FROM__q._s
push ebp
call fcn.00455e50
add esp, 0x10
mov dword [esp + 0x34], eax
mov edi, dword [ebp + 0xf8]
xor edx, edx
mov dword [ebp + 0xf8], edx
lea eax, [esp + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, ebp
mov edx, dword [esp + 0x34]
mov ecx, 0x58b930
call fcn.005037fc
mov dword [ebp + 0xf8], edi
mov edi, dword [esp + 0x30]
test eax, eax
je 0x58cd4d
mov edi, eax
mov eax, ebp
mov edx, dword [esp + 0x34]
call fcn.004e33d8
test edi, edi
jne 0x58cd67
mov eax, ebp
mov edx, dword [esp + 0x58]
call fcn.004ab870
movzx eax, byte [ebp + 0x1e]
test eax, eax
jne 0x58cd75
test edi, edi
jne 0x58cd83
jmp 0x58cd8c
mov eax, ebp
xor edx, edx
call fcn.004c3680
mov edi, 7
test dword [ebp + 0xc], 0x800000
je 0x58cdb9
mov eax, dword [ebp + 8]
mov ecx, dword [eax + ebx + 0xc]
movzx edx, word [ecx + 0x4a]
or edx, 1
mov word [ecx + 0x4a], dx
xor edi, edi
jmp 0x58cdb9
push str.unsupported_file_format
push ebp
push dword [esp + 0x68]
call fcn.00497b50
add esp, 0xc
mov edi, 1
cmp dword [esp + 0x50], 0
je 0x58cdc9
mov eax, dword [ebx + esi + 4]
call fcn.004c9140
mov ebx, dword [ebx + esi + 4]
movzx eax, byte [ebx + 9]
test eax, eax
je 0x58cdf4
mov eax, dword [ebx + 0xc]
dec eax
mov dword [ebx + 0xc], eax
jne 0x58cdf4
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x58cdf0
push eax
call dword [0x8303d0]
pop ecx
mov byte [ebx + 0xa], 0
cmp edi, 0xc0a
je 0x58ce01
cmp edi, 7
jne 0x58ce05
mov byte [ebp + 0x1e], 1
mov eax, edi
add esp, 0x6c
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, edi
call fcn.0058dee0
push eax
push 0x799014
push ebp
push dword [esp + 0x6c]
call fcn.00497b50
add esp, 0x10
jmp 0x58cdc9
movzx ecx, byte [ebp + 9]
jmp 0x58cb68
mov eax, dword [ebp]
mov dword [ebx + 4], eax
mov byte [ebp + 0xa], 1
movzx ecx, byte [ebp + 9]
jmp 0x58cb68
mov edx, dword [eax + 0xc]
mov edi, ebp
mov esi, ecx
mov ecx, edx
jmp 0x58ce54
inc ecx
inc esi
xor edx, edx
test edi, edi
setg dl
dec edi
test edx, edx
je 0x58ced1
movzx ebp, byte [ecx]
test ebp, ebp
je 0x58ced1
movzx edx, byte [ebp + 0x789b60]
movzx ebp, byte [esi]
movzx ebp, byte [ebp + 0x789b60]
cmp edx, ebp
je 0x58ce52
mov edx, ecx
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
test edi, edi
js 0x58cea6
movzx edi, byte [edx]
movzx edx, byte [edi + 0x789b60]
movzx esi, byte [esi]
movzx esi, byte [esi + 0x789b60]
cmp esi, edx
jne 0x58c929
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 8]
test eax, eax
je 0x58c86c
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x54]
or byte [eax + 0x22], 1
mov esi, dword [ebp + 8]
jmp 0x58c935
mov edx, ecx
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
jmp 0x58ce86
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
jmp 0x58c86c
mov eax, ecx
mov ecx, dword [esp + 0x40]
jmp 0x58c868
movzx eax, byte [ebx]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
jmp 0x58c868
xor eax, eax
jmp 0x58c7e5