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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x88bba0]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [edx + 8]
mov dword [ebp - 0x40], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x5c], esi
push edi
mov edi, dword [ebp + 0xc]
test esi, esi
jne 0x56e0e1
cmp dword [edx + 0x78], esi
jne 0x56e0c5
test byte [ecx + 0x44], 8
jne 0x56e0c5
mov byte [edx + 0x17], 1
push edx
call fcn.0057ac30
mov edx, dword [ebp - 0x28]
mov esi, eax
mov eax, dword [ebp - 0x38]
add esp, 4
mov dword [ebp - 0x5c], esi
test esi, esi
je 0x56ff56
or dword [esi + 0x94], 0x20
lea ecx, [ebp - 0x3c]
push ecx
push eax
push edi
push edx
mov dword [edx + 0x2c], 2
call fcn.00576c80
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x2c], ecx
test ecx, ecx
js 0x56ff56
mov eax, dword [ebp - 0x24]
push ebx
mov ebx, ecx
shl ebx, 4
mov edi, dword [eax + 0x10]
add edi, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x68], edi
cmp ecx, 1
jne 0x56e13a
push dword [ebp - 0x28]
call fcn.0056b530
add esp, 4
test eax, eax
jne 0x56ff55
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x3c]
push eax
call fcn.0056af20
add esp, 8
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x56ff55
cmp dword [ebp + 0x18], 0
push dword [ebp - 0x40]
je 0x56e171
push 0x7bf4c4
push dword [ebp - 0x24]
call fcn.0056a820
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x50], ecx
jmp 0x56e181
push dword [ebp - 0x24]
call fcn.0056af20
add esp, 8
mov dword [ebp - 0x50], eax
mov ecx, eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 4], 0
jbe 0x56e18e
mov eax, dword [edi]
jmp 0x56e190
xor eax, eax
push eax
push ecx
push dword [ebp - 0x6c]
mov dword [ebp - 0x44], eax
push 0x13
push dword [ebp - 0x28]
call fcn.00554fa0
add esp, 0x14
test eax, eax
jne 0x56ff3c
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x20]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x50]
push ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
push 0xe
push dword [ebp - 0x44]
mov dword [ebp - 0x14], 0
push eax
mov dword [eax + 0x180], 0
call fcn.0052c230
add esp, 0x10
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x56e219
push 1
push esi
call fcn.005832e0
push 0xffffffffffffffff
push dword [ebp - 0x20]
push 0
push 0
push esi
call fcn.00583290
push dword [ebp - 0x20]
push esi
call fcn.00550fa0
push dword [ebp - 0x20]
call fcn.0052c640
add esp, 0x28
jmp 0x56ff3c
cmp eax, 0xc
je 0x56e24f
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x56e241
push ecx
push 0x7a13f4
push dword [ebp - 0x28]
call fcn.0055dbe0
push dword [ebp - 0x20]
call fcn.0052c640
mov eax, dword [ebp - 0x3c]
add esp, 0x10
mov ecx, dword [ebp - 0x28]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x56ff3c
push dword [ebp - 0x6c]
call fcn.0054deb0
add esp, 4
mov dword [ebp - 0x48], eax
test eax, eax
je 0x56ff3c
test byte [eax + 5], 1
je 0x56e281
push dword [ebp - 0x28]
call fcn.00570680
add esp, 4
test eax, eax
jne 0x56ff3c
mov eax, dword [ebp - 0x48]
mov cl, byte [eax + 5]
test cl, 2
jne 0x56e2a2
test cl, 4
je 0x56e295
mov edx, dword [ebp - 0x50]
test edx, edx
jne 0x56e2a5
push eax
push esi
call fcn.00553190
mov eax, dword [ebp - 0x48]
add esp, 8
mov edx, dword [ebp - 0x50]
movzx ecx, byte [eax + 4]
cmp ecx, 0x27
ja case.0x56e2b2.3
jmp dword [ecx*4 + 0x56ff68]
mov edi, dword [edi + 4]
test edx, edx
jne 0x56e2d6
test edi, edi
je 0x56e2cf
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x20]
jmp 0x56ff30
xor eax, eax
jmp 0x56ff30
push edx
call fcn.00554d40
mov ecx, dword [ebp - 0x24]
push 0
push 0xffffffffffffffff
push eax
push edi
mov dword [ecx + 0x54], eax
call fcn.00558df0
add esp, 0x14
cmp eax, 7
jne 0x56ff3c
push dword [ebp - 0x24]
call fcn.0056b130
add esp, 4
jmp 0x56ff3c
mov eax, dword [edi + 4]
or ecx, 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], ecx
test edx, edx
je 0x56e344
push str.fast
push edx
call fcn.0052f7e0
add esp, 8
test eax, eax
jne 0x56e330
lea ecx, [eax + 2]
jmp 0x56e341
mov eax, dword [ebp - 0x50]
push 0
push eax
call fcn.005662c0
add esp, 8
movzx ecx, al
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x38]
cmp dword [eax + 4], 0
jne 0x56e382
test ecx, ecx
js 0x56e382
mov eax, dword [ebp - 0x24]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x56e382
mov esi, dword [ebp - 0x34]
xor edi, edi
mov eax, dword [eax + 0x10]
push esi
push dword [edi + eax + 4]
call fcn.00558c00
mov eax, dword [ebp - 0x24]
lea edi, [edi + 0x10]
inc ebx
add esp, 8
cmp ebx, dword [eax + 0x14]
jl 0x56e360
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
push ecx
push dword [ebp - 0x3c]
call fcn.00558c00
cdq
push edx
push eax
push esi
call fcn.00550f00
add esp, 0x14
jmp 0x56ff3c
push dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x28]
push ebx
call fcn.0055a110
mov eax, dword [ebp - 0x6c]
add esp, 8
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x7b8640], 0x70
jne 0x56e3e5
push edi
push dword [ebp - 0x2c]
push 0xa0
push esi
call fcn.0057a2f0
add esp, 0x10
push 1
push edi
push 0x4e
push esi
call fcn.0057a2f0
add esp, 0x10
jmp 0x56ff3c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00554d40
push eax
call fcn.005534e0
push eax
push edi
push dword [ebp - 0x2c]
push 0xa1
push esi
call fcn.0057a360
add esp, 0x1c
push 1
push edi
push 0x4e
push esi
call fcn.0057a2f0
add esp, 0x10
jmp 0x56ff3c
push edx
mov ebx, str.normal
call fcn.005443b0
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 4]
test eax, eax
jne 0x56e492
cmp ecx, 0xffffffff
jne 0x56e445
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x4b]
jmp 0x56e4a3
test eax, eax
jne 0x56e492
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x14], 2
jle 0x56e48f
mov ebx, 0x20
mov edi, eax
lea esi, [ebx - 0x1e]
lea esp, [esp]
mov eax, dword [edi + 0x10]
push ecx
mov eax, dword [ebx + eax + 4]
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0056c050
mov ecx, dword [ebp - 0x40]
lea ebx, [ebx + 0x10]
inc esi
add esp, 8
cmp esi, dword [edi + 0x14]
jl 0x56e460
mov esi, dword [ebp - 0x5c]
mov ebx, str.normal
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x4b], cl
mov eax, dword [edi + 4]
push ecx
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0056c050
add esp, 8
cmp eax, 1
mov ecx, str.exclusive
cmovne ecx, ebx
push ecx
push esi
call fcn.00550fa0
add esp, 8
jmp 0x56ff3c
test edx, edx
je 0x56e564
push edx
call fcn.005763d0
add esp, 4
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x56e564
mov ecx, dword [ebx*4 + 0x7b8478]
test ecx, ecx
je 0x56e564
push edi
push ecx
push dword [ebp - 0x50]
call fcn.0052f820
add esp, 0xc
test eax, eax
je 0x56e4fa
inc ebx
jmp 0x56e4d2
cmp ebx, 0xffffffff
je 0x56e567
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + 0x14]
dec edi
js 0x56e550
mov ecx, edi
shl ecx, 4
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 0x10]
cmp dword [ecx + eax + 4], 0
je 0x56e541
cmp edi, dword [ebp - 0x2c]
je 0x56e528
cmp dword [edx + 4], 0
jne 0x56e541
push edi
push esi
call fcn.00583e00
push ebx
push 1
push edi
push 9
push esi
call fcn.0057a360
mov ecx, dword [ebp - 0x40]
add esp, 0x1c
mov edx, dword [ebp - 0x38]
sub ecx, 0x10
dec edi
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x40], ecx
jns 0x56e513
push 1
push 1
push 0x4e
push esi
call fcn.0057a2f0
add esp, 0x10
jmp 0x56ff3c
or ebx, 0xffffffff
mov edx, dword [ebp - 0x38]
cmp dword [edx + 4], 0
jne 0x56e502
mov dword [ebp - 0x2c], 0
mov dword [edx + 4], 1
jmp 0x56e502
mov eax, dword [edi + 4]
or ecx, 0xffffffff
mov dword [ebp - 8], ecx
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov eax, 0xfffffffe
mov dword [ebp - 0xc], eax
test edx, edx
je 0x56e5c3
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.0055c170
mov ecx, dword [ebp - 8]
add esp, 8
cmp ecx, 0xffffffff
jg 0x56e5c0
jl 0x56e5b9
mov eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
jae 0x56e5c3
or eax, 0xffffffff
or ecx, eax
jmp 0x56e5c3
mov eax, dword [ebp - 0xc]
push ecx
push eax
push edi
call fcn.0056bff0
push edx
push eax
push esi
call fcn.00550f00
add esp, 0x18
jmp 0x56ff3c
mov edi, dword [edi + 4]
test edx, edx
jne 0x56e5f9
push edi
call fcn.00557060
cdq
push edx
push eax
push esi
call fcn.00550f00
add esp, 0x10
jmp 0x56ff3c
push edx
call fcn.00544130
mov ebx, eax
mov eax, dword [ebp - 0x24]
push ebx
push edi
mov byte [eax + 0x4c], bl
call fcn.00558c80
add esp, 0xc
test eax, eax
jne 0x56ff3c
cmp ebx, 1
je 0x56e627
cmp ebx, 2
jne 0x56ff3c
mov edi, dword [esi + 0x88]
push 0
push 0x7b862c
push 5
push esi
call fcn.0057a4e0
mov edx, dword [ebp - 0x2c]
lea ecx, [edi + 4]
push edx
push esi
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ecx
call fcn.00583e00
add esp, 0x18
jmp 0x56ff3c
test edx, edx
je 0x56e67f
lea eax, [ebp - 0x3c]
push eax
push edx
call fcn.005663d0
add esp, 8
test eax, eax
je 0x56e67f
mov edi, dword [ebp - 0x3c]
test edi, edi
jg 0x56e684
mov edi, SysReAllocString
mov ebx, dword [ebp - 0x2c]
push ebx
push 0
push dword [ebp - 0x28]
call fcn.005559a0
push 1
push edi
push 0x43
push esi
call fcn.0057a2f0
push ebx
push 0x3c
push esi
call fcn.0057a290
push 1
push 0x4e
push esi
mov edi, eax
call fcn.0057a290
push 0xffffffffffffffff
push 1
push 0x50
push esi
call fcn.0057a2f0
add esp, 0x44
push edi
push 1
push 0x30
push esi
call fcn.0057a2f0
push edi
push esi
call fcn.00581220
add esp, 0x18
jmp 0x56ff3c
test edx, edx
jne 0x56e6ea
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x56ff30
push edx
call fcn.00554d40
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x50], eax
mov eax, dword [edi + 0xc]
push dword [eax + 0x50]
push dword [edi + 4]
call fcn.00558d00
jmp 0x56ff39
test edx, edx
jne 0x56e72b
mov eax, dword [ebp - 0x24]
test byte [eax + 0x1c], 0x20
je 0x56e2cf
push edx
push dword [edi + 4]
call fcn.00558f10
add esp, 8
jmp 0x56ff30
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 1
push eax
push edx
call fcn.005663d0
mov esi, dword [ebp - 0x40]
add esp, 8
test eax, eax
je 0x56e752
push esi
push dword [edi + 4]
call fcn.00558f10
add esp, 8
test esi, esi
setne al
movzx eax, al
push eax
push dword [ebp - 0x50]
call fcn.005662c0
add esp, 8
test al, al
mov eax, dword [ebp - 0x24]
je 0x56e77f
or dword [eax + 0x1c], 0x20
push eax
call fcn.00552f50
add esp, 4
jmp 0x56ff3c
and dword [eax + 0x1c], 0xffffffdf
push eax
call fcn.00552f50
add esp, 4
jmp 0x56ff3c
test edx, edx
je 0x56e822
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.0055c170
mov eax, dword [ebp - 8]
add esp, 8
test eax, eax
jg 0x56e7c9
jl 0x56e7b6
mov edx, dword [ebp - 0xc]
test edx, edx
jae 0x56e7cc
mov edx, dword [0x8805a8]
mov eax, dword [0x8805ac]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
jmp 0x56e7cc
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x24]
cmp dword [ecx + 4], 0
jne 0x56e7de
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], eax
mov edi, dword [edi + 0x14]
dec edi
js 0x56e822
mov esi, dword [ebp - 0x24]
mov ebx, edi
shl ebx, 4
lea esp, [esp]
mov eax, dword [esi + 0x10]
mov eax, dword [ebx + eax + 4]
test eax, eax
je 0x56e819
cmp edi, dword [ebp - 0x2c]
je 0x56e806
cmp dword [ecx + 4], 0
jne 0x56e819
push dword [ebp - 8]
push edx
push eax
call fcn.00558d90
mov edx, dword [ebp - 0xc]
add esp, 0xc
mov ecx, dword [ebp - 0x38]
sub ebx, 0x10
dec edi
jns 0x56e7f0
mov esi, dword [ebp - 0x5c]
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0xffffffff
push eax
push 0x12
push dword [ebp - 0x44]
mov dword [ebp - 8], 0xffffffff
push dword [ebp - 0x24]
call fcn.0052c230
add esp, 0x10
test eax, eax
jne 0x56e853
push dword [ebp - 8]
push dword [ebp - 0xc]
jmp 0x56ff33
cmp eax, 0xc
je 0x56ff3c
mov ecx, dword [ebp - 0x28]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x56ff3c
test edx, edx
jne 0x56e87a
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x48]
jmp 0x56ff30
push edx
push dword [ebp - 0x28]
call fcn.005368d0
add esp, 8
jmp 0x56ff3c
test edx, edx
jne 0x56e8a3
push dword [0x89e4f8]
push esi
call fcn.00550fa0
add esp, 8
jmp 0x56ff3c
cmp byte [edx], 0
je 0x56e8db
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x3c]
push ecx
push 1
push edx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x56e8c6
cmp dword [ebp - 0x3c], eax
jne 0x56e8db
push str.not_a_writable_directory
push dword [ebp - 0x28]
call fcn.0055dbe0
add esp, 8
jmp 0x56ff3c
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x48], 1
ja 0x56e8ef
push dword [ebp - 0x28]
call fcn.005457d0
add esp, 4
push dword [0x89e4f8]
call fcn.0052c640
mov eax, dword [ebp - 0x50]
add esp, 4
cmp byte [eax], 0
je 0x56e91d
push eax
push 0x7a13f4
call fcn.0052bf10
add esp, 8
mov dword [0x89e4f8], eax
jmp 0x56ff3c
mov dword [0x89e4f8], 0
jmp 0x56ff3c
test edx, edx
jne 0x56e944
push dword [0x89e4fc]
push esi
call fcn.00550fa0
add esp, 8
jmp 0x56ff3c
cmp byte [edx], 0
je 0x56e96f
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x3c]
push ecx
push 1
push edx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x56e8c6
cmp dword [ebp - 0x3c], eax
je 0x56e8c6
push dword [0x89e4fc]
call fcn.0052c640
mov eax, dword [ebp - 0x50]
add esp, 4
cmp byte [eax], 0
je 0x56e99d
push eax
push 0x7a13f4
call fcn.0052bf10
add esp, 8
mov dword [0x89e4fc], eax
jmp 0x56ff3c
mov dword [0x89e4fc], 0
jmp 0x56ff3c
test edx, edx
jne 0x56e9ba
movzx eax, byte [edi + 8]
dec eax
jmp 0x56ff30
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x47], 0
jne 0x56e9d8
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [ebp - 0x28]
call fcn.0055dbe0
add esp, 8
jmp 0x56ff3c
cmp dword [ebp - 0x2c], 1
je 0x56ff3c
push 1
push 0
push edx
call fcn.00544950
push dword [ebp - 0x24]
inc eax
mov ecx, 1
and eax, 7
mov byte [edi + 9], cl
cmove eax, ecx
mov byte [edi + 8], al
call fcn.00552f50
add esp, 0x10
jmp 0x56ff3c
test edx, edx
jne 0x56ea3c
push eax
push esi
call fcn.00553190
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax + 8]
and eax, dword [ecx + 0x1c]
neg eax
sbb eax, eax
neg eax
cdq
push edx
push eax
push esi
call fcn.00550f00
add esp, 0x14
jmp 0x56ff3c
mov edi, dword [eax + 8]
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x47], 0
jne 0x56ea4e
and edi, 0xffffbfff
push 0
push edx
call fcn.005662c0
add esp, 8
test al, al
je 0x56ea65
mov eax, dword [ebp - 0x24]
or dword [eax + 0x1c], edi
jmp 0x56ea8b
mov ecx, dword [ebp - 0x24]
mov eax, edi
not eax
and dword [ecx + 0x1c], eax
cmp edi, 0x80000
jne 0x56ea8b
mov dword [ecx + 0x1c0], 0
mov dword [ecx + 0x1c4], 0
push 0x98
push esi
call fcn.0057a230
push dword [ebp - 0x24]
call fcn.00552f50
jmp 0x56ff39
test edx, edx
je 0x56ff3c
push dword [ebp - 0x44]
mov edi, dword [ebp - 0x28]
push edx
push 2
push edi
call fcn.0056a430
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x68], ebx
test ebx, ebx
je 0x56ff3c
push ebx
mov dword [ebp - 0x30], 0
call fcn.005705f0
push dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
push edi
mov dword [edi + 0x2c], 6
call fcn.0055a110
push ebx
push edi
call fcn.00583ee0
mov edx, dword [ebx + 4]
add esp, 0x14
movsx ebx, word [ebx + 0x2a]
xor edi, edi
mov dword [ebp - 0x34], edx
test ebx, ebx
jle 0x56ff3c
mov al, byte [edx + 0xf]
test al, 2
je 0x56eb14
inc dword [ebp - 0x30]
jmp 0x56eb88
test al, 1
jne 0x56eb1c
xor ecx, ecx
jmp 0x56eb42
mov eax, dword [ebp - 0x3c]
mov ecx, 1
test eax, eax
je 0x56eb42
cmp ebx, ecx
jl 0x56eb42
mov edx, dword [eax + 4]
nop
movsx eax, word [edx]
cmp eax, edi
je 0x56eb3f
inc ecx
add edx, 2
cmp ecx, ebx
jle 0x56eb30
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 4]
test eax, eax
je 0x56eb4e
mov eax, dword [eax + 8]
jmp 0x56eb50
xor eax, eax
push ecx
push eax
xor eax, eax
cmp byte [edx + 0xc], al
setne al
push eax
push 0x799e88
push edx
call fcn.0055a360
add esp, 8
push eax
mov eax, dword [ebp - 0x34]
push dword [eax]
mov eax, edi
sub eax, dword [ebp - 0x30]
push eax
push str.issisi
push 1
push esi
call fcn.005825d0
mov edx, dword [ebp - 0x34]
add esp, 0x24
mov eax, dword [ebp - 0x68]
inc edi
add edx, 0x10
mov dword [ebp - 0x34], edx
movsx ebx, word [eax + 0x2a]
cmp edi, ebx
jl 0x56eb08
jmp 0x56ff3c
test edx, edx
je 0x56ff3c
push dword [ebp - 0x44]
push edx
push dword [ebp - 0x24]
call fcn.00562d40
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x56ff3c
mov eax, dword [ebp - 0x48]
cmp dword [eax + 8], 0
je 0x56ebe0
movzx eax, word [ebx + 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x2c], 6
jmp 0x56ebf1
movzx eax, word [ebx + 0x32]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x2c], 3
push dword [ebp - 0x2c]
mov eax, dword [ebx + 0xc]
push dword [ebp - 0x28]
mov dword [ebp - 0x3c], eax
call fcn.0055a110
xor edi, edi
add esp, 8
cmp dword [ebp - 0x30], edi
jle 0x56ff3c
mov eax, dword [ebx + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x56ec20
xor eax, eax
jmp 0x56ec2e
mov eax, dword [ebp - 0x3c]
movsx ecx, dx
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
push eax
movsx eax, dx
push eax
push edi
push str.iisX
push 1
push esi
call fcn.005825d0
mov eax, dword [ebp - 0x48]
add esp, 0x18
cmp dword [eax + 8], 0
je 0x56ec77
movzx eax, word [ebx + 0x32]
xor ecx, ecx
cmp edi, eax
mov eax, dword [ebx + 0x20]
setl cl
push ecx
push dword [eax + edi*4]
mov eax, dword [ebx + 0x1c]
movzx eax, byte [eax + edi]
push eax
push str.isiX
push 4
push esi
call fcn.005825d0
add esp, 0x18
mov eax, dword [ebp - 0x28]
push dword [eax + 0x2c]
push 1
push 0x4e
push esi
call fcn.0057a2f0
inc edi
add esp, 0x10
cmp edi, dword [ebp - 0x30]
jl 0x56ec10
jmp 0x56ff3c
test edx, edx
je 0x56ff3c
push dword [ebp - 0x44]
push edx
push dword [ebp - 0x24]
call fcn.00562df0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x56ff3c
mov eax, dword [ebp - 0x28]
push dword [ebp - 0x2c]
push eax
mov dword [eax + 0x2c], 5
call fcn.0055a110
mov edi, dword [edi + 8]
add esp, 8
xor ebx, ebx
test edi, edi
je 0x56ff3c
mov dword [ebp - 0x10], 0x7bf53c
mov dword [ebp - 0xc], 0x7bf540
mov dword [ebp - 8], 0x7bc708
mov edi, edi
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
push eax
mov eax, dword [edi + 0x38]
and eax, 3
push dword [ebp + eax*4 - 0x10]
xor eax, eax
cmp byte [edi + 0x36], al
setne al
push eax
push dword [edi]
push ebx
push str.isisi
push 1
push esi
call fcn.005825d0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x56ecf0
jmp 0x56ff3c
mov eax, dword [ebp - 0x28]
xor edi, edi
mov dword [eax + 0x2c], 3
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x14], edi
jle 0x56ff3c
xor ebx, ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x56ed6c
push eax
call fcn.005570b0
push eax
push dword [ecx + ebx]
push edi
push 0x7bf54c
push 1
push esi
call fcn.005825d0
add esp, 0x1c
mov eax, dword [ebp - 0x24]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x56ed46
jmp 0x56ff3c
mov eax, dword [ebp - 0x28]
xor ebx, ebx
mov dword [eax + 0x2c], 2
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + 0x170]
test edi, edi
je 0x56ff3c
lea ebx, [ebx]
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x7bf550
push 1
push esi
call fcn.005825d0
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x56eda0
jmp 0x56ff3c
test edx, edx
je 0x56ff3c
push dword [ebp - 0x44]
push edx
push dword [ebp - 0x24]
call fcn.00562df0
add esp, 0xc
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x56ff3c
mov edi, dword [eax + 0x10]
test edi, edi
je 0x56ff3c
mov eax, dword [ebp - 0x28]
push dword [ebp - 0x2c]
mov dword [ebp - 0x30], 0
push eax
mov dword [eax + 0x2c], 8
call fcn.0055a110
add esp, 8
xor eax, eax
mov edi, edi
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x56ee7a
lea ecx, [edi + 0x24]
mov dword [ebp - 0x40], ecx
lea ecx, [ecx]
movzx eax, byte [edi + 0x19]
push str.NONE
push eax
call fcn.00531060
add esp, 4
push eax
movzx eax, byte [edi + 0x1a]
push eax
call fcn.00531060
add esp, 4
push eax
push dword [ecx + 4]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ecx]
add ecx, ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [ebp - 0x30]
push str.iissssss
push 1
push esi
call fcn.005825d0
mov ecx, dword [ebp - 0x40]
inc ebx
add ecx, 8
add esp, 0x2c
mov dword [ebp - 0x40], ecx
cmp ebx, dword [edi + 0x14]
jl 0x56ee20
mov eax, dword [ebp - 0x30]
mov edi, dword [edi + 4]
inc eax
mov dword [ebp - 0x30], eax
test edi, edi
jne 0x56ee10
jmp 0x56ff3c
mov edx, dword [ebp - 0x28]
push dword [ebp - 0x2c]
push edx
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
add eax, 5
mov dword [ebp - 0x64], eax
inc eax
mov dword [ebp - 0x48], ecx
mov dword [edx + 0x2c], eax
call fcn.0055a110
mov eax, dword [ebp - 0x24]
add esp, 8
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x56ff3c
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x28]
test ecx, ecx
je 0x56eee0
push dword [ebp - 0x44]
push ecx
push 0
push ebx
call fcn.0056a430
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x56eee5
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edi
test edi, edi
je 0x56f1c0
cmp dword [edi + 0x10], 0
je 0x56f1c0
push dword [edi]
push 0
push dword [edi + 0x1c]
push dword [ebp - 0x2c]
push ebx
call fcn.00576530
mov ecx, dword [ebp - 0x64]
add esp, 0x14
movsx eax, word [edi + 0x2a]
inc ecx
add eax, ecx
cmp eax, dword [ebx + 0x2c]
jle 0x56ef22
mov dword [ebx + 0x2c], eax
push 0x69
push edi
push dword [ebp - 0x2c]
push 0
push ebx
call fcn.0056b1e0
push dword [edi]
push dword [ebp - 0x48]
push esi
call fcn.005816f0
mov ebx, dword [edi + 0x10]
add esp, 0x20
mov eax, 1
mov dword [ebp - 0x34], eax
test ebx, ebx
je 0x56efed
push dword [ebp - 0x44]
push dword [ebx + 8]
push dword [ebp - 0x24]
call fcn.00562df0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x56efd8
push dword [edi]
mov dword [ebp - 0x38], 0
push 0
push dword [edi + 0x1c]
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.00576530
push 0
lea eax, [ebp - 0x38]
push eax
push ebx
push edi
push dword [ebp - 0x28]
call fcn.00564110
add esp, 0x28
test eax, eax
jne 0x56ff3c
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x56efb9
push 0x69
push edi
push dword [ebp - 0x2c]
push dword [ebp - 0x34]
push dword [ebp - 0x28]
call fcn.0056b1e0
add esp, 0x14
jmp 0x56efd8
push dword [ebp - 0x2c]
push dword [eax + 0x2c]
push dword [ebp - 0x34]
push 0x69
push esi
call fcn.0057a360
push dword [ebp - 0x38]
push dword [ebp - 0x28]
call fcn.005833a0
add esp, 0x1c
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebx + 4]
inc eax
mov dword [ebp - 0x34], eax
test ebx, ebx
jne 0x56ef51
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 0x28], eax
jge 0x56eff8
mov dword [ecx + 0x28], eax
push 0
push 0x25
push esi
call fcn.0057a290
mov ebx, dword [edi + 0x10]
add esp, 0xc
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x56f1a5
lea ecx, [ecx]
push dword [ebp - 0x44]
push dword [ebx + 8]
push dword [ebp - 0x24]
call fcn.00562df0
add esp, 0xc
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x4c], 0
test eax, eax
je 0x56f05b
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x38]
push ecx
push ebx
push eax
push dword [ebp - 0x28]
call fcn.00564110
add esp, 0x14
push esi
call fcn.00581710
xor edi, edi
mov dword [ebp - 0x34], eax
add esp, 4
cmp dword [ebx + 0x14], edi
jle 0x56f0bf
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x30]
inc ebx
add ecx, 0x24
mov dword [ebp - 0x40], ecx
jmp 0x56f080
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x56f08c
mov eax, dword [eax + edi*4]
jmp 0x56f08e
mov eax, dword [ecx]
push ebx
push eax
push 0
push dword [ebp - 0x58]
push esi
call fcn.0055ec00
push dword [ebp - 0x34]
push ebx
push 0x32
push esi
call fcn.0057a2f0
mov eax, dword [ebp - 0x30]
inc edi
mov ecx, dword [ebp - 0x40]
add esp, 0x24
add ecx, 8
inc ebx
mov dword [ebp - 0x40], ecx
cmp edi, dword [eax + 0x14]
jl 0x56f080
mov ebx, eax
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x56f100
push dword [ebx + 0x14]
push eax
push dword [ebp - 0x24]
call fcn.005675a0
mov edi, dword [ebp - 0x64]
add esp, 8
push eax
push edi
push dword [ebx + 0x14]
lea eax, [edi + 1]
push eax
push 0x64
push esi
call fcn.0057a3c0
push 0
push edi
mov edi, dword [ebp - 0x34]
push edi
push dword [ebp - 0x5c]
push 0x1e
push esi
call fcn.0057a450
add esp, 0x34
jmp 0x56f132
cmp dword [ebp - 0x3c], 0
je 0x56f12f
mov eax, dword [ebp - 0x64]
inc eax
push eax
mov eax, dword [esi + 0x88]
add eax, 2
push eax
push dword [ebp - 0x5c]
push 0x1f
push esi
call fcn.0057a360
mov edi, dword [ebp - 0x34]
push edi
push esi
call fcn.00580bc0
add esp, 0x1c
jmp 0x56f132
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
test byte [eax + 0x24], 0x20
mov eax, dword [ebp - 0x48]
jne 0x56f146
inc eax
push eax
push 0
push 0x7c
jmp 0x56f14c
inc eax
push eax
push 0
push 0x46
push esi
call fcn.0057a2f0
mov eax, dword [ebp - 0x5c]
add esp, 0x10
dec eax
push eax
push dword [ebx + 8]
mov eax, dword [ebp - 0x48]
push 0x7bf560
add eax, 2
push eax
push esi
call fcn.005825d0
push 4
push dword [ebp - 0x48]
push 0x4e
push esi
call fcn.0057a2f0
push edi
push esi
call fcn.00582ec0
push dword [ebp - 0x4c]
push dword [ebp - 0x24]
call fcn.0055bd40
mov ebx, dword [ebx + 4]
add esp, 0x34
inc dword [ebp - 0x5c]
mov dword [ebp - 0x30], ebx
test ebx, ebx
jne 0x56f020
mov eax, dword [ebp - 0x60]
inc eax
push eax
push 0
push 7
push esi
call fcn.0057a2f0
push dword [ebp - 0x60]
push esi
call fcn.00581220
mov eax, dword [ebp - 0x54]
add esp, 0x18
test eax, eax
jne 0x56eec1
jmp 0x56ff3c
test edx, edx
je 0x56ff3c
push 0
push edx
call fcn.005662c0
movzx eax, al
push eax
push dword [ebp - 0x24]
call fcn.00570b80
add esp, 0x10
jmp 0x56ff3c
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
mov edi, dword [ebp - 0x28]
mov ebx, 0x64
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x54], ebx
movzx eax, byte [eax]
cmp byte [eax + 0x7b8640], 0x71
mov eax, dword [ebp - 0x38]
sete cl
mov dword [ebp - 0x40], ecx
or ecx, 0xffffffff
cmp dword [eax], 0
mov eax, dword [ebp - 0x2c]
cmove eax, ecx
mov dword [edi + 0x2c], 6
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x56f24e
lea eax, [ebp - 0x54]
push eax
push edx
call fcn.005663d0
mov ebx, dword [ebp - 0x54]
add esp, 8
test ebx, ebx
mov eax, 0x64
cmovle ebx, eax
mov dword [ebp - 0x3c], ebx
push 1
lea eax, [ebx - 1]
push eax
push 0x43
push esi
call fcn.0057a2f0
mov eax, dword [ebp - 0x24]
xor edx, edx
add esp, 0x10
mov dword [ebp - 0x34], edx
cmp dword [eax + 0x14], edx
jle 0x56fb11
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov dword [ebp - 0x54], ebx
test ecx, ecx
js 0x56f284
cmp edx, ecx
jne 0x56fb01
push edx
push edi
call fcn.0055a110
mov eax, dword [ebp - 0x24]
add esp, 8
mov ecx, dword [ebp - 0x34]
xor edx, edx
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
add eax, 8
mov dword [ebp - 0x60], eax
mov edi, dword [eax + 8]
test edi, edi
je 0x56f2da
mov eax, dword [edi + 8]
test byte [eax + 0x24], 0x20
jne 0x56f2ba
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x56f2cc
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x56f2c3
mov edi, dword [edi]
cmp ecx, ebx
cmovg ebx, ecx
test edi, edi
jne 0x56f2b0
mov dword [ebp - 0x54], ebx
lea eax, [edx*4 + 4]
push 0
push eax
push dword [ebp - 0x24]
call fcn.0055bdf0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x56fb0e
mov ebx, dword [ebp - 0x60]
xor edx, edx
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x56f334
mov ecx, dword [ebx + 8]
test byte [ecx + 0x24], 0x20
jne 0x56f315
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x56f32e
lea esp, [esp]
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x56f320
mov ebx, dword [ebx]
test ebx, ebx
jne 0x56f305
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x54]
push 0xfffffffffffffff1
push edi
push 1
mov dword [edi], edx
add ecx, 8
cmp dword [ebx + 0x2c], ecx
push edx
cmovg ecx, dword [ebx + 0x2c]
push 2
push 0x8f
push esi
mov dword [ebx + 0x2c], ecx
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
call fcn.0057a3c0
mov eax, dword [ebp - 0x34]
movzx eax, al
push eax
push esi
call fcn.0057a820
push 2
push 0x32
push esi
call fcn.0057a290
mov edx, dword [ebp - 0x24]
add esp, 0x30
mov edi, eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [edx + 0x10]
push 0xfffffffffffffff9
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.0056a820
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x61
push esi
call fcn.0057a3c0
push 3
push 3
push 2
push 0x5d
push esi
call fcn.0057a360
push esi
call fcn.00545630
push edi
push esi
call fcn.00581220
mov eax, dword [ebp - 0x60]
add esp, 0x3c
mov ebx, dword [eax + 8]
mov dword [ebp - 0x68], ebx
test ebx, ebx
je 0x56faf5
lea ecx, [ecx]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x64], 0xffffffff
cmp dword [ebx + 0x1c], 1
jl 0x56fae5
test byte [ebx + 0x24], 0x20
jne 0x56f40d
mov dword [ebp - 0x30], 0
jmp 0x56f419
push ebx
call fcn.005705f0
add esp, 4
mov dword [ebp - 0x30], eax
mov edi, dword [ebp - 0x28]
push edi
call fcn.0055e390
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x38]
push eax
push 0
push 1
push 0
push 0x69
push ebx
push edi
call fcn.0056b310
push 7
push 0
push 0x43
push esi
call fcn.0057a2f0
mov edi, dword [ebx + 8]
add esp, 0x34
test edi, edi
je 0x56f46a
mov ebx, 8
push ebx
push 0
push 0x43
push esi
call fcn.0057a2f0
mov edi, dword [edi + 0x14]
add esp, 0x10
inc ebx
test edi, edi
jne 0x56f454
push 0
push dword [ebp - 0x38]
push 0x25
push esi
call fcn.0057a2f0
push 1
push 7
push 0x50
push esi
call fcn.0057a2f0
mov edi, dword [ebp - 0x48]
add esp, 0x20
mov dword [ebp - 8], eax
xor ebx, ebx
xor eax, eax
cmp ax, word [edi + 0x2a]
jge 0x56f52e
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
nop
movsx eax, word [edi + 0x28]
cmp ebx, eax
je 0x56f51b
mov eax, dword [edi + 4]
cmp byte [ecx + eax + 0xc], 0
je 0x56f51b
push 3
push ebx
push dword [ebp - 0x38]
push edi
push esi
call fcn.0055ec00
push 0x80
push esi
call fcn.0057a820
push 3
push 0x33
push esi
call fcn.0057a290
mov edx, dword [ebp - 0x48]
mov edi, eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [edx + 4]
push dword [eax + ecx]
push dword [edx]
push str.NULL_value_in__s._s
push dword [ebp - 0x24]
call fcn.0056a820
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x61
push esi
call fcn.0057a3c0
add esp, 0x54
push esi
call fcn.00545630
push edi
push esi
call fcn.00581220
mov ecx, dword [ebp - 0x4c]
add esp, 0xc
mov edi, dword [ebp - 0x48]
movsx eax, word [edi + 0x2a]
inc ebx
add ecx, 0x10
mov dword [ebp - 0x4c], ecx
cmp ebx, eax
jl 0x56f4a0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x56f632
mov ecx, dword [ebp - 0x24]
test dword [ecx + 0x1c], 0x200
jne 0x56f632
push 0
push eax
push ecx
call fcn.00561cc0
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov ebx, eax
mov dword [ebp - 0x4c], ebx
cmp byte [ecx + 0x49], 0
jne 0x56f624
push esi
call fcn.00581710
push esi
mov dword [ebp - 0x54], eax
call fcn.00581710
mov edx, dword [ebp - 0x28]
add esp, 8
mov ecx, dword [ebp - 0x38]
inc ecx
mov dword [ebp - 0x60], eax
inc dword [edx + 0x3c]
mov dword [edx + 0x38], ecx
mov edi, dword [ebx]
dec edi
test edi, edi
jle 0x56f5c2
mov esi, dword [ebp - 0x54]
lea eax, [edi + edi*2]
lea ebx, [ebx + eax*8]
add ebx, 4
lea esp, [esp]
push 0
push esi
push dword [ebx]
push edx
call fcn.005611e0
mov edx, dword [ebp - 0x28]
lea ebx, [ebx - 0x18]
dec edi
add esp, 0x10
test edi, edi
jg 0x56f5a0
mov esi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x60]
push 0x10
push eax
push dword [ebx + 4]
push edx
call fcn.005614e0
push dword [ebp - 0x54]
push esi
call fcn.00582ec0
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x48]
mov dword [eax + 0x38], 0
push dword [edi]
push str.CHECK_constraint_failed_in__s
push dword [ebp - 0x24]
call fcn.0056a820
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x61
push esi
call fcn.0057a3c0
add esp, 0x40
push esi
call fcn.00545630
push dword [ebp - 0x60]
push esi
call fcn.00582ec0
push dword [ebp - 0x28]
call fcn.0055e3e0
mov ecx, dword [ebp - 0x24]
add esp, 0x10
test ebx, ebx
je 0x56f632
push ebx
push ecx
call fcn.0053f100
add esp, 8
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jne 0x56f931
movsx eax, word [edi + 0x2a]
push 3
dec eax
push eax
push dword [ebp - 0x38]
push 0x62
push esi
call fcn.0057a360
mov eax, dword [esi + 0x88]
add esp, 0x14
test eax, eax
jle 0x56f66d
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x56f92e
mov edx, dword [ebp - 0x70]
mov eax, 8
sub eax, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x60], eax
jmp 0x56f690
mov edi, dword [esi + 0xc]
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x54], ecx
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x56f6c6
push 0
lea eax, [ecx*8 + 4]
push eax
push dword [edi + 0x48]
push dword [edi]
call fcn.0055bf70
mov ecx, dword [ebp - 0x54]
add esp, 0x10
mov edx, dword [ebp - 0x44]
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x48]
test eax, eax
je 0x56f6d4
mov dword [eax + ecx*4], 0xffffffff
cmp dword [ebp - 0x30], ebx
je 0x56f91f
push dword [ebp - 0x64]
lea eax, [ebp - 0x74]
push dword [ebp - 0x58]
push eax
push 0
push 0
push dword [ebp - 0x38]
push ebx
push dword [ebp - 0x28]
call fcn.00565b00
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x44]
add ecx, edi
push 1
push ecx
push 0x50
push esi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x58], ebx
call fcn.0057a2f0
movzx ecx, word [ebx + 0x34]
or eax, 0xffffffff
sub eax, dword [ebp - 0x54]
push ecx
push dword [ebp - 0x64]
push eax
push edi
push 0x1e
push esi
call fcn.0057a450
add esp, 0x48
mov edi, eax
push 0
push str.row
push 0
push 3
push 0
push 0x61
push esi
call fcn.0057a3c0
push 3
push 3
push 7
push 0x5d
push esi
call fcn.0057a360
push 0
push str._missing_from_index
push 0
push 4
push 0
push 0x61
push esi
call fcn.0057a3c0
add esp, 0x4c
push 3
push 3
push 4
push 0x5d
push esi
call fcn.0057a360
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x61
push esi
call fcn.0057a3c0
push 3
push 3
push 4
push 0x5d
push esi
mov dword [ebp - 0x54], eax
call fcn.0057a360
add esp, 0x44
push esi
call fcn.00545630
add esp, 4
mov dword [ebp - 0x78], eax
mov edx, dword [esi + 0x88]
test edi, edi
jns 0x56f7b5
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x56f7c4
mov eax, 0x89e9dc
jmp 0x56f7cd
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp byte [ebx + 0x36], 0
je 0x56f8be
push esi
call fcn.00581710
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x4c], edx
xor edi, edi
cmp ax, word [ebx + 0x32]
jae 0x56f82a
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x56f80c
mov eax, dword [ebp - 0x48]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
jne 0x56f821
mov eax, dword [ebp - 0x64]
push edx
add eax, edi
push eax
push 0x32
push esi
call fcn.0057a2f0
mov edx, dword [ebp - 0x4c]
add esp, 0x10
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x56f7f2
push dword [ebp - 0x44]
push 7
push esi
call fcn.0057a290
push dword [ebp - 0x4c]
mov edi, eax
push esi
call fcn.00580bc0
mov edx, dword [esi + 0x88]
add esp, 0x14
test edi, edi
jns 0x56f850
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x56f85f
mov eax, 0x89e9dc
jmp 0x56f868
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov edi, dword [ebp - 0x4c]
mov dword [eax + 8], edx
movzx eax, word [ebx + 0x32]
push eax
push dword [ebp - 0x64]
push edi
push dword [ebp - 0x44]
push 0x27
push esi
call fcn.0057a450
push 0
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x61
push esi
call fcn.0057a3c0
push dword [ebp - 0x54]
push esi
call fcn.00580bc0
mov eax, dword [esi + 0xc]
add esp, 0x3c
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x56f8be
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x56f8ce
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x56f8dd
mov eax, 0x89e9dc
jmp 0x56f8e6
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [ebp - 0x74]
mov dword [eax + 8], edx
test edi, edi
je 0x56f91c
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x56f911
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [edx + 0x88]
mov dword [ecx], eax
push dword [ebp - 0x28]
call fcn.0055e3e0
add esp, 4
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebx + 0x14]
inc edx
mov dword [ebp - 0x44], edx
test ebx, ebx
jne 0x56f690
mov ebx, dword [ebp - 0x40]
mov edi, dword [ebp - 8]
push edi
push dword [ebp - 0x38]
push 7
push esi
call fcn.0057a2f0
mov edx, dword [esi + 0x88]
lea ecx, [edi - 1]
add esp, 0x10
test ecx, ecx
jns 0x56f953
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x56f962
mov eax, 0x89e9dc
jmp 0x56f96b
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebx, ebx
jne 0x56fae5
push ebx
push str.wrong__of_entries_in_index
push ebx
push 2
push ebx
push 0x61
push esi
call fcn.0057a3c0
mov eax, dword [ebp - 0x48]
add esp, 0x1c
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x56fae5
mov ecx, dword [ebp - 0x30]
mov eax, 8
mov dword [ebp - 0x58], eax
cmp ecx, ebx
je 0x56fad6
mov ecx, dword [ebp - 0x70]
add ecx, 0xfffffff8
push 3
add eax, ecx
push eax
push 0x65
push esi
call fcn.0057a2f0
mov eax, dword [esi + 0xc]
add esp, 0x10
mov edi, dword [esi + 0x88]
mov edx, dword [ebp - 0x58]
cmp dword [eax + 0x30], edi
jg 0x56f9e7
push 3
push 0
push edx
push 0x35
push esi
call fcn.00544a50
add esp, 0x14
mov edi, eax
jmp 0x56fa19
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x56fa33
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x61
push esi
call fcn.0057a3c0
mov eax, dword [esi + 0xc]
add esp, 0x1c
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x56fa69
push 3
push 2
push 4
push 0x5d
push esi
call fcn.00544a50
add esp, 0x14
jmp 0x56fa9f
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push esi
call fcn.00545630
mov edx, dword [esi + 0x88]
add esp, 4
test edi, edi
jns 0x56fab5
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x56fac4
mov eax, 0x89e9dc
jmp 0x56facd
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x30]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebx + 0x14]
inc eax
mov dword [ebp - 0x58], eax
test ebx, ebx
jne 0x56f9a4
mov ebx, dword [ebp - 0x68]
mov ebx, dword [ebx]
mov dword [ebp - 0x68], ebx
test ebx, ebx
jne 0x56f3e0
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
inc edx
mov dword [ebp - 0x34], edx
cmp edx, dword [eax + 0x14]
jl 0x56f273
mov ebx, dword [ebp - 0x3c]
push 0
push 0x7ba824
push 7
push esi
call fcn.0057a4e0
mov edx, eax
add esp, 0x10
test edx, edx
je 0x56fb54
mov eax, dword [str.database_disk_image_is_malformed]
mov ecx, 1
sub ecx, ebx
mov byte [edx + 0x29], 0xff
mov dword [edx + 8], ecx
test eax, eax
mov ecx, str.unknown_error
mov dword [edx + 0x38], 0x7bf60c
cmovne ecx, eax
mov byte [edx + 0x65], 0xff
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x89e9dc
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
jne 0x56fb6a
mov ecx, dword [esi + 0x58]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x56ff3c
mov ebx, dword [ebp - 0x2c]
mov edi, dword [eax + 8]
push ebx
push esi
call fcn.00583e00
add esp, 8
cmp dword [ebp - 0x50], 0
je 0x56fbc1
mov eax, dword [ebp - 0x48]
test byte [eax + 5], 8
jne 0x56fbc1
push 0
push 0x7baad4
push 2
push esi
call fcn.0057a4e0
push dword [ebp - 0x50]
mov esi, eax
mov dword [esi + 4], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], edi
call fcn.00554d40
add esp, 0x14
mov dword [esi + 0x20], eax
jmp 0x56ff3c
push 0
push 0x7bab34
push 3
push esi
call fcn.0057a4e0
add esp, 0x10
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x20], edi
and dword [esi + 0x94], 0xffffffdf
jmp 0x56ff3c
mov eax, dword [ebp - 0x28]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.00527160
add esp, 4
test eax, eax
je 0x56fc24
push eax
push 1
push esi
inc edi
call fcn.005816f0
push 1
push 1
push 0x4e
push esi
call fcn.0057a2f0
push edi
call fcn.00527160
add esp, 0x20
test eax, eax
jne 0x56fc01
and dword [esi + 0x94], 0xffffffdf
jmp 0x56ff3c
mov eax, dword [ebp - 0x38]
mov ebx, 0xa
cmp dword [eax], 0
cmovne ebx, dword [ebp - 0x2c]
xor edi, edi
test edx, edx
je 0x56fc8f
push str.full
push edx
call fcn.00576360
add esp, 8
test eax, eax
jne 0x56fc5c
lea edi, [eax + 1]
jmp 0x56fc8f
push str.restart
push dword [ebp - 0x50]
call fcn.00576360
add esp, 8
test eax, eax
jne 0x56fc75
lea edi, [eax + 2]
jmp 0x56fc8f
push str.truncate
push dword [ebp - 0x50]
call fcn.00576360
add esp, 8
mov ecx, 3
test eax, eax
cmove edi, ecx
mov eax, dword [ebp - 0x28]
push 1
push edi
push ebx
push 8
push esi
mov dword [eax + 0x2c], 3
call fcn.0057a360
push 3
push 1
push 0x4e
push esi
call fcn.0057a2f0
add esp, 0x24
jmp 0x56ff3c
test edx, edx
je 0x56fccf
push edx
call fcn.00554d40
push eax
push dword [ebp - 0x24]
call fcn.0052fc00
add esp, 0xc
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xe4], 0x585590
jne 0x56e2cf
mov eax, dword [eax + 0xe8]
jmp 0x56ff30
push dword [ebp - 0x24]
call fcn.00527180
add esp, 4
jmp 0x56ff3c
test edx, edx
je 0x56fd1a
push edx
call fcn.00554d40
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test cl, 2
je 0x56ff3c
jmp 0x56fd21
mov dword [ebp - 0x40], 0xfffe
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x3c], eax
inc eax
cmp dword [ebp - 0x44], 0
mov dword [ecx + 0x28], eax
je 0x56fd3e
mov eax, edi
mov dword [ebp - 0x4c], eax
jmp 0x56fd50
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x14]
dec eax
mov dword [ebp - 0x4c], eax
cmp edi, eax
jg 0x56fe7d
cmp edi, 1
je 0x56fe6b
push edi
push ecx
call fcn.0055a110
mov edx, dword [ebp - 0x24]
add esp, 8
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x56fe62
jmp 0x56fd80
mov edi, dword [ebx + 8]
test dword [edi + 0x24], 0x100
je 0x56fe55
mov ax, word [edi + 0x2c]
add ax, 0x2e
movzx ecx, ax
mov eax, dword [edi + 8]
mov dword [ebp - 8], ecx
test eax, eax
je 0x56fdb2
test byte [eax + 0x38], 0x80
je 0x56fdf0
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x56fda5
test cx, cx
je 0x56fdf0
push 0x69
push edi
push dword [ebp - 0x2c]
push dword [ebp - 0x3c]
push dword [ebp - 0x28]
call fcn.0056b1e0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x40]
cwde
and ecx, 1
push eax
mov eax, dword [esi + 0x88]
add ecx, 2
add eax, ecx
push eax
push dword [ebp - 0x3c]
push 0x22
push esi
call fcn.0057a360
mov edx, dword [ebp - 0x24]
add esp, 0x28
push dword [edi]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x30]
push dword [eax + ecx]
push str.ANALYZE___w_.__w_
push edx
call fcn.0056a820
add esp, 0x10
mov edx, eax
test byte [ebp - 0x40], 1
je 0x56fe3b
push dword [ebp - 0x28]
call fcn.005665c0
push 0xfffffffffffffff9
push edx
push 0
mov edi, eax
push edi
push 0
push 0x61
push esi
call fcn.0057a3c0
push 1
push edi
push 0x4e
push esi
call fcn.0057a2f0
add esp, 0x30
jmp 0x56fe52
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
push 0x89
push esi
call fcn.0057a3c0
add esp, 0x1c
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x56fd80
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x30]
inc edi
add ebx, 0x10
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], ebx
cmp edi, eax
jle 0x56fd50
push 0x98
push esi
call fcn.0057a230
add esp, 8
jmp 0x56ff3c
test edx, edx
je 0x56feb3
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.0055c170
add esp, 8
test eax, eax
jne 0x56feb3
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.00527410
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00527410
push edx
push eax
push esi
call fcn.00550f00
add esp, 0x14
jmp 0x56ff3c
test edx, edx
je 0x56ff06
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.0055c170
add esp, 8
test eax, eax
jne 0x56ff06
cmp dword [ebp - 8], eax
jl 0x56ff06
mov eax, dword [ebp - 0xc]
jg 0x56feec
test eax, eax
jb 0x56ff06
and eax, 0x7fffffff
jl 0x56ff06
mov ecx, 8
cmp eax, ecx
cmovg eax, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0x90], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x90]
jmp 0x56ff30
test edx, edx
je 0x56ff27
push edx
call fcn.00554d40
push eax
push dword [ebp - 0x24]
call fcn.0052b6b0
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x1a8]
cdq
push edx
push eax
push esi
call fcn.00550f00
add esp, 0xc
push dword [ebp - 0x6c]
push dword [ebp - 0x24]
call fcn.0055bd40
push dword [ebp - 0x50]
push dword [ebp - 0x24]
call fcn.0055bd40
add esp, 0x10
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00722035
mov esp, ebp
pop ebp
ret