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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
mov ebx, dword [edi]
mov esi, eax
mov eax, ebx
mov dword [esp + 0x38], ebx
call fcn.0055ca10
mov ebp, eax
test ebp, ebp
mov dword [edi + 0xc], ebp
je 0x580272
mov eax, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x64]
mov byte [ebp + 0x65], 1
push edi
lea ecx, [esp + 0x48]
mov dword [edi + 0x48], 2
call fcn.00570d80
add esp, 8
test eax, eax
mov dword [esp + 0x18], eax
jl 0x580272
mov ecx, eax
shl ecx, 4
add ecx, dword [ebx + 8]
cmp eax, 1
mov dword [esp + 0x14], ecx
jne 0x57e454
mov eax, edi
call fcn.005744d0
test eax, eax
jne 0x580272
mov eax, dword [esp + 0x40]
push ebx
call fcn.00570be0
add esp, 4
test eax, eax
mov dword [esp + 0x20], eax
je 0x580272
cmp dword [esp + 0x64], 0
je 0x57e48c
push esi
push 0x6306c4
mov esi, ebx
call fcn.00544920
mov esi, eax
add esp, 8
mov dword [esp + 0x3c], esi
jmp 0x57e49d
push ebx
mov eax, esi
call fcn.00570be0
add esp, 4
mov esi, eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 4], 0
jbe 0x57e4af
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
jmp 0x57e4b1
xor eax, eax
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
push esi
push eax
push 0x13
mov eax, edi
call fcn.0056fe50
add esp, 0x10
test eax, eax
jne 0x58025d
mov edi, dword [esp + 0x20]
mov edx, str.default_cache_size
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57e5d9
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
mov ebx, dword [esp + 0x18]
mov ecx, ebx
mov eax, ebp
call fcn.0055d540
test esi, esi
jne 0x57e57e
push 1
mov edi, ebp
call fcn.0055dfb0
add esp, 4
push esi
push str.cache_size
push esi
push esi
mov ecx, ebp
call fcn.0055e030
mov eax, dword [esp + 0x68]
add dword [eax + 0x48], 2
push 0x618720
push 8
mov eax, ebp
call fcn.0055ce90
add esp, 0x18
cmp dword [ebp + 0x1c], eax
jle 0x57e54d
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*4 + 4], ebx
lea ecx, [eax + 1]
cmp dword [ebp + 0x1c], ecx
jle 0x57e55f
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 4], ebx
add eax, 6
cmp dword [ebp + 0x1c], eax
jle 0x580228
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4 + 4], 0x7d0
jmp 0x580228
mov ecx, esi
call fcn.00545e20
call fcn.005464b0
mov esi, eax
mov eax, dword [esp + 0x58]
push 0
mov edi, ebx
call fcn.00574670
add esp, 4
push 0
push 1
push esi
push 7
mov eax, ebp
call fcn.0055cbe0
push 1
push 3
push ebx
push 0x24
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov dword [edx + 0x50], esi
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x50]
mov eax, dword [eax + 4]
push edx
call fcn.00552e80
add esp, 0x24
jmp 0x580228
mov edx, str.page_size
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57e644
test esi, esi
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 4]
jne 0x57e61b
test edi, edi
je 0x57e600
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x24]
jmp 0x57e602
xor eax, eax
cdq
push edx
push eax
mov eax, dword [esp + 0x60]
push str.page_size
call fcn.0057e120
add esp, 0xc
jmp 0x580228
mov ecx, esi
call fcn.00545e20
push 0
push 0xffffffffffffffff
push edi
mov dword [ebx + 0x24], eax
call fcn.00552f70
add esp, 0xc
cmp eax, 7
jne 0x580228
mov byte [ebx + 0x1e], 1
jmp 0x580228
mov edx, str.secure_delete
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57e6cd
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
or ebp, 0xffffffff
test esi, esi
mov dword [esp + 0x40], eax
je 0x57e674
push esi
call fcn.0057df10
add esp, 4
and eax, 1
mov ebp, eax
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 4], 0
jne 0x57e6a9
test ebp, ebp
jl 0x57e6a9
xor esi, esi
cmp dword [ebx + 4], esi
jle 0x57e6a9
xor edi, edi
jmp 0x57e690
mov edx, dword [ebx + 8]
mov ecx, dword [edi + edx + 4]
mov eax, ebp
call fcn.005530e0
add esi, 1
add edi, 0x10
cmp esi, dword [ebx + 4]
jl 0x57e690
mov ecx, dword [esp + 0x40]
mov eax, ebp
call fcn.005530e0
cdq
push edx
push eax
mov eax, dword [esp + 0x60]
push str.secure_delete
call fcn.0057e120
add esp, 0xc
jmp 0x580228
mov edx, str.page_count
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x5801a5
mov edx, str.max_page_count
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x5801a5
mov edx, str.locking_mode
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57e7c8
mov dword [esp + 0x58], str.normal
call fcn.0057dfb0
mov edx, eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 4]
test eax, eax
jne 0x57e760
cmp edx, 0xffffffff
jne 0x57e72e
movzx eax, byte [ebx + 0x1f]
jmp 0x57e771
test eax, eax
jne 0x57e760
mov esi, 2
cmp dword [ebx + 4], esi
jle 0x57e75d
mov edi, 0x20
mov ecx, dword [ebx + 8]
mov eax, dword [edi + ecx + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call fcn.0054e8c0
add esi, 1
add edi, 0x10
cmp esi, dword [ebx + 4]
jl 0x57e741
mov byte [ebx + 0x1f], dl
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
call fcn.0054e8c0
cmp eax, 1
jne 0x57e77e
mov dword [esp + 0x58], str.exclusive
push 1
mov edi, ebp
call fcn.0055dfb0
add esp, 4
push 0
push str.locking_mode
push 0
push 0
mov ecx, ebp
call fcn.0055e030
mov ecx, dword [esp + 0x68]
push 0
push ecx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 1]
call fcn.0055ccb0
push 0
push 1
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
add esp, 0x30
jmp 0x580228
mov edx, str.journal_mode
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57e8e3
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
push 1
mov edi, ebp
call fcn.0055dfb0
add esp, 4
push 0
push str.journal_mode
push 0
push 0
mov ecx, ebp
call fcn.0055e030
add esp, 0x10
test esi, esi
jne 0x57e81c
mov dword [esp + 0x58], 0xffffffff
jmp 0x57e861
mov ecx, esi
call fcn.00545410
mov dword [esp + 0x40], eax
xor edi, edi
lea esp, [esp]
cmp edi, 6
je 0x57e812
mov eax, dword [edi*4 + 0x618708]
test eax, eax
je 0x57e812
mov edx, dword [esp + 0x40]
push edx
push eax
push esi
call fcn.00545650
add esp, 0xc
test eax, eax
je 0x57e858
add edi, 1
jmp 0x57e830
cmp edi, 0xffffffff
mov dword [esp + 0x58], edi
jne 0x57e87c
mov eax, dword [esp + 0x60]
cmp dword [eax + 4], 0
jne 0x57e87c
mov ecx, eax
mov dword [esp + 0x18], 0
mov dword [ecx + 4], 1
mov esi, dword [ebx + 4]
sub esi, 1
js 0x57e8cf
mov edi, esi
shl edi, 4
lea esp, [esp]
mov edx, dword [ebx + 8]
cmp dword [edi + edx + 4], 0
je 0x57e8c5
cmp esi, dword [esp + 0x18]
je 0x57e8aa
mov eax, dword [esp + 0x60]
cmp dword [eax + 4], 0
jne 0x57e8c5
mov ecx, esi
mov eax, ebp
call fcn.0055d540
mov ecx, dword [esp + 0x58]
push ecx
push 1
push esi
push 0x77
call fcn.0055cbe0
add esp, 0x10
sub esi, 1
sub edi, 0x10
test esi, esi
jge 0x57e890
push 0
push 1
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
jmp 0x580225
mov edx, str.journal_size_limit
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57e97c
test esi, esi
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
mov dword [esp + 0x4c], 0xfffffffe
mov dword [esp + 0x50], 0xffffffff
je 0x57e958
lea edx, [esp + 0x4c]
push 1
push edx
mov edx, 0xf4240
mov eax, esi
call fcn.00545be0
mov eax, dword [esp + 0x58]
add esp, 8
cmp eax, 0xffffffff
jg 0x57e948
jl 0x57e941
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xffffffff
jae 0x57e94c
or ecx, 0xffffffff
or eax, ecx
jmp 0x57e94c
mov ecx, dword [esp + 0x4c]
mov dword [edi + 0x88], ecx
mov dword [edi + 0x8c], eax
mov eax, dword [edi + 0x88]
mov edi, dword [edi + 0x8c]
push edi
push eax
mov eax, dword [esp + 0x60]
push str.journal_size_limit
call fcn.0057e120
add esp, 0xc
jmp 0x580228
mov edx, str.auto_vacuum
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57ea91
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
call fcn.00580a30
test eax, eax
jne 0x58025d
test esi, esi
jne 0x57e9d8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x57e9bf
call fcn.005531a0
jmp 0x57e9c1
xor eax, eax
cdq
push edx
push eax
push str.auto_vacuum
mov eax, edi
call fcn.0057e120
add esp, 0xc
jmp 0x580228
call fcn.0057dfe0
test eax, eax
mov dword [esp + 0x58], eax
mov byte [ebx + 0x20], al
jl 0x580228
push eax
mov eax, dword [esp + 0x38]
call fcn.00553130
add esp, 4
test eax, eax
jne 0x580228
mov esi, dword [esp + 0x58]
cmp esi, 1
je 0x57ea13
cmp esi, 2
jne 0x580228
push 0x618740
push 6
mov eax, ebp
call fcn.0055ce90
mov ecx, dword [esp + 0x20]
add esp, 8
cmp dword [ebp + 0x1c], eax
jle 0x57ea37
mov edi, dword [ebp + 4]
lea edx, [eax + eax*4]
mov dword [edi + edx*4 + 4], ecx
lea edx, [eax + 1]
cmp dword [ebp + 0x1c], edx
jle 0x57ea49
mov edi, dword [ebp + 4]
lea edx, [edx + edx*4]
mov dword [edi + edx*4 + 4], ecx
lea edx, [eax + 2]
cmp dword [ebp + 0x1c], edx
jle 0x57ea5e
mov ebx, dword [ebp + 4]
lea edi, [eax + 4]
lea edx, [edx + edx*4]
mov dword [ebx + edx*4 + 8], edi
lea edx, [eax + 4]
cmp dword [ebp + 0x1c], edx
jle 0x57ea73
mov edi, dword [ebp + 4]
add esi, 0xffffffff
lea edx, [edx + edx*4]
mov dword [edi + edx*4 + 4], esi
add eax, 5
cmp dword [ebp + 0x1c], eax
jle 0x57ea85
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov dword [edx + eax*4 + 4], ecx
mov eax, ebp
call fcn.0055d540
jmp 0x580228
mov edx, str.incremental_vacuum
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57eb55
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
test esi, esi
je 0x57ead4
lea eax, [esp + 0x40]
push eax
push esi
call fcn.00545d50
add esp, 8
test eax, eax
je 0x57ead4
mov esi, dword [esp + 0x40]
test esi, esi
jg 0x57ead9
mov esi, 0x7fffffff
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
push 0
call fcn.00574670
add esp, 4
push 0
push 1
push esi
push 7
mov eax, ebp
call fcn.0055cbe0
push 0
push 0
push edi
push 0x79
mov eax, ebp
call fcn.0055cbe0
push 0
push 0
mov esi, eax
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
push 0
push 0xffffffffffffffff
push 1
push 0x14
mov eax, ebp
call fcn.0055cbe0
add esp, 0x40
push 0
push esi
push 1
push 0x71
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 0x1c]
add esp, 0x10
cmp eax, esi
jle 0x580228
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
jmp 0x580228
mov edx, str.cache_size
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57ebc8
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
test esi, esi
jne 0x57eb9b
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x50]
cdq
push edx
push eax
push str.cache_size
mov eax, edi
call fcn.0057e120
add esp, 0xc
jmp 0x580228
mov ecx, esi
call fcn.00545e20
call fcn.005464b0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x50], eax
mov eax, dword [ecx + 0xc]
mov edx, dword [eax + 0x50]
mov eax, dword [ecx + 4]
push edx
call fcn.00552e80
add esp, 4
jmp 0x580228
mov edx, str.temp_store
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57ec09
test esi, esi
jne 0x57ebf9
movzx eax, byte [ebx + 0x1d]
cdq
push edx
push eax
mov eax, dword [esp + 0x60]
push str.temp_store
call fcn.0057e120
add esp, 0xc
jmp 0x580228
mov edi, dword [esp + 0x58]
mov eax, esi
call fcn.0057e0b0
jmp 0x580228
mov edx, str.temp_store_directory
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57ecf3
test esi, esi
jne 0x57ec72
cmp dword [0x66d31c], esi
je 0x580228
push 1
mov edi, ebp
call fcn.0055dfb0
add esp, 4
push esi
push str.temp_store_directory
push esi
push esi
mov ecx, ebp
call fcn.0055e030
mov eax, dword [0x66d31c]
push esi
push eax
push esi
push 0x5e
xor eax, eax
lea ecx, [esi + 1]
call fcn.0055ccb0
push esi
push 1
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
add esp, 0x30
jmp 0x580228
cmp byte [esi], 0
je 0x57ecaa
mov eax, dword [ebx]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x40]
push ecx
push 1
push esi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x57ec94
cmp dword [esp + 0x40], eax
jne 0x57ecaa
mov edi, dword [esp + 0x58]
push str.not_a_writable_directory
call fcn.005454f0
add esp, 4
jmp 0x58025d
cmp byte [ebx + 0x1d], 1
ja 0x57ecb9
mov eax, dword [esp + 0x58]
call fcn.0057e050
mov eax, dword [0x66d31c]
push eax
call fcn.00543360
add esp, 4
cmp byte [esi], 0
je 0x57ece4
push esi
push 0x62c378
call fcn.00544a20
add esp, 8
mov dword [0x66d31c], eax
jmp 0x580228
mov dword [0x66d31c], 0
jmp 0x580228
mov edx, str.synchronous
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57ed69
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
test esi, esi
jne 0x57ed3a
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 9]
sub eax, 1
cdq
push edx
push eax
push str.synchronous
mov eax, edi
call fcn.0057e120
add esp, 0xc
jmp 0x580228
cmp byte [ebx + 0x1c], 0
jne 0x57ed52
push str.Safety_level_may_not_be_changed_inside_a_transaction
call fcn.005454f0
add esp, 4
jmp 0x580228
push esi
call fcn.0057df10
mov edx, dword [esp + 0x18]
add esp, 4
add al, 1
mov byte [edx + 9], al
jmp 0x580228
mov eax, dword [esp + 0x58]
push esi
push edi
push eax
call fcn.0057e2d0
add esp, 0xc
test eax, eax
jne 0x580228
mov edx, str.table_info
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57ef3d
test esi, esi
je 0x57ef3d
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
mov ecx, dword [esp + 0x1c]
push ecx
push esi
push ebx
call fcn.00570480
add esp, 0xc
test eax, eax
mov dword [esp + 0x28], eax
je 0x580228
xor ebx, ebx
push 6
mov edi, ebp
mov dword [esp + 0x30], ebx
call fcn.0055dfb0
mov esi, dword [esp + 0x5c]
add esp, 4
push ebx
push 0x630804
push ebx
push ebx
mov ecx, ebp
mov dword [esi + 0x48], 6
call fcn.0055e030
push ebx
push 0x612530
push ebx
push 1
mov ecx, ebp
call fcn.0055e030
push ebx
push str.type
push ebx
push 2
mov ecx, ebp
call fcn.0055e030
push ebx
push str.notnull
push ebx
push 3
mov ecx, ebp
call fcn.0055e030
add esp, 0x40
push ebx
push str.dflt_value
push ebx
push 4
mov ecx, ebp
call fcn.0055e030
push ebx
push 0x63081c
push ebx
push 5
mov ecx, ebp
call fcn.0055e030
mov edx, dword [esp + 0x48]
push edx
push esi
call fcn.00572360
mov eax, dword [esp + 0x50]
mov esi, dword [eax + 0xc]
add esp, 0x28
cmp dword [eax + 8], ebx
jle 0x580228
cmp byte [esi + 0x17], 0
je 0x57ee75
add dword [esp + 0x2c], 1
jmp 0x57ef25
push 0
mov eax, ebx
sub eax, dword [esp + 0x30]
push 1
push eax
push 7
mov eax, ebp
call fcn.0055cbe0
mov ecx, dword [esi]
push 0
push ecx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 2]
mov edi, ebp
call fcn.0055ccb0
mov eax, dword [esi + 0xc]
add esp, 0x20
test eax, eax
jne 0x57eead
mov eax, 0x627e26
push 0
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 3]
call fcn.0055ccb0
xor edx, edx
cmp byte [esi + 0x14], dl
push 0
setne dl
push 4
mov eax, ebp
push edx
push 7
call fcn.0055cbe0
mov eax, dword [esi + 8]
add esp, 0x20
test eax, eax
push 0
je 0x57eef1
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 5]
call fcn.0055ccb0
jmp 0x57eefe
push 5
push 0
push 0xa
mov eax, ebp
call fcn.0055cbe0
movzx eax, byte [esi + 0x15]
add esp, 0x10
push 0
push 6
push eax
push 7
mov eax, ebp
call fcn.0055cbe0
push 0
push 6
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
add esp, 0x20
mov ecx, dword [esp + 0x28]
add ebx, 1
add esi, 0x18
cmp ebx, dword [ecx + 8]
jl 0x57ee65
jmp 0x580228
mov edx, str.index_info
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f047
test esi, esi
je 0x57f047
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
mov edx, dword [esp + 0x1c]
push edx
push esi
mov ecx, ebx
call fcn.00570620
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x580228
mov eax, dword [ebx + 0x10]
push 3
mov edi, ebp
mov dword [esp + 0x44], eax
call fcn.0055dfb0
mov ecx, dword [esp + 0x5c]
add esp, 4
push 0
push str.seqno
mov dword [ecx + 0x48], 3
push 0
push 0
mov ecx, ebp
call fcn.0055e030
push 0
push 0x630804
push 0
push 1
mov ecx, ebp
call fcn.0055e030
push 0
push 0x612530
push 0
push 2
mov ecx, ebp
call fcn.0055e030
xor esi, esi
add esp, 0x30
cmp dword [ebx + 4], esi
jle 0x580228
mov edx, dword [ebx + 8]
mov edi, dword [edx + esi*4]
push 0
push 1
push esi
push 7
mov eax, ebp
call fcn.0055cbe0
push 0
push 2
push edi
push 7
mov eax, ebp
call fcn.0055cbe0
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0xc]
lea eax, [edi + edi*2]
mov eax, dword [edx + eax*8]
push 0
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 3]
mov edi, ebp
call fcn.0055ccb0
push 0
push 3
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
add esi, 1
add esp, 0x40
cmp esi, dword [ebx + 4]
jl 0x57efe6
jmp 0x580228
mov edx, str.index_list
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f13e
test esi, esi
je 0x57f13e
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
mov ecx, dword [esp + 0x1c]
push ecx
push esi
push ebx
call fcn.00570480
mov esi, eax
add esp, 0xc
test esi, esi
je 0x580228
mov ebp, edi
call fcn.00583190
mov esi, dword [esi + 0x10]
test esi, esi
mov edi, eax
je 0x580228
push 3
xor ebx, ebx
call fcn.0055dfb0
add esp, 4
push ebx
push 0x630840
push ebx
push ebx
mov ecx, edi
mov dword [ebp + 0x48], 3
call fcn.0055e030
push ebx
push 0x612530
push ebx
push 1
mov ecx, edi
call fcn.0055e030
push ebx
push str.unique
push ebx
push 2
mov ecx, edi
call fcn.0055e030
add esp, 0x30
push 0
push 1
push ebx
push 7
mov eax, edi
call fcn.0055cbe0
mov edx, dword [esi]
push 0
push edx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 2]
call fcn.0055ccb0
xor eax, eax
cmp byte [esi + 0x18], al
push 0
setne al
push 3
push eax
push 7
mov eax, edi
call fcn.0055cbe0
push 0
push 3
push 1
push 0x10
mov eax, edi
call fcn.0055cbe0
mov esi, dword [esi + 0x20]
add esp, 0x40
add ebx, 1
test esi, esi
jne 0x57f0e6
jmp 0x580228
mov edx, str.database_list
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f249
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
push 3
mov edi, ebp
call fcn.0055dfb0
mov ecx, dword [esp + 0x5c]
add esp, 4
push 0
push 0x630840
mov dword [ecx + 0x48], 3
push 0
push 0
mov ecx, ebp
call fcn.0055e030
push 0
push 0x612530
push 0
push 1
mov ecx, ebp
call fcn.0055e030
push 0
push 0x63063c
push 0
push 2
mov ecx, ebp
call fcn.0055e030
add esp, 0x30
cmp dword [ebx + 4], 0
mov dword [esp + 0x58], 0
jle 0x580228
xor esi, esi
mov edx, dword [ebx + 8]
cmp dword [esi + edx + 4], 0
je 0x57f231
mov eax, dword [esp + 0x58]
push 0
push 1
push eax
push 7
mov eax, ebp
call fcn.0055cbe0
mov ecx, dword [ebx + 8]
mov edx, dword [esi + ecx]
push 0
push edx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 2]
mov edi, ebp
call fcn.0055ccb0
mov eax, dword [ebx + 8]
mov ecx, dword [esi + eax + 4]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x90]
push 0
push ecx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 3]
call fcn.0055ccb0
push 0
push 3
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
add esp, 0x40
mov eax, dword [esp + 0x58]
add eax, 1
add esi, 0x10
cmp eax, dword [ebx + 4]
mov dword [esp + 0x58], eax
jl 0x57f1c7
jmp 0x580228
mov edx, str.collation_list
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f2f7
push 2
mov edi, ebp
mov dword [esp + 0x44], eax
call fcn.0055dfb0
mov edx, dword [esp + 0x5c]
add esp, 4
push 0
push 0x630840
push 0
push 0
mov ecx, ebp
mov dword [edx + 0x48], 2
call fcn.0055e030
push 0
push 0x612530
push 0
push 1
mov ecx, ebp
call fcn.0055e030
mov esi, dword [ebx + 0x1a4]
add esp, 0x20
test esi, esi
je 0x580228
mov ebx, dword [esp + 0x40]
mov edi, dword [esi + 8]
push 0
push 1
push ebx
push 7
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [edi]
push 0
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 2]
mov edi, ebp
add ebx, 1
call fcn.0055ccb0
push 0
push 2
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
mov esi, dword [esi]
add esp, 0x30
test esi, esi
jne 0x57f2b1
jmp 0x580228
mov edx, str.foreign_key_list
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f5a8
test esi, esi
je 0x57f5a8
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
mov ecx, dword [esp + 0x1c]
push ecx
push esi
push ebx
call fcn.00570480
add esp, 0xc
test eax, eax
mov dword [esp + 0x34], eax
je 0x580228
call fcn.00583190
mov edx, dword [esp + 0x34]
mov ebx, dword [edx + 0x24]
test ebx, ebx
mov esi, eax
je 0x580228
push 8
mov edi, esi
mov dword [esp + 0x2c], 0
call fcn.0055dfb0
mov eax, dword [esp + 0x5c]
add esp, 4
push 0
push 0x630880
push 0
push 0
mov ecx, esi
mov dword [eax + 0x48], 8
call fcn.0055e030
push 0
push 0x630840
push 0
push 1
mov ecx, esi
call fcn.0055e030
push 0
push str.table
push 0
push 2
mov ecx, esi
call fcn.0055e030
push 0
push str.from
push 0
push 3
mov ecx, esi
call fcn.0055e030
add esp, 0x40
push 0
push 0x63088c
push 0
push 4
mov ecx, esi
call fcn.0055e030
push 0
push str.on_update
push 0
push 5
mov ecx, esi
call fcn.0055e030
push 0
push str.on_delete
push 0
push 6
mov ecx, esi
call fcn.0055e030
push 0
push str.match
push 0
push 7
mov ecx, esi
call fcn.0055e030
add esp, 0x40
lea ebx, [ebx]
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x2c], 0
jle 0x57f593
lea ecx, [ebx + 0x24]
mov dword [esp + 0x58], ecx
lea esp, [esp]
mov edx, dword [esp + 0x58]
mov al, byte [ebx + 0x19]
mov ebp, dword [edx + 4]
call fcn.0057e3a0
mov dword [esp + 0x30], eax
mov al, byte [ebx + 0x1a]
call fcn.0057e3a0
push 0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
push 1
push eax
push 7
mov eax, esi
call fcn.0055cbe0
mov ecx, dword [esp + 0x3c]
push 0
push 2
push ecx
push 7
mov eax, esi
call fcn.0055cbe0
mov edx, dword [ebx + 8]
push 0
push edx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 3]
mov edi, esi
call fcn.0055ccb0
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
mov edx, dword [esp + 0x64]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + ecx*8]
push 0
push ecx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 4]
call fcn.0055ccb0
add esp, 0x40
push 0
push ebp
neg ebp
sbb ebp, ebp
and ebp, 0x54
xor eax, eax
push 0
add ebp, 0xa
push ebp
lea ecx, [eax + 5]
call fcn.0055ccb0
mov edx, dword [esp + 0x50]
push 0
push edx
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 6]
call fcn.0055ccb0
mov eax, dword [esp + 0x50]
push 0
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 7]
call fcn.0055ccb0
push 0
push 8
push 0
push 0x5e
mov eax, esi
call fcn.0055cbe0
mov edi, dword [esi]
mov ecx, dword [esi + 4]
add esp, 0x40
test ecx, ecx
je 0x57f55c
cmp byte [edi + 0x1e], 0
jne 0x57f55c
test eax, eax
jge 0x57f522
mov eax, dword [esi + 0x1c]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea ebp, [ecx + edx*4]
mov ecx, dword [ebp + 0x10]
call fcn.0055cf70
mov ecx, str.NONE
mov dword [ebp + 0x10], 0
call fcn.00545410
mov edx, dword [esi]
push ecx
mov edi, eax
call fcn.005437c0
add esp, 4
mov dword [ebp + 0x10], eax
mov byte [ebp + 1], 0xff
jmp 0x57f568
mov ecx, str.NONE
xor eax, eax
call fcn.0055cf70
push 0
push 8
push 1
push 0x10
mov eax, esi
call fcn.0055cbe0
mov eax, dword [esp + 0x3c]
add dword [esp + 0x68], 8
add eax, 1
add esp, 0x10
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x2c], eax
jl 0x57f430
mov ebx, dword [ebx + 4]
add dword [esp + 0x28], 1
test ebx, ebx
jne 0x57f410
jmp 0x580228
mov edx, str.case_sensitive_like
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f5dc
test esi, esi
je 0x580228
push esi
call fcn.0057df10
add esp, 4
mov esi, ebx
and eax, 1
push eax
call fcn.00578440
add esp, 4
jmp 0x580228
mov edx, str.integrity_check
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x57fa9f
mov edx, str.quick_check
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x57fa9f
mov edx, str.encoding
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f775
test esi, esi
jne 0x57f6f9
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
push 1
mov edi, ebp
call fcn.0055dfb0
add esp, 4
push esi
push str.encoding
push esi
push esi
mov ecx, ebp
call fcn.0055e030
push esi
push 1
push esi
push 0x5e
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [esp + 0x78]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
movzx ecx, byte [eax + 0x4d]
mov ebx, dword [ecx*8 + 0x6187c8]
mov ecx, dword [ebp + 4]
mov edi, dword [ebp]
add esp, 0x20
test ecx, ecx
je 0x57f6d9
cmp byte [edi + 0x1e], 0
jne 0x57f6d9
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
xor eax, eax
cmp ebx, eax
mov dword [esi + 0x10], eax
jne 0x57f6be
push eax
push 1
mov dword [esi + 0x10], eax
mov byte [esi + 1], al
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
jmp 0x580225
push 0
push 1
push 1
push 0x10
mov eax, ebp
mov dword [esi + 0x10], ebx
mov byte [esi + 1], 0xfe
call fcn.0055cbe0
jmp 0x580225
mov ecx, ebx
mov eax, 0xfffffffe
call fcn.0055cf70
push 0
push 1
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
jmp 0x580225
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0xc]
movzx eax, word [ecx + 0x4e]
test al, 1
je 0x57f70f
test al, 4
je 0x580228
mov edx, dword [str.UTF8]
test edx, edx
mov edi, 0x6187c8
je 0x57f75e
mov edi, edi
mov ecx, esi
call fcn.00545600
test eax, eax
je 0x57f737
mov edx, dword [edi + 8]
add edi, 8
test edx, edx
jne 0x57f720
jmp 0x57f75e
mov al, byte [edi + 4]
test al, al
movzx eax, al
jne 0x57f746
mov eax, 2
mov edx, dword [esp + 0x58]
mov ecx, dword [edx]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x4d], al
cmp dword [edi], 0
jne 0x580228
mov edi, dword [esp + 0x58]
push esi
push str.unsupported_encoding:__s
call fcn.005454f0
add esp, 8
jmp 0x580228
mov edx, str.schema_version
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x57f988
mov edx, str.user_version
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x57f988
mov edx, str.freelist_count
mov ecx, edi
call fcn.00545600
test eax, eax
je 0x57f988
mov edx, str.compile_options
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f837
push 1
mov edi, ebp
xor esi, esi
call fcn.0055dfb0
mov edx, dword [esp + 0x5c]
add esp, 4
push esi
push str.compile_option
push esi
push esi
mov ecx, ebp
mov dword [edx + 0x48], 1
call fcn.0055e030
push esi
call fcn.00540920
add esp, 0x14
test eax, eax
je 0x580228
lea ebx, [ebx]
push 0
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 1]
mov edi, ebp
add esi, 1
call fcn.0055ccb0
push 0
push 1
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
push esi
call fcn.00540920
add esp, 0x24
test eax, eax
jne 0x57f800
jmp 0x580228
mov edx, str.wal_checkpoint
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x57f92e
mov eax, dword [esp + 0x60]
cmp dword [eax], 0
je 0x57f85e
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
jmp 0x57f866
mov dword [esp + 0x34], 0xa
test esi, esi
mov dword [esp + 0x2c], 0
je 0x57f8a4
mov edx, str.full
mov ecx, esi
call fcn.00545600
test eax, eax
jne 0x57f88c
mov dword [esp + 0x2c], 1
jmp 0x57f8a4
mov edx, str.restart
mov ecx, esi
call fcn.00545600
test eax, eax
jne 0x57f8a4
mov dword [esp + 0x2c], 2
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
push 3
mov edi, ebp
call fcn.0055dfb0
mov edx, dword [esp + 0x5c]
add esp, 4
push 0
push str.busy
push 0
push 0
mov ecx, ebp
mov dword [edx + 0x48], 3
call fcn.0055e030
push 0
push 0x6309d0
push 0
push 1
mov ecx, ebp
call fcn.0055e030
push 0
push str.checkpointed
push 0
push 2
mov ecx, ebp
call fcn.0055e030
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
push 1
push eax
push ecx
push 0x76
mov eax, ebp
call fcn.0055cbe0
add esp, 0x40
push 0
push 3
push 1
push 0x10
mov eax, ebp
call fcn.0055cbe0
jmp 0x580225
mov edx, str.wal_autocheckpoint
mov ecx, edi
call fcn.00545600
test eax, eax
jne 0x580228
test esi, esi
je 0x57f957
mov ecx, esi
call fcn.00545e20
push eax
push ebx
call fcn.00596bb0
add esp, 8
cmp dword [ebx + 0xc0], 0x596b70
jne 0x57f96b
mov ebx, dword [ebx + 0xc4]
jmp 0x57f96d
xor ebx, ebx
mov eax, ebx
cdq
push edx
push eax
mov eax, dword [esp + 0x60]
push str.wal_autocheckpoint
call fcn.0057e120
add esp, 0xc
jmp 0x580228
mov ebx, dword [esp + 0x18]
mov ecx, ebx
mov eax, ebp
call fcn.0055d540
movsx eax, byte [edi]
add eax, 0xffffffba
cmp eax, 0x2d
ja case.0x57f9a7.71
movzx edx, byte [eax + 0x580288]
jmp dword [edx*4 + 0x58027c]
mov dword [esp + 0x58], 0
jmp 0x57f9ca
mov dword [esp + 0x58], 1
jmp 0x57f9ca
mov dword [esp + 0x58], 6
test esi, esi
je 0x57fa42
cmp dword [esp + 0x58], 0
je 0x57fa42
push 0x6187bc
push 3
mov eax, ebp
call fcn.0055ce90
mov edi, eax
add esp, 8
cmp dword [ebp + 0x1c], edi
jle 0x57f9f7
mov ecx, dword [ebp + 4]
lea eax, [edi + edi*4]
mov dword [ecx + eax*4 + 4], ebx
mov ecx, esi
call fcn.00545e20
lea ecx, [edi + 1]
cmp dword [ebp + 0x1c], ecx
jle 0x57fa10
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 4]
mov dword [ecx + edx*4 + 4], eax
lea eax, [edi + 2]
cmp dword [ebp + 0x1c], eax
jle 0x580228
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebx
cmp dword [ebp + 0x1c], eax
jle 0x580228
mov ecx, dword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov dword [eax + edx*4 + 8], ecx
jmp 0x580228
push 0x618810
push 3
mov eax, ebp
call fcn.0055ce90
add esp, 8
cmp dword [ebp + 0x1c], eax
jle 0x57fa62
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebx
add eax, 1
cmp dword [ebp + 0x1c], eax
jle 0x57fa87
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebx
cmp dword [ebp + 0x1c], eax
jle 0x57fa87
mov ecx, dword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov dword [eax + edx*4 + 0xc], ecx
push 1
mov edi, ebp
call fcn.0055dfb0
mov edx, dword [esp + 0x24]
add esp, 4
push 0xffffffffffffffff
push edx
jmp 0x58021a
xor eax, eax
mov ecx, edi
cmp byte [ecx], 0x71
mov edi, dword [esp + 0x58]
sete al
mov dword [esp + 0x44], eax
call fcn.00580a30
test eax, eax
jne 0x58025d
mov edx, edi
push 1
mov edi, ebp
mov dword [edx + 0x48], 6
call fcn.0055dfb0
add esp, 4
push 0
push str.integrity_check
push 0
push 0
mov ecx, ebp
call fcn.0055e030
add esp, 0x10
test esi, esi
mov edi, 0x64
mov dword [esp + 0x24], edi
je 0x57fb0e
lea eax, [esp + 0x24]
push eax
push esi
call fcn.00545d50
add esp, 8
cmp dword [esp + 0x24], 0
jg 0x57fb0e
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x24]
push 0
push 1
push ecx
push 7
mov eax, ebp
call fcn.0055cbe0
add esp, 0x10
cmp dword [ebx + 4], 0
mov dword [esp + 0x28], 0
jle 0x580117
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
push edx
xor edi, edi
call fcn.00574560
add esp, 4
push edi
push edi
push 1
push 0x71
mov eax, ebp
call fcn.0055cbe0
push edi
push edi
mov esi, eax
push edi
push 6
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 0x1c]
add esp, 0x20
cmp eax, esi
jle 0x57fb7f
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax + 0xc]
add eax, 8
mov dword [esp + 0x40], eax
mov eax, dword [eax + 8]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x57fbf5
lea esp, [esp]
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 8]
mov ecx, dword [esi + 0x14]
push 0
lea eax, [edi + 2]
push eax
push ecx
push 7
mov eax, ebp
call fcn.0055cbe0
mov esi, dword [esi + 0x10]
add esp, 0x10
add edi, 1
test esi, esi
je 0x57fbe7
mov eax, dword [esi + 0x14]
push 0
lea edx, [edi + 2]
push edx
push eax
push 7
mov eax, ebp
call fcn.0055cbe0
mov esi, dword [esi + 0x20]
add esp, 0x10
add edi, 1
test esi, esi
jne 0x57fbc7
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x57fba0
mov ecx, dword [esp + 0x58]
lea eax, [edi + 4]
cmp dword [ecx + 0x48], eax
jge 0x57fc04
mov dword [ecx + 0x48], eax
push 1
push edi
push 2
push 0x68
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 4]
add esp, 0x10
test eax, eax
je 0x57fc2a
mov ecx, dword [ebp + 0x1c]
lea edx, [ecx + ecx*4]
mov cl, byte [esp + 0x28]
mov byte [eax + edx*4 - 0x11], cl
push 0
push 0
push 2
push 0x49
mov eax, ebp
call fcn.0055cbe0
mov edx, dword [ebx + 8]
add esp, 0x10
push 0xffffffffffffffff
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [eax + edx]
push ecx
push str._in_database__s__n
mov esi, ebx
call fcn.00544920
add esp, 0xc
push eax
xor eax, eax
push 0
push 0x5e
lea ecx, [eax + 3]
mov edi, ebp
call fcn.0055ccb0
push 1
push 4
push 2
push 0xd
mov eax, ebp
call fcn.0055cbe0
push 2
push 3
push 4
push 0x5b
mov eax, ebp
call fcn.0055cbe0
push 0
push 1
push 2
push 0x10
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 0x1c]
add esp, 0x40
cmp eax, dword [esp + 0x18]
jle 0x57fcb5
mov ecx, dword [esp + 0x18]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 4]
mov dword [ecx + edx*4 + 8], eax
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x5800fe
jmp 0x57fcd4
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x44], 0
jne 0x5800fe
mov eax, dword [eax + 8]
cmp dword [eax + 0x10], 0
mov dword [esp + 0x40], eax
je 0x5800e8
push 0
push 0
push 1
push 0x71
mov eax, ebp
call fcn.0055cbe0
push 0
push 0
mov esi, eax
push 0
push 6
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 0x1c]
add esp, 0x20
cmp eax, esi
jle 0x57fd24
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
push 0x26
push 1
push esi
push eax
call fcn.0057cfa0
push 0
push 2
push 0
push 7
mov eax, ebp
call fcn.0055cbe0
push 0
push 0
push 1
push 0x41
mov eax, ebp
call fcn.0055cbe0
push 0
push 1
mov dword [esp + 0x84], eax
push 2
push 0x14
mov eax, ebp
call fcn.0055cbe0
mov ebx, dword [esi + 0x10]
add esp, 0x40
test ebx, ebx
je 0x57ff1e
mov dword [esp + 0x30], 2
mov ecx, dword [esp + 0x58]
push 0
push 3
push 1
push ebx
push ecx
call fcn.00575ea0
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x44]
add esp, 0x14
add edx, 1
push edx
push ecx
push 0x32
xor ecx, ecx
mov edi, ebp
call fcn.0055cce0
add esp, 0xc
mov dword [esp + 0x48], eax
push 0x618768
push 0xb
mov eax, ebp
call fcn.0055ce90
mov ecx, dword [ebp + 4]
mov edi, dword [ebp]
mov esi, eax
add esp, 8
test ecx, ecx
mov dword [esp + 0x18], esi
lea eax, [esi + 1]
je 0x57fe0b
cmp byte [edi + 0x1e], 0
jne 0x57fe0b
test eax, eax
jge 0x57fde7
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
mov dword [esi + 0x10], 0x630900
mov byte [esi + 1], 0xfe
mov esi, dword [esp + 0x18]
jmp 0x57fe1a
mov ecx, 0x630900
mov eax, 0xfffffffe
call fcn.0055cf70
mov ecx, dword [ebp + 4]
test ecx, ecx
mov edi, dword [ebp]
lea eax, [esi + 3]
je 0x57fe5a
cmp byte [edi + 0x1e], 0
jne 0x57fe5a
test eax, eax
jge 0x57fe37
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
mov dword [esi + 0x10], str._missing_from_index
mov byte [esi + 1], 0xfe
mov esi, dword [esp + 0x18]
jmp 0x57fe69
mov ecx, str._missing_from_index
mov eax, 0xfffffffe
call fcn.0055cf70
mov ecx, dword [ebx]
mov edi, dword [ebp]
lea eax, [esi + 4]
mov esi, dword [ebp + 4]
test esi, esi
mov dword [esp + 0x34], ecx
je 0x57feda
cmp byte [edi + 0x1e], 0
jne 0x57feda
test eax, eax
jge 0x57fe8c
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea ecx, [eax + eax*4]
movsx eax, byte [esi + ecx*4 + 1]
lea esi, [esi + ecx*4]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
cmp dword [esp + 0x34], 0
mov dword [esi + 0x10], 0
jne 0x57feba
mov dword [esi + 0x10], 0
mov byte [esi + 1], 0
jmp 0x57fee1
mov ecx, dword [esp + 0x34]
call fcn.00545410
mov edx, dword [ebp]
push ecx
mov edi, eax
call fcn.005437c0
add esp, 4
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xff
jmp 0x57fee1
xor eax, eax
call fcn.0055cf70
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x1c]
add eax, 9
cmp ecx, eax
jle 0x57fef9
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov dword [eax + edx*4 + 8], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x48]
cmp eax, ecx
jle 0x57ff0e
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov ebx, dword [ebx + 0x20]
add dword [esp + 0x30], 1
test ebx, ebx
jne 0x57fd81
mov esi, dword [esp + 0x4c]
push 0
lea eax, [esi + 1]
push eax
push 1
push 0x43
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 0x1c]
add esp, 0x10
cmp eax, esi
jle 0x57ff47
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 0x30], eax
je 0x5800e8
mov edi, 2
mov dword [esp + 0x34], edi
jmp 0x57ff69
mov edi, dword [esp + 0x34]
push 0
push 0
push 1
push 0x71
mov eax, ebp
call fcn.0055cbe0
push 0
push 0
mov esi, eax
push 0
push 6
mov eax, ebp
call fcn.0055cbe0
mov eax, dword [ebp + 0x1c]
add esp, 0x20
cmp eax, esi
jle 0x57ff9d
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
push 0x618794
push 0xa
mov eax, ebp
call fcn.0055ce90
mov ecx, eax
lea eax, [ecx + 1]
add esp, 8
cmp dword [ebp + 0x1c], eax
mov dword [esp + 0x18], ecx
jle 0x57ffd8
mov esi, dword [ebp + 4]
lea edx, [eax + eax*4]
mov dword [esi + edx*4 + 4], edi
cmp dword [ebp + 0x1c], eax
jle 0x57ffd8
mov esi, dword [ebp + 4]
lea edx, [ecx + 4]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 8], edx
lea eax, [ecx + 3]
cmp dword [ebp + 0x1c], eax
jle 0x57fffc
mov esi, dword [ebp + 4]
lea edx, [eax + eax*4]
mov dword [esi + edx*4 + 4], edi
cmp dword [ebp + 0x1c], eax
jle 0x57fffc
mov esi, dword [ebp + 4]
lea edx, [ecx + 2]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 8], edx
mov edx, dword [ebp + 0x1c]
lea eax, [ecx + 4]
cmp edx, eax
jle 0x580010
mov esi, dword [ebp + 4]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 8], edx
mov edi, dword [ebp]
lea eax, [ecx + 6]
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x58004d
cmp byte [edi + 0x1e], 0
jne 0x58004d
test eax, eax
jge 0x58002d
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
mov dword [esi + 0x10], str.wrong__of_entries_in_index
mov byte [esi + 1], 0xfe
jmp 0x58005c
mov ecx, str.wrong__of_entries_in_index
mov eax, 0xfffffffe
call fcn.0055cf70
mov eax, dword [esp + 0x30]
mov ebx, dword [eax]
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
add eax, 7
test esi, esi
je 0x5800c7
cmp byte [edi + 0x1e], 0
jne 0x5800c7
test eax, eax
jge 0x580083
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea ecx, [eax + eax*4]
movsx eax, byte [esi + ecx*4 + 1]
lea esi, [esi + ecx*4]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
test ebx, ebx
mov dword [esi + 0x10], 0
jne 0x5800a9
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x5800d0
mov ecx, ebx
call fcn.00545410
mov edx, dword [ebp]
push ebx
mov edi, eax
call fcn.005437c0
add esp, 4
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xff
jmp 0x5800d0
mov ecx, ebx
xor eax, eax
call fcn.0055cf70
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x20]
add dword [esp + 0x34], 1
test eax, eax
mov dword [esp + 0x30], eax
jne 0x57ff65
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
jne 0x57fcd0
mov eax, dword [esp + 0x28]
add dword [esp + 0x2c], 0x10
add eax, 1
cmp eax, dword [ebx + 4]
mov dword [esp + 0x28], eax
jl 0x57fb3d
push 0x618758
push 4
mov eax, ebp
call fcn.0055ce90
add esp, 8
cmp dword [ebp + 0x1c], eax
jle 0x58013d
mov ecx, dword [esp + 0x24]
mov esi, dword [ebp + 4]
neg ecx
lea edx, [eax + eax*4]
mov dword [esi + edx*4 + 8], ecx
mov edx, dword [ebp + 0x1c]
lea ecx, [eax + 1]
cmp edx, ecx
jle 0x580151
mov esi, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*4 + 8], edx
mov ecx, dword [ebp + 4]
mov edi, dword [ebp]
add eax, 2
test ecx, ecx
je 0x580191
cmp byte [edi + 0x1e], 0
jne 0x580191
test eax, eax
jge 0x58016e
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + 0x10]
call fcn.0055cf70
mov dword [esi + 0x10], 0x630940
mov byte [esi + 1], 0xfe
jmp 0x580228
mov ecx, 0x630940
mov eax, 0xfffffffe
call fcn.0055cf70
jmp 0x580228
mov edi, dword [esp + 0x58]
call fcn.00580a30
test eax, eax
jne 0x58025d
mov ebx, dword [esp + 0x18]
push ebx
mov eax, edi
call fcn.00574560
add dword [edi + 0x48], 1
mov eax, dword [esp + 0x24]
mov edi, dword [edi + 0x48]
add esp, 4
cmp byte [eax], 0x70
jne 0x5801e0
push 0
push edi
push ebx
push 0x86
jmp 0x5801ef
mov ecx, esi
call fcn.00545e20
push eax
push edi
push ebx
push 0x87
mov eax, ebp
call fcn.0055cbe0
add esp, 0x10
push 0
push 1
push edi
push 0x10
mov eax, ebp
call fcn.0055cbe0
push 1
mov edi, ebp
call fcn.0055dfb0
mov ecx, dword [esp + 0x34]
add esp, 0x14
push 0xffffffffffffffff
push ecx
push 0
push 0
mov ecx, ebp
call fcn.0055e030
add esp, 0x10
mov ebx, dword [esp + 0x38]
cmp byte [ebx + 0x1c], 0
je 0x580259
mov eax, dword [ebx + 0xc]
mov edx, eax
shr edx, 0x16
shr eax, 0x15
and edx, 1
and eax, 1
push edx
push eax
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 9]
mov eax, dword [eax + 4]
push ecx
call fcn.00552ee0
add esp, 0xc
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
push edx
push ebx
call fcn.00543400
push esi
push ebx
call fcn.00543400
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret