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

Disassembly:
sub esp, 0x6c
push ebx
mov ebx, dword [esp + 0x74]
push esi
mov esi, dword [ebx]
push edi
mov edi, dword [ebx + 8]
mov dword [esp + 0xc], esi
test edi, edi
jne 0x5176ba
push ebx
call fcn.004d6270
mov edi, eax
add esp, 4
mov dword [ebx + 8], eax
test edi, edi
je 0x51769d
push 0
push 0
push 0
push 0x9f
push edi
call fcn.004cf760
add esp, 0x14
cmp dword [ebx + 0x19c], 0
jne 0x5176b2
mov eax, dword [ebx]
test byte [eax + 0x3c], 8
jne 0x5176b2
mov byte [ebx + 0x17], 1
test edi, edi
je 0x519895
mov ecx, dword [esp + 0x80]
or dword [edi + 0x58], 0x10
mov eax, dword [esp + 0x84]
push ebp
push ecx
push ebx
lea ecx, [esp + 0x50]
mov dword [ebx + 0x48], 2
call fcn.004e41e0
mov ebp, eax
add esp, 8
mov dword [esp + 0x3c], ebp
test ebp, ebp
jl 0x519894
mov ecx, dword [esi + 0x10]
shl eax, 4
add ecx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], ecx
cmp ebp, 1
jne 0x517714
mov eax, ebx
call fcn.00508a60
test eax, eax
jne 0x519894
mov ecx, dword [esp + 0x48]
push esi
call fcn.004d2680
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x519894
cmp dword [esp + 0x90], 0
je 0x517754
mov edx, dword [esp + 0x8c]
push edx
push 0x590e7c
call fcn.004e0090
add esp, 8
mov dword [esp + 0x20], eax
mov esi, eax
jmp 0x51776c
mov ecx, dword [esp + 0x8c]
mov eax, esi
push eax
call fcn.004d2680
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x88]
cmp dword [ecx + 4], 0
jbe 0x517785
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov dword [esp + 0x18], eax
jmp 0x51778d
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
push esi
push edx
push 0x13
mov eax, ebx
call fcn.004e4090
add esp, 0x10
test eax, eax
jne 0x51987a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], esi
mov dword [eax + 0x1c4], ecx
lea ecx, [esp + 0x6c]
push ecx
push 0xe
push edx
push eax
call fcn.004d5890
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
jne 0x51780b
mov eax, dword [esp + 0x6c]
push str.result
mov ecx, edi
call fcn.004dd5e0
mov eax, dword [esp + 0x70]
push eax
call fcn.004bf5d0
add esp, 8
jmp 0x51987a
cmp dword [esp + 0x40], 0xc
je 0x517843
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x517834
push eax
push 0x5970d8
mov edi, ebx
call fcn.004e0360
mov ecx, dword [esp + 0x74]
push ecx
call fcn.004bf5d0
add esp, 0xc
mov edx, dword [esp + 0x40]
inc dword [ebx + 0x40]
mov dword [ebx + 0xc], edx
jmp 0x51987a
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0x3a
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x1c]
cdq
sub eax, edx
sar eax, 1
lea edx, [eax + eax*2]
mov dword [esp + 0x38], eax
mov eax, dword [edx*4 + 0x58b580]
push eax
push ecx
call fcn.004bf990
add esp, 8
test eax, eax
je 0x5178a7
jge 0x51788f
mov edx, dword [esp + 0x38]
dec edx
mov dword [esp + 0x2c], edx
jmp 0x517898
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x28], ecx
jle 0x517853
jmp 0x51987a
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x28], edx
jg 0x51987a
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*2]
test byte [eax*4 + 0x58b585], 1
lea eax, [eax*4 + 0x58b580]
mov dword [esp + 0x28], eax
je 0x5178e4
mov esi, ebx
call fcn.004c8690
test eax, eax
jne 0x51987a
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx + 4]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp ecx, 0x24
ja case.0x5178fd.3
jmp dword [ecx*4 + 0x51989c]
mov ecx, ebp
mov eax, edi
call fcn.004c4a80
test esi, esi
jne 0x517966
lea edx, [esp + 0x80]
push edx
push 1
push edi
mov dword [esp + 0x8c], str.cache_size
call fcn.004dd4c0
add dword [ebx + 0x48], 2
push 9
push edi
mov eax, 0x58b88c
call fcn.004cf840
push edi
mov edx, ebp
mov esi, eax
call fcn.004cf8f0
lea eax, [esi + 1]
push edi
call fcn.004cf8f0
lea eax, [esi + 6]
push edi
mov edx, 0x7d0
call fcn.004cf8f0
add esp, 0x20
jmp 0x51987a
mov ecx, esi
call fcn.004cc370
call fcn.004c0770
push 0
mov ecx, ebp
mov edx, ebx
mov esi, eax
call fcn.00508bd0
push 0
push 1
push esi
push 0x17
push edi
call fcn.004cf760
push 1
push 3
push ebp
push 0x35
push edi
call fcn.004cf760
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0xc]
mov dword [ecx + 0x50], esi
mov edx, dword [eax + 0xc]
mov ecx, dword [edx + 0x50]
mov eax, dword [eax + 4]
push ecx
call fcn.004cecf0
add esp, 0x30
jmp 0x51987a
mov ebx, dword [eax + 4]
test esi, esi
jne 0x5179e7
test ebx, ebx
je 0x5179d8
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x20]
cdq
push edx
push eax
push str.page_size
jmp 0x519872
xor eax, eax
cdq
push edx
push eax
push str.page_size
jmp 0x519872
mov ecx, esi
call fcn.004cc370
mov esi, dword [esp + 0x10]
push 0
push 0xffffffffffffffff
mov dword [esi + 0x48], eax
push eax
mov eax, ebx
call fcn.004cee70
add esp, 0xc
cmp eax, 7
jne 0x51987a
mov byte [esi + 0x41], 1
jmp 0x51987a
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x80], 0xffffffff
test esi, esi
je 0x517a4b
push 0
push 1
push esi
call fcn.004d3420
mov edx, dword [esp + 0x1c]
xor ecx, ecx
add esp, 0xc
test al, al
setne cl
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x88]
cmp dword [eax + 4], 0
jne 0x517a90
cmp dword [esp + 0x80], 0
jl 0x517a90
xor esi, esi
cmp dword [edx + 0x14], esi
jle 0x517a90
mov ebp, dword [esp + 0x10]
xor ebx, ebx
nop
mov ecx, dword [esp + 0x80]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + ebx + 4]
push ecx
call fcn.004cefc0
inc esi
add esp, 4
add ebx, 0x10
cmp esi, dword [ebp + 0x14]
jl 0x517a70
mov eax, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x4c]
call fcn.004cefc0
cdq
push edx
push eax
push str.secure_delete
call fcn.004dd520
add esp, 0x10
jmp 0x51987a
mov ecx, ebp
mov edx, ebx
call fcn.00508af0
inc dword [ebx + 0x48]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [ecx]
cmp byte [edx + 0x58a7d0], 0x70
mov ebx, dword [ebx + 0x48]
jne 0x517ae0
push 0
push ebx
push ebp
push 0x9d
jmp 0x517af4
mov ecx, esi
call fcn.004cc370
call fcn.004c0770
push eax
push ebx
push ebp
push 0x9e
push edi
call fcn.004cf760
add esp, 0x14
push 0
push 1
push ebx
push 0x22
push edi
call fcn.004cf760
push 1
push edi
call fcn.004d6600
mov eax, dword [esp + 0x38]
push 0xffffffffffffffff
push eax
push 0
push 0
mov ecx, edi
call fcn.004daba0
add esp, 0x2c
jmp 0x51987a
mov esi, dword [esp + 0x20]
mov dword [esp + 0x80], str.normal
call fcn.004c8610
mov ecx, dword [esp + 0x88]
mov edx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x517b93
cmp edx, 0xffffffff
jne 0x517b5f
mov edx, dword [esp + 0x10]
movzx eax, byte [edx + 0x42]
jmp 0x517ba4
test eax, eax
jne 0x517b93
mov esi, dword [esp + 0x10]
mov ebx, 2
cmp dword [esi + 0x14], ebx
jle 0x517b90
mov ebp, 0x20
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + ebp + 4]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
call fcn.004ce410
inc ebx
add ebp, 0x10
cmp ebx, dword [esi + 0x14]
jl 0x517b76
mov byte [esi + 0x42], dl
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call fcn.004ce410
cmp eax, 1
jne 0x517bb4
mov dword [esp + 0x80], str.exclusive
mov eax, dword [esp + 0x80]
push str.locking_mode
mov ecx, edi
call fcn.004dd5e0
add esp, 4
jmp 0x51987a
lea edx, [esp + 0x80]
push edx
push 1
push edi
mov dword [esp + 0x8c], str.journal_mode
call fcn.004dd4c0
add esp, 0xc
test esi, esi
jne 0x517bfe
mov dword [esp + 0x80], 0xffffffff
jmp 0x517c42
mov eax, esi
call fcn.004bf8c0
mov dword [esp + 0x48], eax
xor ebx, ebx
jmp 0x517c10
cmp ebx, 6
je 0x517bf1
mov eax, dword [ebx*4 + 0x58b874]
test eax, eax
je 0x517bf1
mov ecx, dword [esp + 0x48]
push ecx
push eax
push esi
call fcn.004bfa00
add esp, 0xc
test eax, eax
je 0x517c36
inc ebx
jmp 0x517c10
mov dword [esp + 0x80], ebx
cmp ebx, 0xffffffff
jne 0x517c58
mov eax, dword [esp + 0x88]
cmp dword [eax + 4], 0
jne 0x517c58
xor ebp, ebp
mov dword [eax + 4], 1
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x14]
sub esi, 1
js 0x517cb6
mov ebx, esi
shl ebx, 4
lea esp, [esp]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
cmp dword [ecx + ebx + 4], 0
je 0x517cae
cmp esi, ebp
je 0x517c8f
mov edx, dword [esp + 0x88]
cmp dword [edx + 4], 0
jne 0x517cae
mov ecx, esi
mov eax, edi
call fcn.004c4a80
mov eax, dword [esp + 0x80]
push eax
push 1
push esi
push 0xa
push edi
call fcn.004cf760
add esp, 0x14
dec esi
sub ebx, 0x10
test esi, esi
jge 0x517c70
push 0
push 1
push 1
push 0x22
push edi
call fcn.004cf760
add esp, 0x14
jmp 0x51987a
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
mov ebx, dword [edx]
or ecx, 0xffffffff
mov eax, 0xfffffffe
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
test esi, esi
je 0x517d15
lea eax, [esp + 0x60]
push eax
push esi
call fcn.004cc0e0
mov ecx, dword [esp + 0x6c]
add esp, 8
cmp ecx, 0xffffffff
jg 0x517d11
jl 0x517d0a
mov eax, dword [esp + 0x60]
cmp eax, 0xffffffff
jae 0x517d15
or eax, 0xffffffff
or ecx, eax
jmp 0x517d15
mov eax, dword [esp + 0x60]
push ecx
push eax
mov ecx, ebx
call fcn.004ce440
push edx
push eax
push str.journal_size_limit
call fcn.004dd520
add esp, 0x14
jmp 0x51987a
mov eax, dword [eax + 4]
mov dword [esp + 0x80], eax
test esi, esi
jne 0x517d52
call fcn.004cf0b0
cdq
push edx
push eax
push str.auto_vacuum
jmp 0x519872
mov esi, dword [esp + 0x20]
call fcn.004d34e0
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x80]
push ebx
mov byte [ecx + 0x43], bl
call fcn.004cf030
add esp, 4
test eax, eax
jne 0x51987a
cmp ebx, 1
je 0x517d8a
cmp ebx, 2
jne 0x51987a
push 6
push edi
mov eax, 0x58b8b4
call fcn.004cf840
push edi
mov edx, ebp
mov esi, eax
call fcn.004cf8f0
lea eax, [esi + 1]
push edi
call fcn.004cf8f0
lea edx, [esi + 4]
lea eax, [esi + 2]
push edi
call fcn.004cf920
lea edx, [ebx - 1]
push edi
lea eax, [esi + 4]
call fcn.004cf8f0
lea eax, [esi + 5]
push edi
mov edx, ebp
call fcn.004cf8f0
add esp, 0x1c
mov ecx, ebp
mov eax, edi
call fcn.004c4a80
jmp 0x51987a
test esi, esi
je 0x517e02
lea edx, [esp + 0x80]
push edx
push esi
call fcn.004cc1f0
add esp, 8
test eax, eax
je 0x517e02
mov esi, dword [esp + 0x80]
test esi, esi
jg 0x517e07
mov esi, SysReAllocString
push 0
mov ecx, ebp
mov edx, ebx
call fcn.00508bd0
push 0
push 1
push esi
push 0x17
push edi
call fcn.004cf760
push 0
push 0
push ebp
push 0x93
push edi
call fcn.004cf760
push 0
push 0
push 1
push 0x22
push edi
mov esi, eax
call fcn.004cf760
add esp, 0x40
push 0
push 0xffffffffffffffff
push 1
push 0x26
push edi
call fcn.004cf760
push 0
push esi
push 1
push 0x8b
push edi
call fcn.004cf760
add esp, 0x28
mov ecx, esi
mov eax, edi
call fcn.004cf9b0
jmp 0x51987a
test esi, esi
jne 0x517e8c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x50]
cdq
push edx
push eax
push str.cache_size
jmp 0x519872
mov ecx, esi
call fcn.004cc370
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.004cecf0
add esp, 4
jmp 0x51987a
test esi, esi
jne 0x517eeb
test byte [edx + 0x18], 0x10
jne 0x517ecd
xor eax, eax
cdq
push edx
push eax
push str.cache_spill
jmp 0x519872
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
push 0
call fcn.004ced40
add esp, 4
cdq
push edx
push eax
push str.cache_spill
jmp 0x519872
lea ecx, [esp + 0x80]
push ecx
push esi
mov dword [esp + 0x88], 1
call fcn.004cc1f0
mov edi, dword [esp + 0x88]
add esp, 8
test eax, eax
je 0x517f22
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
push edi
call fcn.004ced40
add esp, 4
test edi, edi
setne al
mov ecx, esi
call fcn.004d34c0
test al, al
mov eax, dword [esp + 0x10]
je 0x517f48
or dword [eax + 0x18], 0x10
push eax
call fcn.004d3560
add esp, 4
jmp 0x51987a
and dword [eax + 0x18], 0xffffffef
push eax
call fcn.004d3560
add esp, 4
jmp 0x51987a
test esi, esi
je 0x51800c
lea eax, [esp + 0x60]
push eax
push esi
call fcn.004cc0e0
mov ecx, dword [esp + 0x6c]
add esp, 8
test ecx, ecx
jg 0x517f95
jl 0x517f81
cmp dword [esp + 0x60], 0
jae 0x517f95
mov ecx, dword [0x59bfc0]
mov dword [esp + 0x60], ecx
mov ecx, dword [0x59bfc4]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x88]
cmp dword [edx + 4], 0
mov eax, dword [esp + 0x10]
jne 0x517fb0
mov edx, dword [esp + 0x60]
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov esi, dword [eax + 0x14]
sub esi, 1
js 0x51800c
mov ecx, esi
shl ecx, 4
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x10]
mov eax, dword [edx + ecx + 4]
test eax, eax
je 0x517ffd
cmp esi, ebp
je 0x517fe4
mov edx, dword [esp + 0x88]
cmp dword [edx + 4], 0
jne 0x517ffd
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
push ecx
push edx
call fcn.004ced90
mov ecx, dword [esp + 0x88]
add esp, 8
dec esi
sub ecx, 0x10
mov dword [esp + 0x80], ecx
test esi, esi
jge 0x517fc4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x60]
push eax
push 0x12
push ecx
push edx
call fcn.004d5890
add esp, 0x10
test eax, eax
jne 0x518048
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
push ecx
push str.mmap_size
jmp 0x519872
cmp eax, 0xc
je 0x51987a
inc dword [ebx + 0x40]
mov dword [ebx + 0xc], eax
jmp 0x51987a
test esi, esi
jne 0x518075
mov edx, dword [esp + 0x10]
movzx eax, byte [edx + 0x40]
cdq
push edx
push eax
push str.temp_store
jmp 0x519872
mov eax, esi
mov edi, ebx
call fcn.005175f0
jmp 0x51987a
test esi, esi
jne 0x5180a0
mov eax, dword [0x5a2d30]
push str.temp_store_directory
mov ecx, edi
call fcn.004dd5e0
add esp, 4
jmp 0x51987a
cmp byte [esi], 0
je 0x5180e0
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x80]
push ecx
push 1
push esi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x5180cc
cmp dword [esp + 0x80], eax
jne 0x5180e0
push str.not_a_writable_directory
mov edi, ebx
call fcn.004e0360
add esp, 4
jmp 0x51987a
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x40], 1
ja 0x5180f1
mov eax, ebx
call fcn.005175a0
mov ecx, dword [0x5a2d30]
push ecx
call fcn.004bf5d0
add esp, 4
cmp byte [esi], 0
je 0x51811d
push esi
push 0x5970d8
call fcn.004e0140
add esp, 8
mov dword [0x5a2d30], eax
jmp 0x51987a
mov dword [0x5a2d30], 0
jmp 0x51987a
test esi, esi
jne 0x518149
mov eax, dword [0x5a2d34]
push str.data_store_directory
mov ecx, edi
call fcn.004dd5e0
add esp, 4
jmp 0x51987a
cmp byte [esi], 0
je 0x51817d
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x80]
push ecx
push 1
push esi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x5180cc
cmp dword [esp + 0x80], eax
je 0x5180cc
mov eax, dword [0x5a2d34]
push eax
call fcn.004bf5d0
add esp, 4
cmp byte [esi], 0
je 0x5181a8
push esi
push 0x5970d8
call fcn.004e0140
add esp, 8
mov dword [0x5a2d34], eax
jmp 0x51987a
mov dword [0x5a2d34], 0
jmp 0x51987a
test esi, esi
jne 0x5181d1
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 8]
dec eax
cdq
push edx
push eax
push str.synchronous
jmp 0x519872
cmp byte [edx + 0x3f], 0
jne 0x5181eb
push str.Safety_level_may_not_be_changed_inside_a_transaction
mov edi, ebx
call fcn.004e0360
add esp, 4
jmp 0x51987a
push 1
push 0
push esi
call fcn.004d3420
add esp, 0xc
inc eax
and eax, 3
jne 0x518203
mov eax, 1
mov edx, dword [esp + 0x14]
mov byte [edx + 8], al
mov eax, dword [esp + 0x10]
push eax
call fcn.004d3560
add esp, 4
jmp 0x51987a
mov ecx, dword [esp + 0x28]
test esi, esi
jne 0x51823f
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
and eax, dword [edx + 0x18]
neg eax
sbb eax, eax
neg eax
cdq
push edx
push eax
mov eax, dword [ecx]
push eax
jmp 0x519872
cmp byte [edx + 0x3f], 0
mov ebx, dword [ecx + 8]
jne 0x51824e
and ebx, 0xfff7ffff
xor ebp, ebp
push ebp
push 1
push esi
call fcn.004d3420
mov esi, dword [esp + 0x1c]
add esp, 0xc
test al, al
je 0x518269
or dword [esi + 0x18], ebx
jmp 0x518284
mov edx, ebx
not edx
and dword [esi + 0x18], edx
cmp ebx, 0x1000000
jne 0x518284
mov dword [esi + 0x200], ebp
mov dword [esi + 0x204], ebp
push ebp
push ebp
push ebp
push 0x94
push edi
call fcn.004cf760
push esi
call fcn.004d3560
add esp, 0x18
jmp 0x51987a
test esi, esi
je 0x51987a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
push esi
push ecx
call fcn.004c72f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x51987a
mov dword [esp + 0x80], 0
call fcn.004c7600
mov ecx, ebp
mov edx, ebx
mov dword [esp + 0x48], eax
mov dword [ebx + 0x48], 6
call fcn.00508af0
push 0x59cecc
push 6
push edi
call fcn.004dd4c0
push esi
mov eax, ebx
call fcn.005043f0
movsx ecx, word [esi + 0x22]
mov ebx, dword [esi + 4]
xor ebp, ebp
add esp, 0x10
mov dword [esp + 0x38], ebp
test ecx, ecx
jle 0x51987a
mov al, byte [ebx + 0x17]
test al, 2
je 0x518329
inc dword [esp + 0x80]
jmp 0x5183a1
test al, 1
jne 0x518331
xor eax, eax
jmp 0x518356
mov edx, dword [esp + 0x48]
mov eax, 1
test edx, edx
je 0x518356
cmp ecx, eax
jl 0x518356
mov edx, dword [edx + 4]
movsx ebp, word [edx]
cmp ebp, dword [esp + 0x38]
je 0x518356
inc eax
add edx, 2
cmp eax, ecx
jle 0x518345
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x518362
mov ecx, 0x59603e
mov edx, dword [ebx + 8]
mov ebp, dword [esp + 0x38]
push eax
xor eax, eax
cmp byte [ebx + 0x14], al
push edx
setne al
mov edx, ebp
sub edx, dword [esp + 0x88]
push eax
push ecx
mov ecx, dword [ebx]
push ecx
push edx
push str.issisi
push 1
mov eax, edi
call fcn.004d62d0
push 0
push 6
push 1
push 0x22
push edi
call fcn.004cf760
add esp, 0x34
movsx ecx, word [esi + 0x22]
inc ebp
add ebx, 0x18
cmp ebp, ecx
mov dword [esp + 0x38], ebp
jl 0x518316
jmp 0x51987a
mov edi, ebx
call fcn.004d8f30
mov ecx, ebp
mov edx, ebx
mov edi, eax
mov dword [ebx + 0x48], 4
call fcn.00508af0
push 0x59cee4
push 4
push edi
call fcn.004dd4c0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov ebx, dword [ecx + 0x10]
add esp, 0xc
test ebx, ebx
je 0x51987a
jmp 0x518400
mov esi, dword [ebx + 8]
mov ax, word [esi + 0x26]
call fcn.004c0880
push eax
mov ax, word [esi + 0x28]
call fcn.004c0880
mov edx, dword [esi]
push eax
push 0
push edx
push str.ssii
push 1
mov eax, edi
call fcn.004d62d0
push 0
push 4
push 1
push 0x22
push edi
call fcn.004cf760
mov esi, dword [esi + 8]
add esp, 0x2c
test esi, esi
je 0x518481
mov eax, dword [esi + 8]
mov ax, word [eax]
call fcn.004c0880
push eax
mov ax, word [esi + 0x30]
call fcn.004c0880
mov ecx, dword [esi]
push eax
push ecx
push 0x590e0c
push 2
mov eax, edi
call fcn.004d62d0
push 0
push 4
push 1
push 0x22
push edi
call fcn.004cf760
mov esi, dword [esi + 0x14]
add esp, 0x28
test esi, esi
jne 0x518442
mov ebx, dword [ebx]
test ebx, ebx
jne 0x518400
jmp 0x51987a
test esi, esi
je 0x51987a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push edx
push esi
call fcn.004c7370
mov esi, eax
add esp, 8
test esi, esi
je 0x51987a
mov eax, dword [esp + 0x28]
cmp dword [eax + 8], 0
je 0x5184d2
movzx ecx, word [esi + 0x34]
mov dword [esp + 0x80], ecx
mov dword [ebx + 0x48], 6
jmp 0x5184e4
movzx edx, word [esi + 0x32]
mov dword [esp + 0x80], edx
mov dword [ebx + 0x48], 3
mov eax, dword [esi + 0xc]
mov ecx, ebp
mov edx, ebx
mov dword [esp + 0x48], eax
call fcn.00508af0
mov ecx, dword [ebx + 0x48]
push 0x59cef4
push ecx
push edi
call fcn.004dd4c0
xor ebp, ebp
add esp, 0xc
cmp dword [esp + 0x80], ebp
jle 0x51987a
mov edx, dword [esi + 4]
movzx eax, word [edx + ebp*2]
test ax, ax
jge 0x518525
xor ecx, ecx
jmp 0x518535
mov edx, dword [esp + 0x48]
mov edx, dword [edx + 4]
movsx ecx, ax
lea ecx, [ecx + ecx*2]
mov ecx, dword [edx + ecx*8]
push ecx
cwde
push eax
push ebp
push 0x590e08
push 1
mov eax, edi
call fcn.004d62d0
mov ecx, dword [esp + 0x3c]
add esp, 0x14
cmp dword [ecx + 8], 0
je 0x518580
movzx edx, word [esi + 0x32]
mov ecx, dword [esi + 0x20]
xor eax, eax
cmp ebp, edx
mov edx, dword [ecx + ebp*4]
setl al
push eax
mov eax, dword [esi + 0x1c]
movzx ecx, byte [eax + ebp]
push edx
push ecx
push 0x590e04
push 4
mov eax, edi
call fcn.004d62d0
add esp, 0x14
mov edx, dword [ebx + 0x48]
push 0
push edx
push 1
push 0x22
push edi
call fcn.004cf760
inc ebp
add esp, 0x14
cmp ebp, dword [esp + 0x80]
jl 0x518515
jmp 0x51987a
test esi, esi
je 0x51987a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
push esi
push ecx
call fcn.004c72f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x51987a
mov edi, ebx
call fcn.004d8f30
mov ecx, ebp
mov edx, ebx
mov edi, eax
mov dword [ebx + 0x48], 5
call fcn.00508af0
push 0x59cf0c
push 5
push edi
call fcn.004dd4c0
mov esi, dword [esi + 8]
add esp, 0xc
xor ebx, ebx
test esi, esi
je 0x51987a
mov dword [esp + 0x60], 0x55d338
mov dword [esp + 0x64], 0x55d334
mov dword [esp + 0x68], 0x5894c4
lea esp, [esp]
mov eax, dword [esi + 0x38]
xor edx, edx
cmp dword [esi + 0x24], edx
setne dl
and eax, 3
mov ecx, dword [esp + eax*4 + 0x60]
mov eax, dword [esi]
push edx
xor edx, edx
cmp byte [esi + 0x36], dl
push ecx
setne dl
push edx
push eax
push ebx
push str.isisi
push 1
mov eax, edi
call fcn.004d62d0
push 0
push 5
push 1
push 0x22
push edi
call fcn.004cf760
mov esi, dword [esi + 0x14]
add esp, 0x30
inc ebx
test esi, esi
jne 0x518620
jmp 0x51987a
push 0x59cf20
push 3
push edi
mov dword [ebx + 0x48], 3
call fcn.004dd4c0
mov ebx, dword [esp + 0x1c]
xor esi, esi
add esp, 0xc
cmp dword [ebx + 0x14], esi
jle 0x51987a
xor ebp, ebp
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + ebp + 4]
lea edx, [ecx + ebp]
test eax, eax
je 0x5186cc
call fcn.004c4270
mov edx, dword [edx]
push eax
push edx
push esi
push 0x590df8
push 1
mov eax, edi
call fcn.004d62d0
push 0
push 3
push 1
push 0x22
push edi
call fcn.004cf760
add esp, 0x28
inc esi
add ebp, 0x10
cmp esi, dword [ebx + 0x14]
jl 0x518695
jmp 0x51987a
push 0x59cf2c
push 2
push edi
xor ebp, ebp
mov dword [ebx + 0x48], 2
call fcn.004dd4c0
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x1b4]
add esp, 0xc
test esi, esi
je 0x51987a
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push edx
push ebp
push 0x590df4
push 1
mov eax, edi
call fcn.004d62d0
push 0
push 2
push 1
push 0x22
push edi
inc ebp
call fcn.004cf760
mov esi, dword [esi]
add esp, 0x24
test esi, esi
jne 0x518705
jmp 0x51987a
test esi, esi
je 0x51987a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
push esi
push ecx
call fcn.004c72f0
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x51987a
mov edi, ebx
call fcn.004d8f30
mov edx, dword [esp + 0x3c]
mov esi, dword [edx + 0x10]
mov dword [esp + 0x40], eax
test esi, esi
je 0x51987a
mov ecx, ebp
mov edx, ebx
mov dword [esp + 0x80], 0
mov dword [ebx + 0x48], 8
call fcn.00508af0
mov eax, dword [esp + 0x40]
push 0x59cf34
push 8
push eax
call fcn.004dd4c0
mov ebp, dword [esp + 0x4c]
add esp, 0xc
jmp 0x5187b0
xor edi, edi
cmp dword [esi + 0x14], edi
jle 0x518820
lea ebx, [esi + 0x24]
lea ebx, [ebx]
mov al, byte [esi + 0x19]
push str.NONE
call fcn.004c8650
push eax
mov al, byte [esi + 0x1a]
call fcn.004c8650
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [ebx]
push ecx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*8]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x90]
push edx
push eax
push edi
push ecx
push str.iissssss
push 1
mov eax, ebp
call fcn.004d62d0
push 0
push 8
push 1
push 0x22
push ebp
call fcn.004cf760
inc edi
add esp, 0x3c
add ebx, 8
cmp edi, dword [esi + 0x14]
jl 0x5187c0
mov esi, dword [esi + 4]
inc dword [esp + 0x80]
test esi, esi
jne 0x5187b0
jmp 0x51987a
mov eax, dword [ebx + 0x48]
lea edx, [eax + 1]
add eax, 5
mov dword [esp + 0x2c], eax
inc eax
mov edi, ebx
mov dword [esp + 0x44], edx
mov dword [ebx + 0x48], eax
call fcn.004d8f30
push 0x59cf54
mov edi, eax
push 4
push edi
call fcn.004dd4c0
add esp, 0xc
mov ecx, ebp
mov edx, ebx
call fcn.00508af0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + edx + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x51987a
test esi, esi
je 0x5188a6
mov ecx, dword [esp + 0x18]
push ecx
push esi
push 0
mov eax, ebx
call fcn.004f1910
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
add esp, 0xc
xor eax, eax
jmp 0x5188af
mov ecx, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x518c48
cmp dword [ecx + 0x10], 0
je 0x518c48
mov esi, dword [esp + 0x24]
mov edx, dword [esi]
mov eax, dword [esi + 0x1c]
push edx
push 0
push eax
push ebp
push ebx
call fcn.004d2240
movsx ecx, word [esi + 0x22]
mov eax, dword [esp + 0x40]
inc eax
add eax, ecx
add esp, 0x14
cmp eax, dword [ebx + 0x48]
jle 0x5188ef
mov dword [ebx + 0x48], eax
push 0x37
push ebp
push 0
push ebx
mov eax, esi
call fcn.004f9730
mov edx, dword [esi]
mov eax, dword [esp + 0x54]
push edx
call fcn.004dab10
mov eax, dword [esi + 0x10]
add esp, 0x14
mov ecx, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], eax
test eax, eax
je 0x5189d5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 8]
push eax
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.004c72f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5189b6
mov ecx, dword [esi]
mov edx, dword [esi + 0x1c]
push ecx
push 0
push edx
push ebp
push ebx
mov dword [esp + 0x3c], 0
call fcn.004d2240
mov ecx, dword [esp + 0x44]
push 0
lea eax, [esp + 0x40]
push eax
push ecx
push esi
push ebx
call fcn.004e6870
add esp, 0x28
test eax, eax
jne 0x51987a
cmp dword [esp + 0x28], eax
jne 0x518994
mov edx, dword [esp + 0x14]
push 0x37
push ebp
push edx
push ebx
mov eax, esi
call fcn.004f9730
add esp, 0x10
jmp 0x5189b6
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x14]
push ebp
push eax
push ecx
push 0x37
push edi
call fcn.004cf760
add esp, 0x14
mov ecx, esi
mov eax, ebx
call fcn.004f8750
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 4]
inc dword [esp + 0x14]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x518923
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
cmp dword [ebx + 0x44], ecx
jge 0x5189dd
mov dword [ebx + 0x44], ecx
push 0
push 0
push 0
push 0x6e
push edi
call fcn.004cf760
mov ebx, dword [esi + 0x10]
add esp, 0x14
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], 1
test ebx, ebx
je 0x518c15
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
call fcn.004c72f0
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], ecx
cmp eax, ecx
je 0x518a49
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x2c]
push edx
push ebx
push eax
mov eax, dword [esp + 0x90]
push eax
call fcn.004e6870
add esp, 0x14
mov eax, edi
call fcn.004cf7f0
cmp dword [esp + 0x40], 0
mov ebp, eax
je 0x518b00
cmp dword [esp + 0x28], 0
jne 0x518b00
mov ecx, dword [esp + 0x24]
movsx edx, word [ecx + 0x20]
mov eax, dword [ebx + 0x24]
mov esi, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x40], eax
cmp eax, edx
je 0x518abe
push esi
push eax
push 0
push 0x30
push edi
call fcn.004cf760
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
push esi
push ecx
call fcn.004e8de0
push 0
push ebp
push esi
push 0x4c
push edi
call fcn.004cf760
mov edx, dword [edi + 0x20]
push 0
add edx, 3
push edx
push esi
push 0x27
push edi
call fcn.004cf760
add esp, 0x44
jmp 0x518ace
push 0
push esi
push 0
push 0x69
push edi
call fcn.004cf760
add esp, 0x14
mov eax, dword [esp + 0x14]
push esi
push 0
push eax
push 0x4a
push edi
call fcn.004cf760
push 0
push ebp
push 0
push 0xe
push edi
call fcn.004cf760
mov ecx, dword [edi + 0x20]
add esp, 0x28
sub ecx, 2
mov eax, edi
call fcn.004cf9b0
jmp 0x518bb3
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x38], 0
jle 0x518b69
mov esi, dword [esp + 0x2c]
lea ecx, [ebx + 0x24]
inc esi
mov dword [esp + 0x34], ecx
lea ebx, [ebx]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x518b31
mov edx, dword [esp + 0x38]
mov ecx, dword [eax + edx*4]
jmp 0x518b37
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [esp + 0x24]
push 0
push edx
push edi
mov eax, esi
call fcn.004f1150
push 0
push ebp
push esi
push 0x4c
push edi
call fcn.004cf760
mov eax, dword [esp + 0x58]
add dword [esp + 0x54], 8
inc eax
add esp, 0x20
inc esi
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x38], eax
jl 0x518b20
cmp dword [esp + 0x40], 0
je 0x518bb3
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
push eax
push ecx
call fcn.004d8b90
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + 0x14]
add esp, 4
push eax
mov eax, dword [esp + 0x34]
inc eax
push eax
push 0x32
push edi
mov eax, esi
call fcn.004d6430
mov edx, dword [esp + 0x28]
push 0
push edx
push 0x49
push edi
mov eax, esi
mov ecx, ebp
call fcn.004d6580
add esp, 0x24
mov esi, dword [esp + 0x44]
push 0
lea eax, [esi + 1]
push eax
push 0
push 0x69
push edi
call fcn.004cf760
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 8]
dec eax
push eax
push ecx
lea eax, [esi + 2]
push 0x590de4
push eax
mov eax, edi
call fcn.004d62d0
push 0
push 4
push esi
push 0x22
push edi
call fcn.004cf760
push ebp
mov ecx, edi
call fcn.004c4a30
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x4c]
add esp, 0x3c
call fcn.004bf680
mov ebx, dword [ebx + 4]
inc dword [esp + 0x14]
test ebx, ebx
jne 0x518a05
mov esi, dword [esp + 0x4c]
push 0
lea edx, [esi + 1]
push edx
push 0
push 8
push edi
call fcn.004cf760
add esp, 0x14
mov ecx, esi
mov eax, edi
call fcn.004cf9b0
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x80]
test eax, eax
jne 0x518884
jmp 0x51987a
test esi, esi
je 0x51987a
mov eax, dword [esp + 0x20]
push 0
push 1
push eax
call fcn.004d3420
mov esi, dword [esp + 0x1c]
xor ecx, ecx
test al, al
setne cl
push ecx
call fcn.004f9670
add esp, 0x10
jmp 0x51987a
mov edx, dword [esp + 0x1c]
movzx eax, byte [edx]
mov edx, dword [esp + 0x88]
xor ecx, ecx
cmp byte [eax + 0x58a7d0], 0x71
sete cl
cmp dword [edx], 0
mov dword [esp + 0x50], ecx
jne 0x518caf
mov dword [esp + 0x3c], 0xffffffff
lea eax, [esp + 0x4c]
push eax
push 1
push edi
mov dword [ebx + 0x48], 6
mov dword [esp + 0x58], str.integrity_check
call fcn.004dd4c0
add esp, 0xc
mov eax, 0x64
mov dword [esp + 0x38], eax
test esi, esi
je 0x518cfa
lea ecx, [esp + 0x38]
push ecx
push esi
call fcn.004cc1f0
mov eax, dword [esp + 0x40]
add esp, 8
test eax, eax
jg 0x518cfa
mov eax, 0x64
mov dword [esp + 0x38], eax
push 0
push 1
push eax
push 0x17
push edi
call fcn.004cf760
mov edx, dword [esp + 0x24]
xor ecx, ecx
add esp, 0x14
cmp dword [edx + 0x14], ecx
mov dword [esp + 0x14], ecx
jle 0x519458
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x3c]
xor esi, esi
test eax, eax
jl 0x518d33
cmp ecx, eax
jne 0x519441
mov edx, dword [esp + 0x80]
call fcn.00508af0
push 0
push 0
push 1
push 0x8b
push edi
call fcn.004cf760
push 0
push 0
push 0
push 0x16
push edi
mov ebx, eax
call fcn.004cf760
add esp, 0x28
mov ecx, ebx
mov eax, edi
call fcn.004cf9b0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x34]
mov ebx, dword [ecx + edx + 0xc]
mov eax, dword [ebx + 0x10]
add ebx, 8
mov dword [esp + 0x28], eax
test eax, eax
je 0x518deb
lea esp, [esp]
mov eax, dword [esp + 0x28]
mov ebp, dword [eax + 8]
test byte [ebp + 0x2a], 0x20
jne 0x518db3
mov edx, dword [ebp + 0x1c]
push 0
lea ecx, [esi + 2]
push ecx
push edx
push 0x17
push edi
call fcn.004cf760
add esp, 0x14
inc esi
mov ebp, dword [ebp + 8]
test ebp, ebp
je 0x518ddd
lea ebx, [ebx]
mov ecx, dword [ebp + 0x2c]
push 0
lea eax, [esi + 2]
push eax
push ecx
push 0x17
push edi
call fcn.004cf760
mov ebp, dword [ebp + 0x14]
add esp, 0x14
inc esi
test ebp, ebp
jne 0x518dc0
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x518d90
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx + 0x48]
lea eax, [esi + 8]
cmp ecx, eax
jle 0x518dfe
mov eax, ecx
mov edx, dword [esp + 0x80]
push 1
push esi
push 2
push 0x81
push edi
mov dword [edx + 0x48], eax
call fcn.004cf760
mov dl, byte [esp + 0x28]
mov ecx, edi
call fcn.004cf980
push 0
push 0
push 2
push 0x4c
push edi
call fcn.004cf760
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
add esp, 0x28
mov ebp, eax
mov eax, dword [esi + 0x10]
mov edx, dword [eax + ecx]
push 0xffffffffffffffff
push edx
push str._in_database__s__n
call fcn.004e0090
add esp, 8
push eax
push 0
xor eax, eax
push 0x61
push edi
lea ecx, [eax + 3]
call fcn.004d6430
push 1
push 4
push 2
push 0x1e
push edi
call fcn.004cf760
push 2
push 3
push 4
push 0x5e
push edi
call fcn.004cf760
push 0
push 1
push 2
push 0x22
push edi
call fcn.004cf760
add esp, 0x50
mov ecx, ebp
mov eax, edi
call fcn.004cf9b0
mov ebx, dword [ebx + 8]
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x51943d
lea esp, [esp]
cmp dword [esp + 0x50], 0
jne 0x51943d
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 8]
cmp dword [ebx + 8], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], 0xffffffff
je 0x51942b
test byte [ebx + 0x2a], 0x20
jne 0x518eec
mov dword [esp + 0x40], 0
jmp 0x518ef7
mov eax, ebx
call fcn.004c7600
mov dword [esp + 0x40], eax
push 0
push 0
push 1
push 0x8b
push edi
call fcn.004cf760
push 0
push 0
push 0
push 0x16
push edi
mov esi, eax
call fcn.004cf760
mov ecx, esi
mov eax, edi
call fcn.004cf9b0
mov edx, dword [esp + 0xa8]
call fcn.004c6fb0
lea ecx, [esp + 0x6c]
push ecx
lea eax, [esp + 0x44]
push eax
push 0
push 1
push 0
push 0x37
push ebx
push edx
call fcn.004f9dd0
add esp, 0x48
push 0
push 7
push 0
push 0x17
push edi
call fcn.004cf760
mov esi, dword [ebx + 8]
add esp, 0x14
xor ebp, ebp
test esi, esi
je 0x518f7e
push 0
lea ecx, [ebp + 8]
push ecx
push 0
push 0x17
push edi
call fcn.004cf760
mov esi, dword [esi + 0x14]
add esp, 0x14
inc ebp
test esi, esi
jne 0x518f63
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x48]
add ebp, 8
cmp eax, ebp
jg 0x518f91
mov eax, ebp
mov edx, dword [esp + 0x18]
push 0
push 0
push edx
push 0x6e
push edi
mov dword [ecx + 0x48], eax
call fcn.004cf760
push 0
push 1
push 7
push 0x26
push edi
call fcn.004cf760
mov dword [esp + 0x88], eax
xor eax, eax
xor ecx, ecx
add esp, 0x28
cmp cx, word [ebx + 0x22]
mov dword [esp + 0x24], eax
jge 0x5190bc
mov dword [esp + 0x30], ecx
movsx edx, word [ebx + 0x20]
cmp eax, edx
je 0x5190a6
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x30]
cmp byte [edx + ecx + 0x14], 0
je 0x5190a6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push eax
push ebx
push edi
mov eax, 3
call fcn.004f1150
mov dl, 0x80
mov ecx, edi
call fcn.004cf980
push 0
push 0
push 3
push 0x4d
push edi
call fcn.004cf760
push 0
push 0xffffffffffffffff
push 1
push 0x26
push edi
mov ebp, eax
call fcn.004cf760
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x64]
mov eax, dword [edx + ecx]
mov ecx, dword [ebx]
mov esi, dword [esp + 0x44]
push eax
push ecx
push str.NULL_value_in__s._s
call fcn.004e0090
add esp, 0x40
push 0xffffffffffffffff
push eax
push 0
xor eax, eax
push 0x61
push edi
lea ecx, [eax + 3]
call fcn.004d6430
push 0
push 1
push 3
push 0x22
push edi
call fcn.004cf760
push 0
push 0
push 1
push 0x8b
push edi
call fcn.004cf760
push 0
push 0
push 0
push 0x16
push edi
mov esi, eax
call fcn.004cf760
add esp, 0x50
mov ecx, ebp
mov eax, edi
call fcn.004cf9b0
mov ecx, esi
mov eax, edi
call fcn.004cf9b0
mov eax, dword [esp + 0x24]
movsx edx, word [ebx + 0x22]
add dword [esp + 0x30], 0x18
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x518fd3
mov esi, dword [ebx + 8]
test esi, esi
je 0x519327
mov ebp, dword [esp + 0x44]
mov eax, 8
sub eax, ebp
mov dword [esp + 0x4c], eax
mov eax, edi
call fcn.004cf7f0
mov dword [esp + 0x30], eax
cmp dword [esp + 0x40], esi
je 0x51931b
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x64]
push edx
push 0
push 0
push eax
mov eax, dword [esp + 0x98]
push esi
call fcn.004f94b0
mov ecx, dword [esp + 0x68]
push 0
push 1
add ecx, ebp
push ecx
push 0x26
push edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], esi
call fcn.004cf760
movzx edx, word [esi + 0x34]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
push edx
push ebp
push 0x49
push edi
call fcn.004d6580
add esp, 0x40
push 0
push 0xffffffffffffffff
push 1
push 0x26
push edi
mov dword [esp + 0x44], eax
call fcn.004cf760
push str.row
mov eax, 3
call fcn.004dab10
push 3
push 3
push 7
push 0x5e
push edi
call fcn.004cf760
push str._missing_from_index
mov eax, 4
call fcn.004dab10
push 3
push 3
push 4
push 0x5e
push edi
call fcn.004cf760
mov eax, dword [esi]
add esp, 0x44
push eax
mov eax, 4
call fcn.004dab10
push 3
push 3
push 4
push 0x5e
push edi
mov dword [esp + 0x6c], eax
call fcn.004cf760
push 0
push 1
push 3
push 0x22
push edi
call fcn.004cf760
push 0
push 0
push 1
push 0x8b
push edi
call fcn.004cf760
add esp, 0x40
push 0
push 0
push 0
push 0x16
push edi
mov dword [esp + 0x6c], eax
call fcn.004cf760
mov ecx, dword [esp + 0x44]
add esp, 0x14
mov eax, edi
call fcn.004cf9b0
cmp byte [esi + 0x36], 0
je 0x519300
mov eax, edi
call fcn.004cf7f0
xor ecx, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], 0
cmp cx, word [esi + 0x32]
jae 0x519266
mov ecx, dword [esp + 0x30]
lea ecx, [ecx]
mov edx, dword [esi + 4]
movsx eax, word [edx + ecx*2]
test eax, eax
jl 0x519238
mov edx, dword [ebx + 4]
lea eax, [eax + eax*2]
cmp byte [edx + eax*8 + 0x14], 0
jne 0x519259
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
push 0
push eax
add ecx, edx
push ecx
push 0x4c
push edi
call fcn.004cf760
mov ecx, dword [esp + 0x44]
add esp, 0x14
movzx eax, word [esi + 0x32]
inc ecx
cmp ecx, eax
mov dword [esp + 0x30], ecx
jl 0x519220
push 0
push 0
push ebp
push 8
push edi
call fcn.004cf760
mov ecx, dword [esp + 0x38]
push 0
push ecx
push 0
push 0xe
push edi
mov dword [esp + 0x58], eax
call fcn.004cf760
mov ecx, dword [esp + 0x58]
mov eax, edi
call fcn.004cf9b0
movzx edx, word [esi + 0x32]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
push edx
push ebp
push 0x74
push edi
call fcn.004d6580
push 0
push 0xffffffffffffffff
push 1
push 0x26
push edi
call fcn.004cf760
add esp, 0x4c
push str.non_unique_entry_in_index
mov eax, 3
call fcn.004dab10
mov eax, dword [esp + 0x58]
push 0
push eax
push 0
push 0xe
push edi
call fcn.004cf760
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x74]
add esp, 0x18
test eax, eax
je 0x5192f9
mov edx, dword [esp + 0x24]
lea edx, [edx*4 + 4]
sub eax, edx
mov edx, dword [edi + 0x20]
mov dword [eax], edx
mov eax, dword [edi + 0x20]
dec eax
mov dword [ecx + 0x5c], eax
mov ecx, dword [esp + 0x58]
mov eax, edi
call fcn.004cf9b0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x80]
call fcn.004c7e90
mov esi, dword [esi + 0x14]
inc ebp
test esi, esi
jne 0x5190d6
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
push 0
push esi
push ecx
push 8
push edi
call fcn.004cf760
lea ecx, [esi - 1]
mov eax, edi
call fcn.004cf9b0
push str.wrong__of_entries_in_index
mov eax, 2
call fcn.004dab10
mov ebx, dword [ebx + 8]
add esp, 0x18
test ebx, ebx
je 0x51942b
mov ebp, 8
jmp 0x519370
cmp dword [esp + 0x40], ebx
je 0x51941f
mov esi, dword [edi + 0x20]
push 0
lea edx, [esi + 2]
push edx
push 1
push 0x8b
push edi
call fcn.004cf760
push 0
push 0
push 0
push 0x16
push edi
call fcn.004cf760
mov eax, dword [esp + 0x6c]
push 0
push 3
lea ecx, [eax + ebp - 8]
push ecx
push 0x33
push edi
call fcn.004cf760
push 3
add esi, 8
push esi
push ebp
push 0x4f
push edi
call fcn.004cf760
mov eax, dword [edi + 0x20]
mov edx, dword [edi]
add esp, 0x50
dec eax
cmp byte [edx + 0x41], 0
je 0x5193d8
mov eax, 0x5a2838
jmp 0x5193e1
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
push 0
push 0xffffffffffffffff
push 1
push 0x26
push edi
mov byte [eax + 3], 0x90
call fcn.004cf760
mov edx, dword [ebx]
push edx
mov eax, 3
call fcn.004dab10
push 7
push 2
push 3
push 0x5e
push edi
call fcn.004cf760
push 0
push 1
push 7
push 0x22
push edi
call fcn.004cf760
add esp, 0x40
mov ebx, dword [ebx + 0x14]
inc ebp
test ebx, ebx
jne 0x519370
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x518eb0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add dword [esp + 0x34], 0x10
inc ecx
cmp ecx, dword [edx + 0x14]
mov dword [esp + 0x14], ecx
jl 0x518d21
push 4
push edi
mov eax, 0x58b8d0
call fcn.004cf840
mov edx, dword [esp + 0x40]
neg edx
push edi
mov esi, eax
call fcn.004cf920
add esp, 0xc
lea ecx, [esi + 1]
mov eax, edi
call fcn.004cf9b0
mov ecx, dword [edi + 4]
mov edx, dword [edi]
lea eax, [esi + 2]
test ecx, ecx
je 0x5194c0
cmp byte [edx + 0x41], 0
jne 0x5194c0
test eax, eax
jge 0x51949a
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
push edx
call fcn.004cf9f0
add esp, 4
mov dword [esi + 0x10], 0x5961e0
mov byte [esi + 1], 0xfe
jmp 0x51987a
push edx
mov ecx, 0x5961e0
mov eax, 0xfffffffe
call fcn.004cf9f0
add esp, 4
jmp 0x51987a
test esi, esi
jne 0x51950c
mov esi, ebx
call fcn.004c8690
test eax, eax
jne 0x51987a
mov ecx, dword [ebx]
movzx edx, byte [ecx + 0x3e]
mov eax, dword [edx*8 + 0x58b8e0]
push str.encoding
mov ecx, edi
call fcn.004dd5e0
add esp, 4
jmp 0x51987a
mov ebp, dword [edx + 0x10]
mov eax, dword [ebp + 0xc]
movzx eax, word [eax + 0x4e]
test al, 1
je 0x519522
test al, 4
je 0x51987a
mov eax, dword [str.UTF8]
mov edi, 0x58b8e0
test eax, eax
je 0x51956f
push eax
push esi
call fcn.004bf990
add esp, 8
test eax, eax
je 0x51954a
mov eax, dword [edi + 8]
add edi, 8
test eax, eax
jne 0x519530
jmp 0x51956f
mov al, byte [edi + 4]
test al, al
movzx eax, al
jne 0x519559
mov eax, 2
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x3e], al
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x4d], al
cmp dword [edi], 0
jne 0x51987a
push esi
push str.unsupported_encoding:__s
mov edi, ebx
call fcn.004e0360
add esp, 8
jmp 0x51987a
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 8]
mov ecx, ebp
mov eax, edi
mov dword [esp + 0x80], ebx
call fcn.004c4a80
test esi, esi
je 0x5195f8
mov ecx, dword [esp + 0x28]
test byte [ecx + 5], 2
jne 0x5195f8
push 3
push edi
mov eax, 0x58b928
call fcn.004cf840
push edi
mov edx, ebp
mov ebx, eax
call fcn.004cf8f0
mov ecx, esi
call fcn.004cc370
lea ecx, [ebx + 1]
mov edx, eax
push edi
mov eax, ecx
call fcn.004cf8f0
lea esi, [ebx + 2]
push edi
mov edx, ebp
mov eax, esi
call fcn.004cf8f0
mov edx, dword [esp + 0x94]
push edi
mov eax, esi
call fcn.004cf920
add esp, 0x18
jmp 0x51987a
push 3
push edi
mov eax, 0x58b934
call fcn.004cf840
push edi
mov edx, ebp
mov esi, eax
call fcn.004cf8f0
inc esi
push edi
mov eax, esi
call fcn.004cf8f0
push edi
mov edx, ebx
mov eax, esi
call fcn.004cf950
push 1
push edi
call fcn.004d6600
mov edx, dword [esp + 0x38]
push 0xffffffffffffffff
push edx
push 0
push 0
mov ecx, edi
call fcn.004daba0
add esp, 0x2c
jmp 0x51987a
lea eax, [esp + 0x80]
push eax
push 1
push edi
xor esi, esi
mov dword [ebx + 0x48], 1
mov dword [esp + 0x8c], str.compile_option
call fcn.004dd4c0
push esi
call fcn.004bebd0
add esp, 0x10
test eax, eax
je 0x51987a
lea esp, [esp]
push eax
mov eax, 1
inc esi
call fcn.004dab10
push 0
push 1
push 1
push 0x22
push edi
call fcn.004cf760
push esi
call fcn.004bebd0
add esp, 0x1c
test eax, eax
jne 0x519680
jmp 0x51987a
mov ecx, dword [esp + 0x88]
cmp dword [ecx], 0
mov dword [esp + 0x80], ebp
jne 0x5196ca
mov dword [esp + 0x80], 0xa
xor ebp, ebp
test esi, esi
je 0x519713
push str.full
push esi
call fcn.004bf990
add esp, 8
test eax, eax
jne 0x5196e7
lea ebp, [eax + 1]
jmp 0x519713
push str.restart
push esi
call fcn.004bf990
add esp, 8
test eax, eax
jne 0x5196fe
lea ebp, [eax + 2]
jmp 0x519713
push str.truncate
push esi
call fcn.004bf990
add esp, 8
test eax, eax
jne 0x519713
lea ebp, [eax + 3]
push 0x59cf64
push 3
push edi
call fcn.004dd4c0
mov edx, dword [esp + 0x8c]
push 1
push ebp
push edx
push 9
push edi
mov dword [ebx + 0x48], 3
call fcn.004cf760
push 0
push 3
push 1
push 0x22
push edi
call fcn.004cf760
add esp, 0x34
jmp 0x51987a
test esi, esi
je 0x51976d
mov ecx, esi
call fcn.004cc370
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0050a720
mov edx, dword [esp + 0x18]
add esp, 8
cmp dword [edx + 0xd8], 0x50a6e0
jne 0x51978c
mov eax, dword [edx + 0xdc]
cdq
push edx
push eax
push str.wal_autocheckpoint
jmp 0x519872
xor eax, eax
cdq
push edx
push eax
push str.wal_autocheckpoint
jmp 0x519872
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004d54e0
add esp, 4
jmp 0x51987a
test esi, esi
je 0x5197d5
lea edx, [esp + 0x60]
push edx
push esi
call fcn.004cc0e0
add esp, 8
test eax, eax
jne 0x5197d5
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
push ecx
call fcn.004ff540
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004ff540
push edx
push eax
push str.soft_heap_limit
call fcn.004dd520
add esp, 0x14
jmp 0x51987a
test esi, esi
je 0x519833
lea edx, [esp + 0x60]
push edx
push esi
call fcn.004cc0e0
add esp, 8
test eax, eax
jne 0x519833
cmp dword [esp + 0x64], eax
jl 0x519833
mov eax, dword [esp + 0x60]
jg 0x519818
test eax, eax
jb 0x519833
and eax, 0x7fffffff
jl 0x519833
cmp eax, 8
jle 0x519829
mov eax, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x84], eax
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x84]
cdq
push edx
push eax
push str.threads
jmp 0x519872
test esi, esi
je 0x519860
mov ecx, esi
call fcn.004cc370
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.004cac30
add esp, 8
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1ec]
cdq
push edx
push eax
push str.timeout
call fcn.004dd520
add esp, 0xc
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, esi
call fcn.004bf680
mov eax, dword [esp + 0x20]
mov ecx, esi
call fcn.004bf680
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x6c
ret