Function at 0x45b440
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x55c380]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [ebp - 0x4c], eax
mov ebx, edx
mov eax, dword [ecx]
mov edx, 0xc8
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x3c], ecx
mov ecx, eax
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x34], eax
call fcn.00419310
mov esi, eax
mov dword [ebp - 0x58], eax
test esi, esi
je 0x45b4bf
push 0xc8
push 0
push esi
call fcn.004f8b70
mov ecx, dword [ebp - 0x34]
add esp, 0xc
mov dword [esi], ecx
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x45b4a0
mov dword [eax + 0x3c], esi
mov eax, dword [ecx + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0
mov dword [ecx + 0x88], esi
mov dword [esi + 0x34], 0x26bceaa5
jmp 0x45b4c4
xor esi, esi
mov dword [ebp - 0x58], esi
mov eax, dword [ebp - 0x3c]
mov dword [eax + 0xc], esi
test esi, esi
je 0x45c8f4
lea ecx, [ebp - 0x54]
mov byte [esi + 0x64], 1
push ecx
push edi
mov edx, ebx
mov dword [eax + 0x48], 2
mov ecx, eax
call fcn.0044cc50
mov ebx, eax
add esp, 8
test ebx, ebx
js 0x45c8f4
mov eax, dword [ebp - 0x34]
mov ecx, ebx
shl ecx, 4
add ecx, dword [eax + 8]
mov dword [ebp - 0x38], ecx
cmp ebx, 1
jne 0x45b51e
mov ecx, dword [ebp - 0x3c]
call fcn.00450510
test eax, eax
jne 0x45c8f4
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x54]
mov ecx, eax
call fcn.0044ca10
mov dword [ebp - 0x40], eax
test eax, eax
je 0x45c8f4
cmp dword [ebp + 0x10], 0
je 0x45b553
push dword [ebp - 0x4c]
push 0x54c674
push dword [ebp - 0x34]
call fcn.0041a780
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x44], ecx
jmp 0x45b563
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x34]
call fcn.0044ca10
mov ecx, eax
mov dword [ebp - 0x44], eax
cmp dword [edi + 4], 0
jbe 0x45b570
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
jmp 0x45b572
xor eax, eax
push eax
push ecx
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov edx, 0x13
mov dword [ebp - 0x48], eax
call fcn.0044bc70
add esp, 0xc
test eax, eax
jne 0x45c8da
mov ecx, dword [ebp - 0x40]
mov edx, str.default_cache_size
call fcn.0041b4f0
test eax, eax
jne 0x45b697
mov edi, dword [ebp - 0x3c]
mov ecx, edi
call fcn.0045dc60
test eax, eax
jne 0x45c8da
mov edx, ebx
mov ecx, esi
call fcn.00434020
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x45b648
lea edx, [eax + 1]
mov ecx, esi
call fcn.00434b90
push 0
push str.cache_size
push 0
xor edx, edx
mov ecx, esi
call fcn.00434c20
add dword [edi + 0x48], 2
add esp, 0xc
mov edx, 8
mov ecx, esi
push 0x5456ec
call fcn.00433980
mov edi, eax
add esp, 4
cmp dword [esi + 0x1c], edi
jbe 0x45b611
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 4], ebx
lea eax, [edi + 1]
cmp dword [esi + 0x1c], eax
jbe 0x45b623
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x38]
add edi, 6
cmp dword [esi + 0x1c], edi
jbe 0x45be16
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], 0x7d0
mov eax, dword [ebp - 0x34]
jmp 0x45c8b2
mov ecx, eax
call fcn.0041be20
mov ecx, eax
call fcn.0041c410
mov ecx, dword [ebp - 0x3c]
xor edx, edx
push ebx
mov edi, eax
call fcn.004506f0
add esp, 4
mov edx, 7
mov ecx, esi
push 1
push edi
call fcn.00433550
push 1
push 3
push ebx
mov edx, 0x25
mov ecx, esi
call fcn.00433430
mov ebx, dword [ebp - 0x38]
add esp, 0x14
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x50], edi
jmp 0x45bc67
mov ecx, dword [ebp - 0x40]
mov edx, str.page_size
call fcn.0041b4f0
test eax, eax
jne 0x45b710
mov ebx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x44]
mov esi, dword [ebx + 4]
test edi, edi
jne 0x45b6de
test esi, esi
je 0x45b6c1
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
jmp 0x45b6c3
xor eax, eax
mov ecx, dword [ebp - 0x3c]
cdq
push edx
push eax
mov edx, str.page_size
call fcn.0045b1c0
mov eax, dword [ebp - 0x34]
add esp, 8
jmp 0x45c8b2
mov ecx, edi
call fcn.0041be20
mov ecx, dword [ebp - 0x34]
mov edx, eax
push 0
push 0xffffffffffffffff
mov dword [ecx + 0x24], eax
mov ecx, esi
call fcn.0042a0d0
add esp, 8
cmp eax, 7
mov eax, dword [ebp - 0x34]
jne 0x45c8b2
mov byte [eax + 0x1e], 1
jmp 0x45c8b2
mov ecx, dword [ebp - 0x40]
mov edx, str.secure_delete
call fcn.0041b4f0
test eax, eax
jne 0x45b792
mov eax, dword [ebp - 0x38]
or ebx, 0xffffffff
mov eax, dword [eax + 4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x45b740
mov ecx, eax
call fcn.0045aee0
mov bl, al
and ebx, 1
cmp dword [edi + 4], 0
jne 0x45b770
test ebx, ebx
js 0x45b770
mov eax, dword [ebp - 0x34]
xor edi, edi
cmp dword [eax + 4], edi
jle 0x45b770
xor esi, esi
mov ecx, dword [eax + 8]
mov edx, ebx
mov ecx, dword [ecx + esi + 4]
call fcn.0042a1f0
mov eax, dword [ebp - 0x34]
lea esi, [esi + 0x10]
inc edi
cmp edi, dword [eax + 4]
jl 0x45b756
mov ecx, dword [ebp - 0x54]
mov edx, ebx
call fcn.0042a1f0
mov ecx, dword [ebp - 0x3c]
cdq
push edx
mov edx, str.secure_delete
push eax
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.page_count
call fcn.0041b4f0
test eax, eax
je 0x45d417
mov ecx, dword [ebp - 0x40]
mov edx, str.max_page_count
call fcn.0041b4f0
test eax, eax
je 0x45d417
mov ecx, dword [ebp - 0x40]
mov edx, str.locking_mode
call fcn.0041b4f0
test eax, eax
jne 0x45b8a7
mov ecx, dword [ebp - 0x44]
call fcn.0045af80
mov edx, eax
mov eax, dword [edi + 4]
test eax, eax
jne 0x45b833
cmp edx, 0xffffffff
jne 0x45b7f3
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x38]
movzx eax, byte [eax + 0x1f]
jmp 0x45b843
test eax, eax
jne 0x45b833
mov eax, dword [ebp - 0x34]
mov ebx, 2
cmp dword [eax + 4], ebx
jle 0x45b830
mov edi, 0x20
mov esi, eax
nop dword [eax + eax]
mov eax, dword [esi + 8]
mov eax, dword [eax + edi + 4]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
call fcn.00425960
inc ebx
lea edi, [edi + 0x10]
cmp ebx, dword [esi + 4]
jl 0x45b810
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x1f], dl
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
call fcn.00425960
cmp eax, 1
mov edi, str.exclusive
mov eax, str.normal
mov edx, 1
mov ecx, esi
cmovne edi, eax
call fcn.00434b90
push 0
push str.locking_mode
push 0
xor edx, edx
mov ecx, esi
call fcn.00434c20
add esp, 0xc
mov edx, 0x5e
mov ecx, esi
push 0
push edi
push 0
push 1
push 0
call fcn.004335b0
add esp, 0x14
mov edx, 0x10
mov ecx, esi
push 1
push 1
call fcn.00433550
mov eax, dword [ebp - 0x34]
add esp, 8
jmp 0x45c8b2
mov ecx, dword [ebp - 0x40]
mov edx, str.journal_mode
call fcn.0041b4f0
test eax, eax
jne 0x45b9be
mov ecx, dword [ebp - 0x3c]
call fcn.0045dc60
test eax, eax
jne 0x45c8da
lea edx, [eax + 1]
mov ecx, esi
call fcn.00434b90
push 0
push str.journal_mode
push 0
xor edx, edx
mov ecx, esi
call fcn.00434c20
mov edx, dword [ebp - 0x44]
add esp, 0xc
test edx, edx
je 0x45b936
mov ecx, edx
call fcn.0041b2a0
mov dword [ebp - 0x54], eax
xor edi, edi
mov dword [ebp - 0x48], edi
cmp edi, 6
je 0x45b933
mov ecx, dword [edi*4 + 0x545184]
test ecx, ecx
je 0x45b933
push eax
push ecx
push edx
call fcn.0041b540
add esp, 0xc
test eax, eax
je 0x45b929
mov eax, dword [ebp - 0x54]
inc edi
mov edx, dword [ebp - 0x44]
jmp 0x45b8fe
cmp edi, 0xffffffff
jne 0x45b94c
mov edi, dword [ebp - 0x50]
jmp 0x45b93d
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x48], 0xffffffff
cmp dword [edi + 4], 0
jne 0x45b94c
xor ebx, ebx
mov dword [edi + 4], 1
mov eax, dword [ebp - 0x34]
mov edi, dword [eax + 4]
sub edi, 1
js 0x45b9a6
mov ecx, edi
shl ecx, 4
mov dword [ebp - 0x4c], ecx
nop
mov eax, dword [eax + 8]
cmp dword [eax + ecx + 4], 0
je 0x45b998
cmp edi, ebx
je 0x45b977
mov eax, dword [ebp - 0x50]
cmp dword [eax + 4], 0
jne 0x45b998
mov edx, edi
mov ecx, esi
call fcn.00434020
push dword [ebp - 0x48]
mov edx, 0x7e
mov ecx, esi
push 1
push edi
call fcn.00433430
mov ecx, dword [ebp - 0x4c]
add esp, 0xc
mov eax, dword [ebp - 0x34]
sub ecx, 0x10
sub edi, 1
mov dword [ebp - 0x4c], ecx
jns 0x45b960
push 1
push 1
mov edx, 0x10
mov ecx, esi
call fcn.00433550
add esp, 8
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.journal_size_limit
call fcn.0041b4f0
test eax, eax
jne 0x45ba42
mov ebx, dword [ebp - 0x38]
or ecx, 0xffffffff
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x68], ecx
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax]
mov eax, 0xfffffffe
mov dword [ebp - 0x6c], eax
test edi, edi
je 0x45ba1f
push 1
push 0xf4240
lea edx, [ebp - 0x6c]
mov ecx, edi
call fcn.0041bb80
mov ecx, dword [ebp - 0x68]
add esp, 8
cmp ecx, 0xffffffff
jg 0x45ba1c
jl 0x45ba15
mov eax, dword [ebp - 0x6c]
cmp eax, 0xffffffff
jae 0x45ba1f
or eax, 0xffffffff
or ecx, eax
jmp 0x45ba1f
mov eax, dword [ebp - 0x6c]
push ecx
push eax
mov ecx, esi
call fcn.00425a80
mov ecx, dword [ebp - 0x3c]
push edx
push eax
mov edx, str.journal_size_limit
call fcn.0045b1c0
mov eax, dword [ebp - 0x34]
add esp, 0x10
jmp 0x45c8b2
mov ecx, dword [ebp - 0x40]
mov edx, str.auto_vacuum
call fcn.0041b4f0
test eax, eax
jne 0x45bb57
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [eax + 4]
call fcn.0045dc60
test eax, eax
jne 0x45c8da
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x45ba9b
test edi, edi
je 0x45ba81
mov ecx, edi
call fcn.0042a2e0
jmp 0x45ba83
xor eax, eax
mov ecx, dword [ebp - 0x3c]
cdq
push edx
push eax
mov edx, str.auto_vacuum
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov ecx, eax
call fcn.0045afc0
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x4c], eax
mov byte [ecx + 0x20], al
test eax, eax
js 0x45d4ae
mov edx, eax
mov ecx, edi
call fcn.0042a260
test eax, eax
jne 0x45c8ac
mov eax, dword [ebp - 0x4c]
cmp eax, 1
je 0x45bad5
cmp eax, 2
jne 0x45c8ac
push 0x5478b8
mov edx, 6
mov ecx, esi
call fcn.00433980
mov edi, eax
add esp, 4
cmp dword [esi + 0x1c], edi
jbe 0x45bafa
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 4], ebx
lea eax, [edi + 1]
cmp dword [esi + 0x1c], eax
jbe 0x45bb0c
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], ebx
lea eax, [edi + 2]
cmp dword [esi + 0x1c], eax
jbe 0x45bb21
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [edi + 4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [edi + 4]
cmp dword [esi + 0x1c], eax
jbe 0x45bb37
mov edx, dword [ebp - 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
dec edx
mov dword [eax + ecx*4 + 4], edx
add edi, 5
cmp dword [esi + 0x1c], edi
jbe 0x45bb49
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], ebx
mov edx, ebx
mov ecx, esi
call fcn.00434020
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.incremental_vacuum
call fcn.0041b4f0
test eax, eax
jne 0x45bc0d
mov ecx, dword [ebp - 0x3c]
call fcn.0045dc60
test eax, eax
jne 0x45c8da
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x45bb98
lea edx, [ebp - 0x54]
mov ecx, eax
call fcn.0041bd50
test eax, eax
je 0x45bb98
mov edi, dword [ebp - 0x54]
test edi, edi
jg 0x45bb9d
mov edi, accept
mov ecx, dword [ebp - 0x3c]
xor edx, edx
push ebx
call fcn.004506f0
add esp, 4
mov edx, 7
mov ecx, esi
push 1
push edi
call fcn.00433550
push ebx
mov edx, 0x80
mov ecx, esi
call fcn.004334f0
add esp, 0xc
mov edx, 0x10
mov ecx, esi
mov edi, eax
push 1
call fcn.004334f0
add esp, 4
mov edx, 0x14
mov ecx, esi
push 0xffffffffffffffff
push 1
call fcn.00433550
push edi
push 1
mov edx, 0x78
mov ecx, esi
call fcn.00433550
add esp, 0x10
mov edx, edi
mov ecx, esi
call fcn.00433a30
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.cache_size
call fcn.0041b4f0
test eax, eax
jne 0x45bc7d
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
mov edi, dword [ebp - 0x44]
test edi, edi
jne 0x45bc57
mov eax, dword [ebp - 0x38]
mov ecx, ebx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
cdq
push edx
push eax
mov edx, str.cache_size
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov ecx, edi
call fcn.0041be20
mov ebx, dword [ebp - 0x38]
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.00429ff0
mov eax, dword [ebp - 0x34]
jmp 0x45c8b2
mov ecx, dword [ebp - 0x40]
mov edx, str.temp_store
call fcn.0041b4f0
test eax, eax
jne 0x45bcc0
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x3c]
test edi, edi
jne 0x45bcb4
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 0x1d]
cdq
push edx
push eax
mov edx, str.temp_store
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov edx, edi
call fcn.0045b150
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.temp_store_directory
call fcn.0041b4f0
test eax, eax
jne 0x45bda2
mov edi, dword [ebp - 0x44]
test edi, edi
jne 0x45bd22
cmp dword [0x566a08], edi
je 0x45c8ac
lea edx, [eax + 1]
mov ecx, esi
call fcn.00434b90
push edi
push str.temp_store_directory
push edi
xor edx, edx
mov ecx, esi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 0x5e]
mov ecx, esi
push edi
push dword [0x566a08]
push edi
push 1
push edi
call fcn.004335b0
add esp, 0x14
jmp 0x45b9a6
cmp byte [edi], 0
je 0x45bd57
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x54]
push ecx
push 1
push edi
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x45bd45
cmp dword [ebp - 0x54], eax
jne 0x45bd57
push str.not_a_writable_directory
push dword [ebp - 0x3c]
call fcn.0041b370
jmp 0x45c8d7
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0x1d], 1
ja 0x45bd68
mov ecx, dword [ebp - 0x3c]
call fcn.0045b100
push dword [0x566a08]
call fcn.00419000
add esp, 4
cmp byte [edi], 0
je 0x45bd93
push edi
push 0x548db4
call fcn.0041a940
add esp, 8
mov dword [0x566a08], eax
jmp 0x45c8ac
mov dword [0x566a08], 0
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.synchronous
call fcn.0041b4f0
test eax, eax
jne 0x45be1e
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
mov edi, dword [ebp - 0x44]
test edi, edi
jne 0x45bdeb
mov eax, dword [ebp - 0x38]
mov ecx, ebx
movzx eax, byte [eax + 9]
dec eax
cdq
push edx
mov edx, str.synchronous
push eax
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0x1c], 0
jne 0x45be07
push str.Safety_level_may_not_be_changed_inside_a_transaction
push ebx
call fcn.0041b370
add esp, 8
jmp 0x45c8ac
mov ecx, edi
call fcn.0045aee0
mov ebx, dword [ebp - 0x38]
inc al
mov byte [ebx + 9], al
mov eax, dword [ebp - 0x34]
jmp 0x45c8b2
push dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
call fcn.0045b2f0
add esp, 4
test eax, eax
jne 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.table_info
call fcn.0041b4f0
test eax, eax
jne 0x45c02d
cmp dword [ebp - 0x44], eax
je 0x45c02d
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
push dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
call fcn.0044c230
mov edi, eax
add esp, 4
mov dword [ebp - 0x4c], edi
test edi, edi
je 0x45c8ac
mov edx, 6
mov dword [ebp - 0x50], 0
mov ecx, esi
call fcn.00434b90
push 0
push 0x54c7b4
push 0
xor edx, edx
mov dword [ebx + 0x48], 6
mov ecx, esi
call fcn.00434c20
add esp, 0xc
mov edx, 1
mov ecx, esi
push 0
push str.name
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 2
mov ecx, esi
push 0
push str.type
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 3
mov ecx, esi
push 0
push str.notnull
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 4
mov ecx, esi
push 0
push str.dflt_value
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 5
mov ecx, esi
push 0
push 0x54c7dc
push 0
call fcn.00434c20
add esp, 0xc
mov edx, edi
mov ecx, ebx
call fcn.0044e0f0
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov edi, dword [edi + 0xc]
cmp dword [eax + 8], ebx
jle 0x45c8ac
cmp byte [edi + 0x17], 0
je 0x45bf54
inc dword [ebp - 0x50]
jmp 0x45c01b
mov eax, ebx
mov edx, 7
sub eax, dword [ebp - 0x50]
mov ecx, esi
push 1
push eax
call fcn.00433550
push 0
push dword [edi]
mov edx, 0x5e
mov ecx, esi
push 0
push 2
push 0
call fcn.004335b0
mov eax, dword [edi + 0xc]
add esp, 0x1c
test eax, eax
mov ecx, 0x54849c
mov edx, 0x5e
cmovne ecx, eax
push 0
push ecx
push 0
push 3
push 0
mov ecx, esi
call fcn.004335b0
xor eax, eax
add esp, 0x14
cmp byte [edi + 0x14], al
mov edx, 7
mov ecx, esi
setne al
push 4
push eax
call fcn.00433550
mov eax, dword [edi + 8]
add esp, 8
mov ecx, esi
test eax, eax
je 0x45bfe1
push 0
push eax
push 0
push 5
push 0
mov edx, 0x5e
call fcn.004335b0
add esp, 0x14
jmp 0x45bff2
push 5
push 0
mov edx, 0xa
call fcn.00433550
add esp, 8
movzx eax, byte [edi + 0x15]
mov edx, 7
push 6
push eax
mov ecx, esi
call fcn.00433550
push 6
push 1
mov edx, 0x10
mov ecx, esi
call fcn.00433550
mov eax, dword [ebp - 0x4c]
add esp, 0x10
inc ebx
add edi, 0x18
cmp ebx, dword [eax + 8]
jl 0x45bf46
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.index_info
call fcn.0041b4f0
test eax, eax
jne 0x45c14c
cmp dword [ebp - 0x44], eax
je 0x45c14c
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
push dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
call fcn.0044c3c0
mov edi, eax
add esp, 4
mov dword [ebp - 0x60], edi
test edi, edi
je 0x45c8ac
mov eax, dword [edi + 0x10]
mov edx, 3
mov ecx, esi
mov dword [ebp - 0x54], eax
call fcn.00434b90
push 0
push str.seqno
push 0
xor edx, edx
mov dword [ebx + 0x48], 3
mov ecx, esi
call fcn.00434c20
add esp, 0xc
mov edx, 1
mov ecx, esi
push 0
push 0x54c7b4
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 2
mov ecx, esi
push 0
push str.name
push 0
call fcn.00434c20
xor ebx, ebx
add esp, 0xc
cmp dword [edi + 4], ebx
jle 0x45c8ac
mov eax, dword [edi + 8]
mov edx, 7
push 1
push ebx
mov ecx, esi
mov edi, dword [eax + ebx*4]
call fcn.00433550
push 2
push edi
mov edx, 7
mov ecx, esi
call fcn.00433550
mov eax, dword [ebp - 0x54]
lea ecx, [edi + edi*2]
push 0
mov edx, 0x5e
mov eax, dword [eax + 0xc]
push dword [eax + ecx*8]
mov ecx, esi
push 0
push 3
push 0
call fcn.004335b0
add esp, 0x24
mov edx, 0x10
mov ecx, esi
push 3
push 1
call fcn.00433550
mov edi, dword [ebp - 0x60]
inc ebx
add esp, 8
cmp ebx, dword [edi + 4]
jl 0x45c0e4
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.index_list
call fcn.0041b4f0
test eax, eax
jne 0x45c25f
cmp dword [ebp - 0x44], eax
je 0x45c25f
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
push dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
call fcn.0044c230
mov esi, eax
add esp, 4
test esi, esi
je 0x45c8ac
mov ecx, ebx
call fcn.00460680
mov esi, dword [esi + 0x10]
mov edi, eax
test esi, esi
je 0x45c8ac
xor ebx, ebx
mov ecx, edi
lea edx, [ebx + 3]
call fcn.00434b90
mov eax, dword [ebp - 0x3c]
xor edx, edx
push ebx
push 0x54c800
push ebx
mov ecx, edi
mov dword [eax + 0x48], 3
call fcn.00434c20
add esp, 0xc
lea edx, [ebx + 1]
mov ecx, edi
push ebx
push str.name
push ebx
call fcn.00434c20
add esp, 0xc
lea edx, [ebx + 2]
mov ecx, edi
push ebx
push str.unique
push ebx
call fcn.00434c20
add esp, 0xc
nop dword [eax]
push 1
push ebx
mov edx, 7
mov ecx, edi
call fcn.00433550
push 0
push dword [esi]
mov edx, 0x5e
mov ecx, edi
push 0
push 2
push 0
call fcn.004335b0
xor eax, eax
add esp, 0x1c
cmp byte [esi + 0x18], al
mov edx, 7
mov ecx, edi
setne al
push 3
push eax
call fcn.00433550
push 3
push 1
mov edx, 0x10
mov ecx, edi
call fcn.00433550
mov esi, dword [esi + 0x20]
add esp, 0x10
inc ebx
test esi, esi
jne 0x45c200
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.database_list
call fcn.0041b4f0
test eax, eax
jne 0x45c37d
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
lea edx, [eax + 3]
mov ecx, esi
call fcn.00434b90
push 0
push 0x54c800
push 0
xor edx, edx
mov dword [ebx + 0x48], 3
mov ecx, esi
call fcn.00434c20
add esp, 0xc
mov edx, 1
mov ecx, esi
push 0
push str.name
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 2
mov ecx, esi
push 0
push str.file
push 0
call fcn.00434c20
mov eax, dword [ebp - 0x34]
xor ebx, ebx
add esp, 0xc
cmp dword [eax + 4], ebx
jle 0x45c8af
xor edi, edi
nop dword [eax]
mov eax, dword [eax + 8]
cmp dword [eax + edi + 4], 0
je 0x45c368
push 1
push ebx
mov edx, 7
mov ecx, esi
call fcn.00433550
mov eax, dword [ebp - 0x34]
mov edx, 0x5e
push 0
mov ecx, esi
mov eax, dword [eax + 8]
push dword [eax + edi]
push 0
push 2
push 0
call fcn.004335b0
mov eax, dword [ebp - 0x34]
add esp, 0x1c
mov edx, 0x5e
mov ecx, esi
mov eax, dword [eax + 8]
push 0
mov eax, dword [eax + edi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x90]
push 0
push 3
push 0
call fcn.004335b0
add esp, 0x14
mov edx, 0x10
mov ecx, esi
push 3
push 1
call fcn.00433550
add esp, 8
mov eax, dword [ebp - 0x34]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 4]
jl 0x45c2f0
jmp 0x45c8af
mov ecx, dword [ebp - 0x40]
mov edx, str.collation_list
call fcn.0041b4f0
test eax, eax
jne 0x45c43e
lea edx, [eax + 2]
mov dword [ebp - 0x50], eax
mov ecx, esi
call fcn.00434b90
mov eax, dword [ebp - 0x3c]
xor edx, edx
push 0
push 0x54c800
push 0
mov ecx, esi
mov dword [eax + 0x48], 2
call fcn.00434c20
add esp, 0xc
mov edx, 1
mov ecx, esi
push 0
push str.name
push 0
call fcn.00434c20
mov ebx, dword [ebp - 0x34]
add esp, 0xc
mov ebx, dword [ebx + 0x1a4]
test ebx, ebx
je 0x45c8ac
nop word [eax + eax]
mov edi, dword [ebx + 8]
mov edx, 7
push 1
push dword [ebp - 0x50]
mov ecx, esi
call fcn.00433550
inc dword [ebp - 0x50]
mov edx, 0x5e
push 0
push dword [edi]
mov ecx, esi
push 0
push 2
push 0
call fcn.004335b0
add esp, 0x1c
mov edx, 0x10
mov ecx, esi
push 2
push 1
call fcn.00433550
mov ebx, dword [ebx]
add esp, 8
test ebx, ebx
jne 0x45c3f0
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.foreign_key_list
call fcn.0041b4f0
test eax, eax
jne 0x45c70c
cmp dword [ebp - 0x44], eax
je 0x45c70c
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
push dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
call fcn.0044c230
mov esi, eax
add esp, 4
mov dword [ebp - 0x54], esi
test esi, esi
je 0x45c8ac
mov ecx, ebx
call fcn.00460680
mov esi, dword [esi + 0x24]
mov ebx, eax
test esi, esi
je 0x45c8ac
xor edi, edi
mov ecx, ebx
mov dword [ebp - 0x58], edi
lea edx, [edi + 8]
call fcn.00434b90
mov eax, dword [ebp - 0x3c]
xor edx, edx
push edi
push 0x5484b4
push edi
mov ecx, ebx
mov dword [eax + 0x48], 8
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 1]
mov ecx, ebx
push edi
push 0x54c800
push edi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 2]
mov ecx, ebx
push edi
push str.table
push edi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 3]
mov ecx, ebx
push edi
push str.from
push edi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 4]
mov ecx, ebx
push edi
push 0x54c848
push edi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 5]
mov ecx, ebx
push edi
push str.on_update
push edi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 6]
mov ecx, ebx
push edi
push str.on_delete
push edi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 7]
mov ecx, ebx
push edi
push str.match
push edi
call fcn.00434c20
add esp, 0xc
nop dword [eax + eax]
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x50], 0
jle 0x45c6f8
lea eax, [esi + 0x24]
mov dword [ebp - 0x3c], eax
nop word [eax + eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x60], eax
movzx eax, byte [esi + 0x19]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x45c592
jmp dword [eax*4 + 0x45d4b8]
mov dword [ebp - 0x48], str.SET_NULL
jmp 0x45c5c4
mov dword [ebp - 0x48], str.SET_DEFAULT
jmp 0x45c5c4
mov dword [ebp - 0x48], str.CASCADE
jmp 0x45c5c4
mov dword [ebp - 0x48], str.RESTRICT
jmp 0x45c5c4
mov dword [ebp - 0x48], str.NO_ACTION
movzx eax, byte [esi + 0x1a]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x45c5d0
jmp dword [eax*4 + 0x45d4c8]
mov edi, str.SET_NULL
jmp 0x45c5f8
mov edi, str.SET_DEFAULT
jmp 0x45c5f8
mov edi, str.CASCADE
jmp 0x45c5f8
mov edi, str.RESTRICT
jmp 0x45c5f8
mov edi, str.NO_ACTION
push 1
push dword [ebp - 0x58]
mov edx, 7
mov ecx, ebx
call fcn.00433550
push 2
push dword [ebp - 0x50]
mov edx, 7
mov ecx, ebx
call fcn.00433550
push 0
push dword [esi + 8]
mov edx, 0x5e
mov ecx, ebx
push 0
push 3
push 0
call fcn.004335b0
mov eax, dword [ebp - 0x3c]
add esp, 0x24
mov edx, 0x5e
mov eax, dword [eax]
push 0
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0xc]
push dword [eax + ecx*8]
mov ecx, ebx
push 0
push 4
push 0
call fcn.004335b0
mov eax, dword [ebp - 0x60]
add esp, 0x14
test eax, eax
mov edx, 0xa
mov ecx, ebx
push 0
push eax
push 0
mov eax, 0x5e
push 5
push 0
cmovne edx, eax
call fcn.004335b0
add esp, 0x14
mov ecx, ebx
push 0
push edi
push 0
push 6
mov edi, 0x5e
push 0
mov edx, edi
call fcn.004335b0
add esp, 0x14
mov edx, edi
mov ecx, ebx
push 0
push dword [ebp - 0x48]
push 0
push 7
push 0
call fcn.004335b0
add esp, 0x14
mov edx, edi
mov ecx, ebx
push 0
push str.NONE
push 0
push 8
push 0
call fcn.004335b0
add esp, 0x14
lea edx, [edi - 0x4e]
mov ecx, ebx
push 8
push 1
call fcn.00433550
mov ecx, dword [ebp - 0x50]
add esp, 8
mov eax, dword [ebp - 0x3c]
inc ecx
add eax, 8
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x3c], eax
cmp ecx, dword [esi + 0x14]
jl 0x45c580
mov edi, dword [ebp - 0x58]
mov esi, dword [esi + 4]
inc edi
mov dword [ebp - 0x58], edi
test esi, esi
jne 0x45c560
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.case_sensitive_like
call fcn.0041b4f0
test eax, eax
jne 0x45c741
mov edi, dword [ebp - 0x44]
test edi, edi
je 0x45c8ac
mov ecx, edi
call fcn.0045aee0
mov ecx, dword [ebp - 0x34]
mov dl, al
and edx, 1
call fcn.004548a0
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.integrity_check
call fcn.0041b4f0
test eax, eax
je 0x45cd7c
mov ecx, dword [ebp - 0x40]
mov edx, str.quick_check
call fcn.0041b4f0
test eax, eax
je 0x45cd7c
mov ecx, dword [ebp - 0x40]
mov edx, str.encoding
call fcn.0041b4f0
test eax, eax
jne 0x45c905
mov edi, dword [ebp - 0x44]
test edi, edi
jne 0x45c83b
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
lea edx, [edi + 1]
mov ecx, esi
call fcn.00434b90
push edi
push str.encoding
push edi
xor edx, edx
mov ecx, esi
call fcn.00434c20
add esp, 0xc
lea edx, [edi + 0x5e]
mov ecx, esi
push 1
push edi
call fcn.00433550
mov eax, dword [ebx]
add esp, 8
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x4d]
mov ebx, dword [eax*8 + 0x545b28]
test edx, edx
je 0x45c828
cmp byte [ecx + 0x1e], 0
jne 0x45c828
mov eax, dword [esi + 0x1c]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00433a50
add esp, 4
mov dword [edi + 0x10], 0
test ebx, ebx
jne 0x45c81c
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x45b9a6
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfe
jmp 0x45b9a6
push ebx
mov edx, 0xfffffffe
call fcn.00433a50
add esp, 4
jmp 0x45b9a6
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4e]
and al, 5
cmp al, 1
je 0x45c8ac
mov eax, dword [str.UTF8]
mov esi, 0x545b28
test eax, eax
je 0x45c896
nop dword [eax + eax]
mov edx, eax
mov ecx, edi
call fcn.0041b4f0
test eax, eax
je 0x45c879
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
jne 0x45c860
jmp 0x45c89b
mov al, byte [esi + 4]
movzx ecx, al
test al, al
jne 0x45c888
mov ecx, 2
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], cl
cmp dword [esi], 0
jne 0x45c8ac
push edi
push str.unsupported_encoding:__s
push dword [ebp - 0x3c]
call fcn.0041b370
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x38]
cmp byte [eax + 0x1c], 0
je 0x45c8dd
mov edx, dword [eax + 0xc]
mov eax, edx
mov ecx, dword [ebx + 4]
shr eax, 0x16
shr edx, 0x15
and eax, 1
and edx, 1
push eax
push edx
movzx edx, byte [ebx + 9]
call fcn.0042a080
add esp, 8
mov eax, dword [ebp - 0x34]
push dword [ebp - 0x40]
push eax
call fcn.004190a0
push dword [ebp - 0x44]
push dword [ebp - 0x34]
call fcn.004190a0
add esp, 0x10
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f5c8b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x40]
mov edx, str.schema_version
call fcn.0041b4f0
test eax, eax
je 0x45cc5e
mov ecx, dword [ebp - 0x40]
mov edx, str.user_version
call fcn.0041b4f0
test eax, eax
je 0x45cc5e
mov ecx, dword [ebp - 0x40]
mov edx, str.freelist_count
call fcn.0041b4f0
test eax, eax
je 0x45cc5e
mov ecx, dword [ebp - 0x40]
mov edx, str.compile_options
call fcn.0041b4f0
test eax, eax
jne 0x45c9cf
lea edx, [eax + 1]
mov ecx, esi
xor edi, edi
call fcn.00434b90
mov eax, dword [ebp - 0x3c]
xor edx, edx
push edi
push str.compile_option
push edi
mov ecx, esi
mov dword [eax + 0x48], 1
call fcn.00434c20
add esp, 0xc
push edi
call fcn.00416270
add esp, 4
test eax, eax
je 0x45c8ac
lea ecx, [edi + 0x5e]
push 0
push eax
push 0
push 1
mov edx, ecx
inc edi
push 0
mov ecx, esi
call fcn.004335b0
add esp, 0x14
mov edx, 0x10
mov ecx, esi
push 1
push 1
call fcn.00433550
push edi
call fcn.00416270
add esp, 0xc
mov ecx, 0x5e
test eax, eax
jne 0x45c992
jmp 0x45c8ac
mov ecx, dword [ebp - 0x40]
mov edx, str.wal_checkpoint
call fcn.0041b4f0
test eax, eax
jne 0x45caaa
cmp dword [edi], 0
mov eax, 0xa
cmovne eax, ebx
mov ebx, dword [ebp - 0x44]
xor edi, edi
mov dword [ebp - 0x54], eax
test ebx, ebx
je 0x45ca26
mov edx, str.full
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
jne 0x45ca10
lea edi, [eax + 1]
jmp 0x45ca26
mov edx, str.restart
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
mov eax, 2
cmove edi, eax
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
call fcn.0045dc60
test eax, eax
jne 0x45c8da
lea edx, [eax + 3]
mov ecx, esi
call fcn.00434b90
push 0
push str.busy
push 0
xor edx, edx
mov dword [ebx + 0x48], 3
mov ecx, esi
call fcn.00434c20
add esp, 0xc
mov edx, 1
mov ecx, esi
push 0
push 0x54c9e0
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 2
mov ecx, esi
push 0
push str.checkpointed
push 0
call fcn.00434c20
add esp, 0xc
mov edx, 0x7d
mov ecx, esi
push 1
push edi
push dword [ebp - 0x54]
call fcn.00433430
add esp, 0xc
push 3
jmp 0x45b9a8
mov ebx, dword [ebp - 0x40]
mov edx, str.wal_autocheckpoint
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
jne 0x45cb1e
mov edi, dword [ebp - 0x44]
test edi, edi
je 0x45cad7
mov ecx, edi
call fcn.0041be20
push eax
push dword [ebp - 0x34]
call fcn.00475d70
add esp, 8
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0xc0], 0x475d30
jne 0x45cb04
mov eax, dword [eax + 0xc4]
mov ecx, dword [ebp - 0x3c]
cdq
push edx
mov edx, str.wal_autocheckpoint
push eax
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov ecx, dword [ebp - 0x3c]
xor eax, eax
cdq
push edx
mov edx, str.wal_autocheckpoint
push eax
call fcn.0045b1c0
add esp, 8
jmp 0x45c8ac
mov edx, str.shrink_memory
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
jne 0x45cb3b
mov ecx, dword [ebp - 0x34]
call fcn.00474c40
jmp 0x45c8ac
mov edx, 0x54ca18
mov ecx, ebx
call fcn.0041b4f0
mov edi, dword [ebp - 0x44]
test eax, eax
jne 0x45cb6d
test edi, edi
je 0x45cb6d
mov ecx, edi
call fcn.0041b2a0
mov ecx, dword [ebp - 0x34]
xor edx, edx
push eax
push edi
call fcn.00479cd0
add esp, 8
jmp 0x45c8ac
mov edx, str.rekey
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
jne 0x45cb9f
test edi, edi
je 0x45c8ac
mov ecx, edi
call fcn.0041b2a0
mov ecx, dword [ebp - 0x34]
mov edx, edi
push eax
call fcn.00479ee0
add esp, 4
jmp 0x45c8ac
test edi, edi
je 0x45c8ac
mov edx, str.hexkey
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
je 0x45cbcb
mov edx, str.hexrekey
mov ecx, ebx
call fcn.0041b4f0
test eax, eax
jne 0x45c8ac
movsx ebx, byte [edi]
xor esi, esi
test ebx, ebx
je 0x45cc22
movsx edx, byte [esi + edi + 1]
test edx, edx
je 0x45cc22
mov ecx, edx
sar ecx, 6
and cl, 1
mov al, cl
shl al, 3
sub al, cl
mov ecx, ebx
sub dl, al
sar ecx, 6
and cl, 1
and dl, 0xf
mov al, cl
shl al, 3
sub al, cl
sub bl, al
shl bl, 4
or dl, bl
mov eax, esi
test eax, eax
jns 0x45cc10
add eax, 1
sar eax, 1
movsx ebx, byte [esi + edi + 2]
add esi, 2
mov byte [ebp + eax - 0x30], dl
test ebx, ebx
jne 0x45cbd4
mov eax, dword [ebp - 0x40]
mov cl, byte [eax + 3]
mov eax, esi
cdq
and cl, 0xf
sub eax, edx
sar eax, 1
cmp cl, 0xb
mov ecx, dword [ebp - 0x34]
push eax
jne 0x45cc4e
lea eax, [ebp - 0x30]
xor edx, edx
push eax
call fcn.00479cd0
add esp, 8
jmp 0x45c8ac
lea edx, [ebp - 0x30]
call fcn.00479ee0
add esp, 4
jmp 0x45c8ac
mov edx, ebx
mov ecx, esi
call fcn.00434020
mov ecx, dword [ebp - 0x40]
movsx eax, byte [ecx]
add eax, 0xffffffba
cmp eax, 0x2d
ja case.0x45cc7c.71
movzx eax, byte [eax + 0x45d4e4]
jmp dword [eax*4 + 0x45d4d8]
xor edi, edi
jmp 0x45cc93
mov edi, 1
jmp 0x45cc93
mov edi, 6
cmp dword [ebp - 0x44], 0
je 0x45cd17
test edi, edi
je 0x45cd17
push 0x54467c
mov edx, 3
mov ecx, esi
call fcn.00433980
add esp, 4
mov dword [ebp - 0x4c], eax
cmp dword [esi + 0x1c], eax
jbe 0x45ccc3
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebx
mov ecx, dword [ebp - 0x44]
call fcn.0041be20
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
lea ecx, [eax + 1]
cmp dword [esi + 0x1c], ecx
jbe 0x45cce9
mov eax, dword [ebp - 0x54]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 4]
mov dword [ecx + edx*4 + 4], eax
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 2]
cmp dword [esi + 0x1c], edx
jbe 0x45c8ac
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], ebx
cmp dword [esi + 0x1c], edx
jbe 0x45c8ac
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], edi
jmp 0x45c8ac
push 0x5448ac
mov edx, 3
mov ecx, esi
call fcn.00433980
add esp, 4
cmp dword [esi + 0x1c], eax
jbe 0x45cd3a
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebx
lea edx, [eax + 1]
cmp dword [esi + 0x1c], edx
jbe 0x45cd5b
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], ebx
cmp dword [esi + 0x1c], edx
jbe 0x45cd5b
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 0xc], edi
mov edx, 1
mov ecx, esi
call fcn.00434b90
push 0xffffffffffffffff
push dword [ebp - 0x40]
xor edx, edx
mov ecx, esi
push 0
call fcn.00434c20
jmp 0x45c8a9
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
mov ecx, edi
movzx eax, byte [eax]
mov al, byte [eax + 0x545b78]
mov byte [ebp - 0x59], al
call fcn.0045dc60
test eax, eax
jne 0x45c8da
lea edx, [eax + 1]
mov dword [edi + 0x48], 6
mov ecx, esi
call fcn.00434b90
push 0
push str.integrity_check
push 0
xor edx, edx
mov ecx, esi
call fcn.00434c20
mov eax, dword [ebp - 0x44]
mov ebx, 0x64
add esp, 0xc
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x4c], ebx
test eax, eax
je 0x45cdef
lea edx, [ebp - 0x4c]
mov ecx, eax
call fcn.0041bd50
mov ebx, dword [ebp - 0x4c]
mov eax, 0x64
test ebx, ebx
cmovle ebx, eax
mov dword [ebp - 0x54], ebx
push 1
push ebx
mov edx, 7
mov ecx, esi
call fcn.00433550
mov eax, dword [ebp - 0x34]
xor ecx, ecx
add esp, 8
mov dword [ebp - 0x4c], ecx
cmp dword [eax + 4], ecx
jle 0x45d38f
mov dword [ebp - 0x50], ecx
mov edx, ecx
xor ebx, ebx
mov ecx, edi
call fcn.004505a0
push 1
lea edx, [ebx + 0x78]
mov ecx, esi
call fcn.004334f0
add esp, 4
lea edx, [ebx + 6]
mov ecx, esi
mov edi, eax
push ebx
push ebx
call fcn.00433550
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.00433a30
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + eax + 0xc]
add eax, 8
mov dword [ebp - 0x60], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x58], eax
test eax, eax
je 0x45cebb
nop word [eax + eax]
mov edi, dword [eax + 8]
mov edx, 7
lea eax, [ebx + 2]
mov ecx, esi
push eax
push dword [edi + 0x14]
call fcn.00433550
mov edi, dword [edi + 0x10]
add esp, 8
inc ebx
test edi, edi
je 0x45ceaf
lea eax, [ebx + 2]
mov edx, 7
push eax
push dword [edi + 0x14]
mov ecx, esi
call fcn.00433550
mov edi, dword [edi + 0x20]
add esp, 8
inc ebx
test edi, edi
jne 0x45ce91
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x45ce70
mov ecx, dword [ebp - 0x3c]
lea eax, [ebx + 4]
cmp dword [ecx + 0x48], eax
jge 0x45cec9
mov dword [ecx + 0x48], eax
push 1
push ebx
push 2
mov edx, 0x6f
mov ecx, esi
call fcn.00433430
mov ecx, dword [esi + 4]
add esp, 0xc
test ecx, ecx
je 0x45cef1
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], dl
push 2
mov edx, 0x49
mov ecx, esi
call fcn.004334f0
mov edx, dword [ebp - 0x50]
mov edi, eax
mov eax, dword [ebp - 0x34]
add esp, 4
mov ecx, dword [eax + 8]
push 0xffffffffffffffff
push dword [edx + ecx]
push str._in_database__s__n
push eax
call fcn.0041a780
add esp, 0xc
mov edx, 0x5e
mov ecx, esi
push eax
push 0
push 3
push 0
call fcn.004335b0
add esp, 0x14
mov edx, 0xd
mov ecx, esi
push 1
push 4
push 2
call fcn.00433430
add esp, 0xc
mov edx, 0x5b
mov ecx, esi
push 2
push 3
push 4
call fcn.00433430
add esp, 0xc
mov edx, 0x10
mov ecx, esi
push 1
push 2
call fcn.00433550
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.00433a30
mov eax, dword [ebp - 0x60]
mov ebx, dword [eax + 8]
mov dword [ebp - 0x60], ebx
test ebx, ebx
je 0x45d372
mov al, byte [ebp - 0x59]
cmp al, 0x71
je 0x45d372
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x68], ebx
cmp dword [ebx + 0x10], 0
je 0x45d362
push 1
mov edx, 0x78
mov ecx, esi
call fcn.004334f0
add esp, 4
mov edx, 6
mov ecx, esi
mov edi, eax
push 0
push 0
call fcn.00433550
mov edx, edi
mov ecx, esi
call fcn.00433a30
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
push 0x27
push 1
call fcn.00459da0
push 2
push 0
mov edx, 7
mov ecx, esi
call fcn.00433550
push 0
push 1
mov edx, 0x48
mov ecx, esi
call fcn.00433550
mov edi, eax
mov edx, 0x14
push 1
push 2
mov ecx, esi
mov dword [ebp - 0x78], edi
call fcn.00433550
mov ebx, dword [ebx + 0x10]
add esp, 0x28
mov dword [ebp - 0x48], ebx
test ebx, ebx
je 0x45d1b3
mov edi, 2
mov dword [ebp - 0x70], edi
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
push 0
push 3
push 1
call fcn.00452110
mov ecx, dword [ebx + 4]
add esp, 0xc
inc ecx
mov edx, 0x34
push ecx
push eax
push 0
push edi
mov ecx, esi
call fcn.00433710
push 0x545404
mov edx, 0xb
mov dword [ebp - 0x74], eax
mov ecx, esi
call fcn.00433980
mov edx, dword [esi + 4]
add esp, 0x14
mov ebx, dword [esi]
mov dword [ebp - 0x58], eax
lea ecx, [eax + 1]
test edx, edx
je 0x45d0ae
cmp byte [ebx + 0x1e], 0
jne 0x45d0ae
test ecx, ecx
jns 0x45d08c
mov ecx, dword [esi + 0x1c]
dec ecx
lea eax, [ecx + ecx*4]
mov ecx, ebx
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00433a50
mov dword [edi + 0x10], 0x54c8bc
mov byte [edi + 1], 0xfe
jmp 0x45d0bf
push 0x54c8bc
mov edx, 0xfffffffe
mov ecx, ebx
call fcn.00433a50
mov eax, dword [ebp - 0x58]
add esp, 4
mov edx, dword [esi + 4]
add eax, 3
mov ecx, dword [esi]
test edx, edx
je 0x45d0ff
cmp byte [ecx + 0x1e], 0
jne 0x45d0ff
test eax, eax
jns 0x45d0df
mov eax, dword [esi + 0x1c]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00433a50
mov dword [edi + 0x10], str._missing_from_index
mov byte [edi + 1], 0xfe
jmp 0x45d10e
push str._missing_from_index
mov edx, 0xfffffffe
call fcn.00433a50
mov ebx, dword [ebp - 0x48]
add esp, 4
mov eax, dword [ebp - 0x58]
mov edx, dword [esi + 4]
add eax, 4
mov ecx, dword [esi]
mov ebx, dword [ebx]
test edx, edx
je 0x45d176
cmp byte [ecx + 0x1e], 0
jne 0x45d176
test eax, eax
jns 0x45d133
mov eax, dword [esi + 0x1c]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00433a50
add esp, 4
mov dword [edi + 0x10], 0
test ebx, ebx
jne 0x45d15c
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x45d181
mov ecx, ebx
call fcn.0041b2a0
mov ecx, dword [esi]
mov edx, ebx
push eax
call fcn.00419480
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xff
jmp 0x45d17e
push ebx
xor edx, edx
call fcn.00433a50
add esp, 4
mov edx, dword [ebp - 0x58]
mov ecx, esi
lea edx, [edx + 9]
call fcn.00433a30
mov edx, dword [ebp - 0x74]
mov ecx, esi
call fcn.00433a30
mov ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x70]
inc edi
mov dword [ebp - 0x70], edi
mov ebx, dword [ebx + 0x20]
mov dword [ebp - 0x48], ebx
test ebx, ebx
jne 0x45d030
mov edi, dword [ebp - 0x78]
lea eax, [edi + 1]
mov edx, 0x5f
push eax
push 1
mov ecx, esi
call fcn.00433550
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.00433a30
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x58], eax
test eax, eax
je 0x45d35f
mov dword [ebp - 0x48], 2
nop dword [eax]
push 1
mov edx, 0x78
mov ecx, esi
call fcn.004334f0
add esp, 4
mov edx, 6
mov ecx, esi
mov edi, eax
push 0
push 0
call fcn.00433550
mov edx, edi
mov ecx, esi
call fcn.00433a30
push 0x5448d0
mov edx, 0xa
mov ecx, esi
call fcn.00433980
mov ebx, eax
add esp, 0xc
lea edi, [ebx + 1]
cmp dword [esi + 0x1c], edi
jbe 0x45d259
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov eax, dword [ebp - 0x48]
mov dword [ecx + edx*4 + 4], eax
cmp dword [esi + 0x1c], edi
jbe 0x45d259
mov eax, dword [esi + 4]
lea edx, [ebx + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea edi, [ebx + 3]
cmp dword [esi + 0x1c], edi
jbe 0x45d280
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov edx, dword [ebp - 0x48]
mov dword [eax + ecx*4 + 4], edx
cmp dword [esi + 0x1c], edi
jbe 0x45d280
mov eax, dword [esi + 4]
lea edx, [ebx + 2]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea edx, [ebx + 4]
mov ecx, esi
call fcn.00433a30
mov edx, dword [esi + 4]
lea eax, [ebx + 6]
mov ecx, dword [esi]
test edx, edx
je 0x45d2c4
cmp byte [ecx + 0x1e], 0
jne 0x45d2c4
test eax, eax
jns 0x45d2a4
mov eax, dword [esi + 0x1c]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00433a50
mov dword [edi + 0x10], str.wrong__of_entries_in_index
mov byte [edi + 1], 0xfe
jmp 0x45d2d3
push str.wrong__of_entries_in_index
mov edx, 0xfffffffe
call fcn.00433a50
mov ecx, dword [ebp - 0x58]
lea eax, [ebx + 7]
mov edx, dword [esi + 4]
add esp, 4
mov ebx, dword [esi]
mov ecx, dword [ecx]
mov dword [ebp - 0x68], ecx
test edx, edx
je 0x45d33e
cmp byte [ebx + 0x1e], 0
jne 0x45d33e
test eax, eax
jns 0x45d2f8
mov eax, dword [esi + 0x1c]
dec eax
lea eax, [eax + eax*4]
mov ecx, ebx
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00433a50
mov ecx, dword [ebp - 0x68]
add esp, 4
mov dword [edi + 0x10], 0
test ecx, ecx
jne 0x45d326
mov dword [edi + 0x10], ecx
mov byte [edi + 1], cl
jmp 0x45d34b
call fcn.0041b2a0
mov edx, ecx
mov ecx, dword [esi]
push eax
call fcn.00419480
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xff
jmp 0x45d348
push ecx
xor edx, edx
mov ecx, ebx
call fcn.00433a50
add esp, 4
mov eax, dword [ebp - 0x58]
inc dword [ebp - 0x48]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x45d1f0
mov al, byte [ebp - 0x59]
mov ebx, dword [ebp - 0x60]
mov ebx, dword [ebx]
mov dword [ebp - 0x60], ebx
test ebx, ebx
jne 0x45cf90
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
inc ecx
add dword [ebp - 0x50], 0x10
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [eax + 4]
jl 0x45ce15
mov ebx, dword [ebp - 0x54]
push 0x547910
mov edx, 4
mov ecx, esi
call fcn.00433980
mov edi, eax
add esp, 4
cmp dword [esi + 0x1c], edi
jbe 0x45d3b6
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
neg ebx
mov dword [ecx + edx*4 + 8], ebx
lea edx, [edi + 1]
mov ecx, esi
call fcn.00433a30
mov edx, dword [esi + 4]
lea eax, [edi + 2]
mov ecx, dword [esi]
test edx, edx
je 0x45d400
cmp byte [ecx + 0x1e], 0
jne 0x45d400
test eax, eax
jns 0x45d3da
mov eax, dword [esi + 0x1c]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx edx, byte [esi + 1]
call fcn.00433a50
add esp, 4
mov dword [esi + 0x10], 0x54c8fc
mov byte [esi + 1], 0xfe
jmp 0x45c8ac
push 0x54c8fc
mov edx, 0xfffffffe
call fcn.00433a50
add esp, 4
jmp 0x45c8ac
mov edi, dword [ebp - 0x3c]
mov ecx, edi
call fcn.0045dc60
test eax, eax
jne 0x45c8da
mov edx, ebx
mov ecx, edi
call fcn.004505a0
mov eax, dword [ebp - 0x40]
inc dword [edi + 0x48]
mov edi, dword [edi + 0x48]
movzx eax, byte [eax]
cmp byte [eax + 0x545b78], 0x70
jne 0x45d45a
push edi
push ebx
mov edx, 0x92
mov ecx, esi
call fcn.00433550
add esp, 8
jmp 0x45d47b
mov ecx, dword [ebp - 0x44]
call fcn.0041be20
mov ecx, eax
call fcn.0041c410
push eax
push edi
push ebx
mov edx, 0x93
mov ecx, esi
call fcn.00433430
add esp, 0xc
push 1
push edi
mov edx, 0x10
mov ecx, esi
call fcn.00433550
mov edx, 1
mov ecx, esi
call fcn.00434b90
push 0xffffffffffffffff
push dword [ebp - 0x40]
xor edx, edx
mov ecx, esi
push 0
call fcn.00434c20
add esp, 0x14
jmp 0x45c8ac
mov eax, ecx
jmp 0x45c8af