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

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x70]
push ebp
mov ebp, dword [ebx + 8]
push edi
mov edi, dword [ebx]
mov dword [esp + 0xc], edi
test ebp, ebp
jne 0x514739
cmp dword [ebx + 0x74], ebp
jne 0x514726
test byte [edi + 0x44], 8
jne 0x514726
mov byte [ebx + 0x17], 1
push ebx
call fcn.004cbd70
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x5167d9
mov eax, dword [esp + 0x7c]
or dword [ebp + 0x94], 0x40
push eax
mov eax, dword [esp + 0x84]
push ebx
lea ecx, [esp + 0x50]
mov dword [ebx + 0x2c], 2
call fcn.004d8080
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jl 0x5167d9
mov edx, dword [edi + 0x10]
mov ecx, eax
shl ecx, 4
add edx, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x14], edx
cmp eax, 1
jne 0x514792
mov eax, ebx
call fcn.00502560
test eax, eax
jne 0x5167d9
mov eax, dword [esp + 0x48]
test eax, eax
je 0x5167d9
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push esi
push 0
push ecx
push edx
push edi
call fcn.004bc010
mov esi, eax
add esp, 0x10
mov dword [esp + 0x28], esi
call fcn.004ad0f0
test esi, esi
je 0x5167d8
cmp dword [esp + 0x8c], 0
mov eax, dword [esp + 0x88]
je 0x5147eb
push eax
push 0x5f35e0
call fcn.004d31d0
mov esi, eax
add esp, 8
mov dword [esp + 0x24], esi
jmp 0x5147fa
push edi
call fcn.004c20c0
add esp, 4
mov dword [esp + 0x24], eax
mov esi, eax
mov ecx, dword [esp + 0x84]
cmp dword [ecx + 4], 0
jbe 0x51480f
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
jmp 0x514811
xor eax, eax
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
push esi
push eax
push 0x13
mov eax, ebx
call fcn.004d7e50
add esp, 0x10
test eax, eax
jne 0x5167be
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x68]
push edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], esi
mov dword [edi + 0x18c], eax
mov eax, dword [esp + 0x20]
push 0xe
push eax
push edi
call fcn.004cb580
add esp, 0x10
mov dword [esp + 0x44], eax
test eax, eax
jne 0x5148a8
push 1
push ebp
call fcn.004c02c0
mov ecx, dword [esp + 0x70]
push 0xffffffffffffffff
push ecx
push 0
push 0
mov ecx, ebp
call fcn.004cf920
mov eax, dword [esp + 0x80]
mov ecx, ebp
call fcn.004cd360
mov edx, dword [esp + 0x80]
push edx
call fcn.004acb60
add esp, 0x1c
jmp 0x5167be
cmp dword [esp + 0x44], 0xc
je 0x5148e0
mov eax, dword [esp + 0x68]
test eax, eax
je 0x5148d1
push eax
push 0x5e35b8
mov esi, ebx
call fcn.004d3500
mov eax, dword [esp + 0x70]
push eax
call fcn.004acb60
add esp, 0xc
mov ecx, dword [esp + 0x44]
inc dword [ebx + 0x24]
mov dword [ebx + 0xc], ecx
jmp 0x5167be
mov edx, dword [esp + 0x28]
push edx
call fcn.004c28f0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x5167be
mov ecx, eax
test byte [ecx + 5], 1
je 0x514916
push ebx
call fcn.00528960
add esp, 4
test eax, eax
jne 0x5167be
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 5]
test al, 2
jne 0x514936
test al, 4
je 0x514925
test esi, esi
jne 0x514936
mov eax, dword [esp + 0x20]
push ebp
call fcn.004d17a0
mov ecx, dword [esp + 0x24]
add esp, 4
movzx eax, byte [ecx + 4]
cmp eax, 0x27
ja case.0x514943.3
jmp dword [eax*4 + 0x5167e0]
mov edi, dword [esp + 0x14]
mov ecx, edi
mov eax, ebp
call fcn.004b3b10
test esi, esi
jne 0x514986
add dword [ebx + 0x2c], 2
push 9
mov eax, 0x5ec69c
mov edi, ebp
call fcn.004c5a10
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x5167be
mov ecx, esi
call fcn.004bc690
call fcn.004adee0
push 0
mov ecx, edi
mov edx, ebx
mov esi, eax
call fcn.00502690
push esi
push 3
push edi
push 0x6b
push ebp
call fcn.004c5720
mov eax, dword [esp + 0x30]
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.004bf7c0
add esp, 0x1c
jmp 0x5167be
mov edx, dword [esp + 0x18]
mov ebx, dword [edx + 4]
test esi, esi
jne 0x5149ed
test ebx, ebx
je 0x5149e6
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x20]
jmp 0x5167b1
xor eax, eax
jmp 0x5167b1
mov ecx, esi
call fcn.004bc690
push 0
push 0xffffffffffffffff
mov dword [edi + 0x54], eax
push eax
mov eax, ebx
call fcn.004ffdc0
add esp, 0xc
cmp eax, 7
jne 0x5167be
mov eax, edi
call fcn.004acc90
jmp 0x5167be
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], 0xffffffff
test esi, esi
je 0x514a66
push str.fast
push esi
call fcn.004bc3f0
add esp, 8
test eax, eax
jne 0x514a4e
mov dword [esp + 0x7c], 2
jmp 0x514a66
push 0
push 1
push esi
call fcn.004c2730
xor ecx, ecx
add esp, 0xc
test al, al
setne cl
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x84]
cmp dword [edx + 4], 0
jne 0x514aa0
cmp dword [esp + 0x7c], 0
jl 0x514aa0
xor esi, esi
cmp dword [edi + 0x14], esi
jle 0x514aa0
xor ebx, ebx
mov eax, dword [esp + 0x7c]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [ebx + ecx + 4]
call fcn.004bf940
inc esi
add esp, 4
add ebx, 0x10
cmp esi, dword [edi + 0x14]
jl 0x514a83
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
push edx
call fcn.004bf940
cdq
push edx
push eax
mov esi, ebp
call fcn.004c87c0
add esp, 0xc
jmp 0x5167be
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, ebx
call fcn.005025f0
inc dword [ebx + 0x2c]
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax]
cmp byte [ecx + 0x5eb2b0], 0x70
mov ebx, dword [ebx + 0x2c]
jne 0x514aee
push 0
push ebx
push edi
push 0xa7
jmp 0x514b02
mov ecx, esi
call fcn.004bc690
call fcn.004adee0
push eax
push ebx
push edi
push 0xa8
push ebp
call fcn.004c5720
add esp, 0x14
push 0
push 1
push ebx
push 0x51
push ebp
call fcn.004c5720
add esp, 0x14
jmp 0x5167be
mov esi, dword [esp + 0x24]
mov dword [esp + 0x7c], str.normal
call fcn.004b83b0
mov edx, eax
mov eax, dword [esp + 0x84]
mov eax, dword [eax + 4]
test eax, eax
jne 0x514b80
cmp edx, 0xffffffff
jne 0x514b4e
mov ecx, edi
movzx eax, byte [ecx + 0x4b]
jmp 0x514b91
test eax, eax
jne 0x514b80
mov esi, 2
mov ebx, edi
cmp dword [ebx + 0x14], esi
jle 0x514b7d
mov edi, 0x20
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi + eax + 4]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
call fcn.004be730
inc esi
add edi, 0x10
cmp esi, dword [ebx + 0x14]
jl 0x514b63
mov byte [ebx + 0x4b], dl
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call fcn.004be730
cmp eax, 1
jne 0x514b9e
mov dword [esp + 0x7c], str.exclusive
mov eax, dword [esp + 0x7c]
mov ecx, ebp
call fcn.004cd360
jmp 0x5167be
test esi, esi
jne 0x514bbc
mov dword [esp + 0x7c], 0xffffffff
jmp 0x514bff
mov eax, esi
call fcn.004ad060
mov dword [esp + 0x50], eax
xor ebx, ebx
lea esp, [esp]
cmp ebx, 6
je 0x514bb2
mov eax, dword [ebx*4 + 0x5ec680]
test eax, eax
je 0x514bb2
mov edx, dword [esp + 0x50]
push edx
push eax
push esi
call fcn.004ad1c0
add esp, 0xc
test eax, eax
je 0x514bf6
inc ebx
jmp 0x514bd0
mov dword [esp + 0x7c], ebx
cmp ebx, 0xffffffff
jne 0x514c1b
mov eax, dword [esp + 0x84]
cmp dword [eax + 4], 0
jne 0x514c1b
mov dword [esp + 0x14], 0
mov dword [eax + 4], 1
mov esi, dword [edi + 0x14]
sub esi, 1
js 0x514c71
mov ebx, esi
shl ebx, 4
jmp 0x514c30
mov eax, dword [edi + 0x10]
cmp dword [ebx + eax + 4], 0
je 0x514c69
cmp esi, dword [esp + 0x14]
je 0x514c4d
mov ecx, dword [esp + 0x84]
cmp dword [ecx + 4], 0
jne 0x514c69
mov ecx, esi
mov eax, ebp
call fcn.004b3b10
mov edx, dword [esp + 0x7c]
push edx
push 1
push esi
push 7
push ebp
call fcn.004c5720
add esp, 0x14
dec esi
sub ebx, 0x10
test esi, esi
jge 0x514c30
push 0
push 1
push 1
push 0x51
push ebp
call fcn.004c5720
add esp, 0x14
jmp 0x5167be
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
mov ebx, dword [edx]
or ecx, 0xffffffff
mov eax, 0xfffffffe
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
test esi, esi
je 0x514cd5
lea eax, [esp + 0x5c]
push eax
mov edi, esi
call fcn.004bc410
mov ecx, dword [esp + 0x64]
add esp, 4
cmp ecx, 0xffffffff
jg 0x514cd1
jl 0x514cca
mov eax, dword [esp + 0x5c]
cmp eax, 0xffffffff
jae 0x514cd5
or eax, 0xffffffff
or ecx, eax
jmp 0x514cd5
mov eax, dword [esp + 0x5c]
push ecx
push eax
mov ecx, ebx
call fcn.004be760
push edx
push eax
mov esi, ebp
call fcn.004c87c0
add esp, 0x10
jmp 0x5167be
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 4]
test esi, esi
jne 0x514d06
mov eax, edi
call fcn.004bfa30
jmp 0x5167b1
mov esi, dword [esp + 0x24]
call fcn.004c27f0
mov edx, dword [esp + 0x10]
mov ebx, eax
push ebx
mov eax, edi
mov byte [edx + 0x4c], bl
call fcn.004bf9b0
add esp, 4
test eax, eax
jne 0x5167be
cmp ebx, 1
je 0x514d39
cmp ebx, 2
jne 0x5167be
mov esi, dword [ebp + 0x88]
push 5
mov eax, 0x5ec6c4
mov edi, ebp
call fcn.004c5a10
mov ecx, dword [esp + 0x18]
add esi, 4
dec ebx
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x30], esi
mov dword [eax + 0x54], ecx
mov dword [eax + 0x5c], ebx
add esp, 4
mov eax, ebp
call fcn.004b3b10
jmp 0x5167be
test esi, esi
je 0x514d91
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.004bc510
add esp, 8
test eax, eax
je 0x514d91
mov edi, dword [esp + 0x7c]
test edi, edi
jg 0x514d96
mov edi, Ordinal_1
mov esi, dword [esp + 0x14]
push 0
mov ecx, esi
mov edx, ebx
call fcn.00502690
push 0
push 1
push edi
push 0x46
push ebp
call fcn.004c5720
push 0
push 0
push esi
push 0x3b
push ebp
call fcn.004c5720
push 0
push 0
push 1
push 0x51
push ebp
mov esi, eax
call fcn.004c5720
add esp, 0x40
push 0
push 0xffffffffffffffff
push 1
push 0x53
push ebp
call fcn.004c5720
push 0
push esi
push 1
push 0x2f
push ebp
call fcn.004c5720
add esp, 0x28
mov eax, esi
mov edx, ebp
call fcn.004bff30
jmp 0x5167be
test esi, esi
jne 0x514e11
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0x50]
jmp 0x5167b1
mov ecx, esi
call fcn.004bc690
mov ecx, dword [esp + 0x18]
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.004bf7c0
add esp, 4
jmp 0x5167be
test esi, esi
jne 0x514e5c
test byte [edi + 0x1c], 0x20
je 0x5149e6
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
push esi
call fcn.004bf810
add esp, 4
jmp 0x5167b1
lea ecx, [esp + 0x7c]
push ecx
push esi
mov dword [esp + 0x84], 1
call fcn.004bc510
mov ebx, dword [esp + 0x84]
add esp, 8
test eax, eax
je 0x514e90
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
push ebx
call fcn.004bf810
add esp, 4
test ebx, ebx
setne al
mov ecx, esi
call fcn.004c27d0
test al, al
je 0x514eb2
or dword [edi + 0x1c], 0x20
push edi
call fcn.004c2860
add esp, 4
jmp 0x5167be
and dword [edi + 0x1c], 0xffffffdf
push edi
call fcn.004c2860
add esp, 4
jmp 0x5167be
test esi, esi
je 0x514f6c
lea eax, [esp + 0x5c]
push eax
mov edi, esi
call fcn.004bc410
mov ecx, dword [esp + 0x64]
add esp, 4
test ecx, ecx
jg 0x514f00
jl 0x514eec
cmp dword [esp + 0x5c], 0
jae 0x514f00
mov ecx, dword [0x633d68]
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x633d6c]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x84]
cmp dword [edx + 4], 0
mov eax, dword [esp + 0x10]
jne 0x514f1b
mov edx, dword [esp + 0x5c]
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov esi, dword [eax + 0x14]
sub esi, 1
js 0x514f6c
mov edi, esi
shl edi, 4
jmp 0x514f30
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x10]
mov eax, dword [edi + edx + 4]
test eax, eax
je 0x514f64
cmp esi, dword [esp + 0x14]
je 0x514f52
mov edx, dword [esp + 0x84]
cmp dword [edx + 4], 0
jne 0x514f64
push ecx
mov ecx, dword [esp + 0x60]
push ecx
call fcn.004ffd70
mov ecx, dword [esp + 0x68]
add esp, 8
dec esi
sub edi, 0x10
test esi, esi
jge 0x514f30
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
push 0x12
push eax
push ecx
call fcn.004cb580
add esp, 0x10
test eax, eax
jne 0x514fa1
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
jmp 0x5167b2
cmp eax, 0xc
je 0x5167be
inc dword [ebx + 0x24]
mov dword [ebx + 0xc], eax
jmp 0x5167be
test esi, esi
jne 0x514fc4
mov ecx, edi
movzx eax, byte [ecx + 0x48]
jmp 0x5167b1
mov eax, esi
mov edi, ebx
call fcn.00511900
jmp 0x5167be
test esi, esi
jne 0x514fe7
mov eax, dword [0x6417b8]
mov ecx, ebp
call fcn.004cd360
jmp 0x5167be
cmp byte [esi], 0
je 0x51501d
mov eax, dword [edi]
lea edx, [esp + 0x7c]
push edx
push 1
push esi
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x515009
cmp dword [esp + 0x7c], eax
jne 0x51501d
push str.not_a_writable_directory
mov esi, ebx
call fcn.004d3500
add esp, 4
jmp 0x5167be
cmp byte [edi + 0x48], 1
ja 0x51502a
mov eax, ebx
call fcn.005118b0
mov ecx, dword [0x6417b8]
push ecx
call fcn.004acb60
add esp, 4
cmp byte [esi], 0
je 0x515053
push esi
push 0x5e35b8
call fcn.004d32a0
mov dword [0x6417b8], eax
jmp 0x5167bb
mov dword [0x6417b8], 0
jmp 0x5167be
test esi, esi
jne 0x515077
mov eax, dword [0x6417bc]
mov ecx, ebp
call fcn.004cd360
jmp 0x5167be
cmp byte [esi], 0
je 0x5150a1
mov edi, dword [edi]
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x7c]
push edx
push 1
push esi
push edi
call eax
add esp, 0x10
test eax, eax
jne 0x515009
cmp dword [esp + 0x7c], eax
je 0x515009
mov ecx, dword [0x6417bc]
push ecx
call fcn.004acb60
add esp, 4
cmp byte [esi], 0
je 0x5150ca
push esi
push 0x5e35b8
call fcn.004d32a0
mov dword [0x6417bc], eax
jmp 0x5167bb
mov dword [0x6417bc], 0
jmp 0x5167be
test esi, esi
jne 0x5150eb
mov edx, dword [esp + 0x18]
movzx eax, byte [edx + 8]
dec eax
jmp 0x5167b1
cmp byte [edi + 0x47], 0
jne 0x515105
push str.Safety_level_may_not_be_changed_inside_a_transaction
mov esi, ebx
call fcn.004d3500
add esp, 4
jmp 0x5167be
cmp dword [esp + 0x14], 1
je 0x5167be
push 1
push 0
push esi
call fcn.004c2730
add esp, 0xc
inc eax
and eax, 7
jne 0x515128
mov eax, 1
mov ecx, dword [esp + 0x18]
push edi
mov byte [ecx + 8], al
mov byte [ecx + 9], 1
call fcn.004c2860
add esp, 4
jmp 0x5167be
test esi, esi
jne 0x515171
mov esi, dword [esp + 0x20]
push ebp
mov eax, esi
call fcn.004d17a0
mov eax, dword [esi + 8]
mov ecx, edi
and eax, dword [ecx + 0x1c]
mov esi, ebp
neg eax
sbb eax, eax
neg eax
cdq
push edx
push eax
call fcn.004c87c0
add esp, 0xc
jmp 0x5167be
cmp byte [edi + 0x47], 0
mov ebx, dword [ecx + 8]
jne 0x515180
and ebx, 0xffffbfff
push 0
push 1
push esi
call fcn.004c2730
add esp, 0xc
test al, al
je 0x515196
or dword [edi + 0x1c], ebx
jmp 0x5151b3
mov edx, ebx
not edx
and dword [edi + 0x1c], edx
cmp ebx, 0x80000
jne 0x5151b3
xor eax, eax
mov dword [edi + 0x1d0], eax
mov dword [edi + 0x1d4], eax
push 0
push 0
push 0
push 0x9f
push ebp
call fcn.004c5720
push edi
call fcn.004c2860
add esp, 0x18
jmp 0x5167be
test esi, esi
je 0x5167be
mov eax, dword [esp + 0x1c]
push eax
push esi
push 2
push ebx
call fcn.00528e90
mov edi, eax
add esp, 0x10
test edi, edi
je 0x5167be
mov dword [esp + 0x7c], 0
call fcn.004b7150
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov dword [esp + 0x50], eax
mov dword [ebx + 0x2c], 6
call fcn.005025f0
push edi
mov eax, ebx
call fcn.004fa660
movsx ecx, word [edi + 0x2a]
mov esi, dword [edi + 4]
xor ebx, ebx
add esp, 4
mov dword [esp + 0x34], ebx
test ecx, ecx
jle 0x5167be
mov al, byte [esi + 0xf]
test al, 2
je 0x515245
inc dword [esp + 0x7c]
jmp 0x5152bd
test al, 1
jne 0x51524d
xor eax, eax
jmp 0x515272
mov edx, dword [esp + 0x50]
mov eax, 1
test edx, edx
je 0x515272
cmp ecx, eax
jl 0x515272
mov edx, dword [edx + 4]
movsx ebx, word [edx]
cmp ebx, dword [esp + 0x34]
je 0x515272
inc eax
add edx, 2
cmp eax, ecx
jle 0x515261
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x51527e
mov ecx, dword [ecx + 8]
jmp 0x515280
xor ecx, ecx
push eax
push ecx
xor ecx, ecx
cmp byte [esi + 0xc], cl
mov eax, esi
setne cl
push ecx
push 0x5d3001
call fcn.004ad080
mov ebx, dword [esp + 0x44]
mov edx, dword [esi]
add esp, 4
push eax
push edx
mov eax, ebx
sub eax, dword [esp + 0x90]
push eax
push str.issisi
push 1
mov eax, ebp
call fcn.004cbe50
add esp, 0x20
movsx ecx, word [edi + 0x2a]
inc ebx
add esi, 0x10
cmp ebx, ecx
mov dword [esp + 0x34], ebx
jl 0x515238
jmp 0x5167be
test esi, esi
je 0x5167be
mov ecx, dword [esp + 0x1c]
push ecx
push esi
push edi
call fcn.004b6f70
mov edi, eax
add esp, 0xc
test edi, edi
je 0x5167be
mov edx, dword [esp + 0x20]
cmp dword [edx + 8], 0
je 0x515312
movzx eax, word [edi + 0x34]
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x2c], 6
jmp 0x515321
movzx ecx, word [edi + 0x32]
mov dword [esp + 0x7c], ecx
mov dword [ebx + 0x2c], 3
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov edx, ebx
call fcn.005025f0
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x5167be
nop
mov eax, dword [edi + 4]
movzx eax, word [eax + esi*2]
test ax, ax
jge 0x515350
xor ecx, ecx
jmp 0x515360
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
movsx ecx, ax
shl ecx, 4
mov ecx, dword [ecx + edx]
push ecx
cwde
push eax
push esi
push str.iisX
push 1
mov eax, ebp
call fcn.004cbe50
mov ecx, dword [esp + 0x34]
add esp, 0x14
cmp dword [ecx + 8], 0
je 0x5153ab
movzx edx, word [edi + 0x32]
mov ecx, dword [edi + 0x20]
xor eax, eax
cmp esi, edx
mov edx, dword [ecx + esi*4]
setl al
push eax
mov eax, dword [edi + 0x1c]
movzx ecx, byte [eax + esi]
push edx
push ecx
push str.isiX
push 4
mov eax, ebp
call fcn.004cbe50
add esp, 0x14
mov edx, dword [ebx + 0x2c]
push 0
push edx
push 1
push 0x51
push ebp
call fcn.004c5720
inc esi
add esp, 0x14
cmp esi, dword [esp + 0x7c]
jl 0x515340
jmp 0x5167be
test esi, esi
je 0x5167be
mov eax, dword [esp + 0x1c]
push eax
push esi
push edi
call fcn.004c1f20
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5167be
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov dword [ebx + 0x2c], 5
call fcn.005025f0
mov esi, dword [esi + 8]
xor edi, edi
test esi, esi
je 0x5167be
mov dword [esp + 0x5c], 0x5f3568
mov dword [esp + 0x60], 0x5f3564
mov dword [esp + 0x64], 0x5ea314
mov edx, dword [esi + 0x38]
xor ecx, ecx
cmp dword [esi + 0x24], ecx
setne cl
and edx, 3
mov eax, dword [esp + edx*4 + 0x5c]
mov edx, dword [esi]
push ecx
xor ecx, ecx
cmp byte [esi + 0x36], cl
push eax
setne cl
mov eax, ebp
push ecx
push edx
push edi
push str.isisi
push 1
call fcn.004cbe50
mov esi, dword [esi + 0x14]
add esp, 0x1c
inc edi
test esi, esi
jne 0x515426
jmp 0x5167be
xor esi, esi
mov dword [ebx + 0x2c], 3
cmp dword [edi + 0x14], esi
jle 0x5167be
xor ebx, ebx
lea esp, [esp]
mov eax, dword [edi + 0x10]
lea edx, [ebx + eax]
mov eax, dword [edx + 4]
test eax, eax
je 0x5154a8
call fcn.004b2de0
mov ecx, dword [edx]
push eax
push ecx
push esi
push 0x5f3558
push 1
mov eax, ebp
call fcn.004cbe50
add esp, 0x14
inc esi
add ebx, 0x10
cmp esi, dword [edi + 0x14]
jl 0x515480
jmp 0x5167be
mov dword [ebx + 0x2c], 2
mov edi, dword [edi + 0x17c]
xor esi, esi
test edi, edi
je 0x5167be
lea ecx, [ecx]
mov edx, dword [edi + 8]
mov eax, dword [edx]
push eax
push esi
push 0x5f3554
push 1
mov eax, ebp
call fcn.004cbe50
mov edi, dword [edi]
add esp, 0x10
inc esi
test edi, edi
jne 0x5154d0
jmp 0x5167be
test esi, esi
je 0x5167be
mov ecx, dword [esp + 0x1c]
push ecx
push esi
push edi
call fcn.004c1f20
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
je 0x5167be
mov edx, eax
mov edi, dword [edx + 0x10]
test edi, edi
je 0x5167be
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov dword [esp + 0x7c], 0
mov dword [ebx + 0x2c], 8
call fcn.005025f0
mov edi, edi
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x5155a2
lea esi, [edi + 0x24]
lea ebx, [ebx]
mov al, byte [edi + 0x19]
push str.NONE
call fcn.004b8420
push eax
mov al, byte [edi + 0x1a]
call fcn.004b8420
mov ecx, dword [esi]
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esi + 4]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edi + 8]
shl ecx, 4
mov ecx, dword [ecx + eax]
mov eax, dword [esp + 0x8c]
push ecx
push edx
push ebx
push eax
push str.iissssss
push 1
mov eax, ebp
call fcn.004cbe50
inc ebx
add esp, 0x28
add esi, 8
cmp ebx, dword [edi + 0x14]
jl 0x515550
mov edi, dword [edi + 4]
inc dword [esp + 0x7c]
test edi, edi
jne 0x515540
jmp 0x5167be
mov eax, dword [ebx + 0x2c]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
inc eax
mov edx, ebx
mov dword [ebx + 0x2c], eax
call fcn.005025f0
mov eax, dword [esp + 0x50]
mov edx, dword [edi + 0x10]
mov ecx, dword [eax + edx + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x5167be
test esi, esi
je 0x515603
mov edx, dword [esp + 0x1c]
push edx
push esi
push 0
push ebx
call fcn.00528e90
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x515608
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x515929
cmp dword [edi + 0x10], 0
je 0x515929
mov eax, dword [edi]
mov ecx, dword [edi + 0x1c]
mov edx, dword [esp + 0x14]
push eax
push 0
push ecx
push edx
mov eax, ebx
call fcn.004c7650
movsx ecx, word [edi + 0x2a]
mov eax, dword [esp + 0x3c]
inc eax
add eax, ecx
add esp, 0x10
cmp eax, dword [ebx + 0x2c]
jle 0x51564d
mov dword [ebx + 0x2c], eax
mov edx, dword [esp + 0x14]
push 0x6d
push edx
push 0
mov eax, edi
mov ecx, ebx
call fcn.004fabb0
mov eax, dword [edi]
push eax
mov eax, dword [esp + 0x4c]
mov esi, ebp
call fcn.004cbdf0
mov esi, dword [edi + 0x10]
add esp, 0x10
mov dword [esp + 0x18], 1
test esi, esi
je 0x515728
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
call fcn.004c1f20
mov edi, eax
add esp, 0xc
test edi, edi
je 0x515719
mov ecx, dword [edi]
mov edx, dword [edi + 0x1c]
mov eax, dword [esp + 0x14]
push ecx
push 0
push edx
push eax
mov eax, ebx
mov dword [esp + 0x30], 0
call fcn.004c7650
push 0
lea ecx, [esp + 0x34]
push ecx
push esi
push edi
push ebx
call fcn.004dacc0
add esp, 0x24
test eax, eax
jne 0x5167be
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x18]
jne 0x5156f7
mov edx, dword [esp + 0x14]
push 0x6d
push edx
push eax
mov eax, edi
mov ecx, ebx
call fcn.004fabb0
add esp, 0xc
jmp 0x515719
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov edx, dword [edi + 0x2c]
push ecx
push edx
push eax
push 0x6d
push ebp
call fcn.004c5720
add esp, 0x14
mov ecx, edi
mov eax, ebx
call fcn.004f9880
mov esi, dword [esi + 4]
inc dword [esp + 0x18]
test esi, esi
jne 0x515683
mov eax, dword [esp + 0x18]
cmp dword [ebx + 0x28], eax
jge 0x515734
mov dword [ebx + 0x28], eax
push 0
push 0
push 0
push 0x24
push ebp
call fcn.004c5720
mov ecx, dword [esp + 0x44]
mov ebx, dword [ecx + 0x10]
add esp, 0x14
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], 1
test ebx, ebx
je 0x5158fd
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x10]
push edx
push eax
push ecx
call fcn.004c1f20
xor esi, esi
add esp, 0xc
mov dword [esp + 0x50], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], esi
cmp eax, esi
je 0x5157a4
lea edx, [esp + 0x40]
push edx
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x24]
push ecx
push ebx
push eax
push edx
call fcn.004dacc0
add esp, 0x14
mov eax, ebp
call fcn.004c59c0
cmp dword [ebx + 0x14], esi
mov dword [esp + 0x34], eax
jle 0x5157ff
mov edi, dword [esp + 0x2c]
lea eax, [ebx + 0x24]
inc edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5157cd
mov eax, dword [eax + esi*4]
jmp 0x5157d3
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x30]
push edi
push 0
push ebp
call fcn.004ee780
mov edx, dword [esp + 0x40]
push 0
push edx
push edi
push 0x32
push ebp
call fcn.004c5720
add dword [esp + 0x58], 8
inc esi
add esp, 0x20
inc edi
cmp esi, dword [ebx + 0x14]
jl 0x5157c0
cmp dword [esp + 0x20], 0
je 0x515849
mov eax, dword [ebx + 0x14]
mov esi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x14]
call fcn.004c85e0
push eax
mov eax, dword [esp + 0x34]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [ebx + 0x14]
push 0x66
mov edi, ebp
call fcn.004c5810
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
push 0
push ecx
mov ecx, dword [esp + 0x4c]
push 0x1d
mov esi, ebp
call fcn.004c5950
add esp, 0x1c
jmp 0x515881
cmp dword [esp + 0x50], 0
je 0x515881
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x88]
inc eax
push eax
mov eax, dword [esp + 0x1c]
add edx, 2
push edx
push eax
push 0x1e
push ebp
call fcn.004c5720
mov ecx, dword [esp + 0x48]
push 0
push ecx
push 0
push 0xb
push ebp
call fcn.004c5720
add esp, 0x28
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
test byte [edx + 0x24], 0x20
push 0
lea eax, [esi + 1]
push eax
push 0
jne 0x51589e
push 0x81
jmp 0x5158a0
push 0x49
push ebp
call fcn.004c5720
mov edi, dword [esp + 0x2c]
mov ecx, dword [ebx + 8]
add esp, 0x14
lea eax, [edi - 1]
push eax
push ecx
lea eax, [esi + 2]
push 0x5f353c
push eax
mov eax, ebp
call fcn.004cbe50
push 0
push 4
push esi
push 0x51
push ebp
call fcn.004c5720
mov edx, dword [esp + 0x58]
add esp, 0x24
mov ecx, ebp
call fcn.004b3900
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
call fcn.004acc50
mov ebx, dword [ebx + 4]
inc edi
mov dword [esp + 0x18], edi
test ebx, ebx
jne 0x515760
mov esi, dword [esp + 0x4c]
push 0
lea edx, [esi + 1]
push edx
push 0
push 5
push ebp
call fcn.004c5720
add esp, 0x14
mov eax, esi
mov edx, ebp
call fcn.004bff30
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x24]
test eax, eax
jne 0x5155e8
jmp 0x5167be
test esi, esi
je 0x5167be
mov eax, dword [esp + 0x24]
push 0
push 1
push eax
call fcn.004c2730
xor ecx, ecx
test al, al
setne cl
mov esi, edi
push ecx
call fcn.004faaf0
add esp, 0x10
jmp 0x5167be
mov edx, dword [esp + 0x28]
movzx eax, byte [edx]
mov edx, dword [esp + 0x84]
xor ecx, ecx
cmp byte [eax + 0x5eb2b0], 0x71
sete cl
cmp dword [edx], 0
mov dword [esp + 0x3c], ecx
jne 0x51598e
mov dword [esp + 0x14], 0xffffffff
mov dword [ebx + 0x2c], 6
mov ebx, 0x64
mov dword [esp + 0x20], ebx
test esi, esi
je 0x5159bb
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004bc510
add esp, 8
cmp dword [esp + 0x20], 0
jg 0x5159bb
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
push 0
push 1
dec ecx
push ecx
push 0x46
push ebp
call fcn.004c5720
xor esi, esi
add esp, 0x14
cmp dword [edi + 0x14], esi
mov dword [esp + 0x18], esi
jle 0x5162a4
nop
mov eax, dword [esp + 0x14]
xor ebx, ebx
test eax, eax
jl 0x5159f2
cmp esi, eax
jne 0x516292
mov edx, dword [esp + 0x7c]
mov ecx, esi
call fcn.005025f0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
shl esi, 4
mov dword [esp + 0x4c], esi
mov esi, dword [esi + eax + 0xc]
mov edi, dword [esi + 0x10]
add esi, 8
xor edx, edx
mov dword [esp + 0x48], esi
test edi, edi
je 0x515a48
nop
mov eax, dword [edi + 8]
test byte [eax + 0x24], 0x20
jne 0x515a2a
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x515a3c
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x515a33
cmp ecx, ebx
jle 0x515a42
mov ebx, ecx
mov edi, dword [edi]
test edi, edi
jne 0x515a20
mov eax, dword [esp + 0x10]
lea ecx, [edx*4 + 4]
push 0
push ecx
call fcn.004bbee0
add esp, 8
test eax, eax
je 0x5162a4
mov edi, dword [esi + 8]
xor ecx, ecx
test edi, edi
je 0x515a9b
nop
mov edx, dword [edi + 8]
test byte [edx + 0x24], 0x20
jne 0x515a80
mov esi, dword [edx + 0x1c]
inc ecx
mov dword [eax + ecx*4], esi
mov edx, dword [edx + 8]
test edx, edx
je 0x515a95
mov esi, dword [edx + 0x2c]
inc ecx
mov dword [eax + ecx*4], esi
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x515a87
mov edi, dword [edi]
test edi, edi
jne 0x515a70
mov edx, dword [esp + 0x7c]
mov dword [eax], ecx
mov edi, dword [edx + 0x2c]
add ebx, 8
cmp edi, ebx
jg 0x515aad
mov edi, ebx
push 0xfffffffffffffff1
push eax
mov dword [edx + 0x2c], edi
push 2
push 0x94
mov eax, 1
mov edi, ebp
mov byte [edx + 0x13], 0
mov dword [edx + 0x1c], 0
call fcn.004c5810
movzx dx, byte [esp + 0x28]
mov ecx, ebp
call fcn.004b3950
push 0
push 0
push 2
push 0x32
push ebp
call fcn.004c5720
mov edi, dword [esp + 0x34]
mov edx, dword [edi + 0x10]
add esp, 0x24
mov ebx, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + edx]
push 0xfffffffffffffff9
push ecx
push str._in_database__s__n
call fcn.004d31d0
add esp, 8
push eax
xor eax, eax
push 0
push 0x6a
lea ecx, [eax + 3]
mov edi, ebp
call fcn.004c5810
push 3
push 3
push 2
push 0x65
push ebp
call fcn.004c5720
add esp, 0x24
mov esi, ebp
call fcn.004c8880
mov eax, ebx
mov edx, ebp
call fcn.004bff30
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
mov dword [esp + 0x44], eax
test eax, eax
je 0x51628e
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 8]
cmp dword [eax + 0x1c], 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], 0xffffffff
jl 0x51627c
mov ebx, eax
test byte [ebx + 0x24], 0x20
jne 0x515b8b
mov dword [esp + 0x38], 0
jmp 0x515b96
mov eax, ebx
call fcn.004b7150
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x30]
push edx
push 0
push 1
push 0
push 0x6d
push ebx
push eax
call fcn.004faf60
push 0
push 7
push 0
push 0x46
push ebp
call fcn.004c5720
mov esi, dword [ebx + 8]
add esp, 0x34
test esi, esi
je 0x515be8
mov edi, 8
push 0
push edi
push 0
push 0x46
push ebp
call fcn.004c5720
mov esi, dword [esi + 0x14]
add esp, 0x14
inc edi
test esi, esi
jne 0x515bd0
mov esi, dword [esp + 0x2c]
push 0
push 0
push esi
push 0x24
push ebp
call fcn.004c5720
push 0
push 1
push 7
push 0x53
push ebp
call fcn.004c5720
add esp, 0x28
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x5c], eax
jne 0x515c35
movsx ecx, word [ebx + 0x2a]
push 3
dec ecx
push ecx
push esi
push 0x5a
push ebp
call fcn.004c5720
add esp, 0x14
mov edx, 0x80
mov ecx, ebp
call fcn.004b3950
xor eax, eax
xor edx, edx
cmp dx, word [ebx + 0x2a]
mov dword [esp + 0x40], eax
jge 0x515cfd
mov dword [esp + 0x34], edx
jmp 0x515c50
movsx ecx, word [ebx + 0x28]
cmp eax, ecx
je 0x515ce3
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x34]
cmp byte [ecx + edx + 0xc], 0
je 0x515ce3
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
push 3
push edx
push ebp
mov ecx, ebx
call fcn.004ee780
mov edx, 0x80
mov ecx, ebp
call fcn.004b3950
push 0
push 0
push 3
push 0x33
push ebp
call fcn.004c5720
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 4]
mov edx, dword [ecx + eax]
mov eax, dword [ebx]
push edx
push eax
push str.NULL_value_in__s._s
call fcn.004d31d0
push 0xfffffffffffffff9
push eax
xor eax, eax
push 0
push 0x6a
lea ecx, [eax + 3]
mov edi, ebp
call fcn.004c5810
add esp, 0x3c
mov esi, ebp
call fcn.004c8880
mov eax, dword [esp + 0x48]
mov edx, ebp
call fcn.004bff30
mov eax, dword [esp + 0x40]
movsx ecx, word [ebx + 0x2a]
add dword [esp + 0x34], 0x10
inc eax
cmp eax, ecx
mov dword [esp + 0x40], eax
jl 0x515c50
mov esi, dword [esp + 0x2c]
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x515e54
mov edi, dword [esp + 0x10]
test dword [edi + 0x1c], 0x200
jne 0x515e54
push 0
push eax
push edi
call fcn.004c6da0
add esp, 0xc
cmp byte [edi + 0x49], 0
mov dword [esp + 0x34], eax
jne 0x515e42
mov eax, ebp
call fcn.004c59c0
mov edi, eax
mov eax, ebp
call fcn.004c59c0
mov edx, dword [esp + 0x7c]
inc esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x38], esi
mov esi, dword [eax]
dec esi
test esi, esi
jle 0x515d91
lea ecx, [esi + esi*2]
mov edx, eax
lea eax, [edx + ecx*8 + 4]
mov dword [esp + 0x40], eax
jmp 0x515d70
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, dword [esp + 0x7c]
push 0
push edi
push edx
push eax
call fcn.005142b0
sub dword [esp + 0x50], 0x18
dec esi
add esp, 0x10
test esi, esi
jg 0x515d70
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x7c]
push 0x10
push ecx
push eax
push esi
call fcn.00513f40
mov edx, edi
mov ecx, ebp
call fcn.004b3900
mov edi, dword [esp + 0x20]
mov dword [esi + 0x38], 0
mov ecx, dword [ebx]
push ecx
push str.CHECK_constraint_failed_in__s
call fcn.004d31d0
push 0
push 3
push 0
push 0x6a
push ebp
mov esi, eax
call fcn.004c5720
mov ecx, dword [ebp]
add esp, 0x2c
cmp byte [ecx + 0x49], 0
je 0x515df5
push 0xfffffffffffffff9
mov eax, esi
call fcn.004bff60
add esp, 4
jmp 0x515e2c
test eax, eax
jge 0x515e00
mov eax, dword [ebp + 0x88]
dec eax
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
cmp byte [eax + edx*4 + 1], 0
lea ecx, [eax + edx*4]
je 0x515e21
push esi
push ebp
mov eax, 0xfffffff9
call fcn.004c00f0
add esp, 8
jmp 0x515e2c
test esi, esi
je 0x515e2c
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf9
mov esi, ebp
call fcn.004c8880
mov edx, dword [esp + 0x48]
mov ecx, ebp
call fcn.004b3900
mov eax, dword [esp + 0x34]
test eax, eax
je 0x515e54
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.004c7020
add esp, 8
cmp dword [esp + 0x3c], 0
jne 0x516125
mov edx, dword [esp + 0x1c]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x516125
mov esi, dword [esp + 0x50]
mov eax, 8
sub eax, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x48], eax
mov eax, ebp
call fcn.004c59c0
mov dword [esp + 0x40], eax
cmp dword [esp + 0x38], ebx
je 0x516111
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x7c]
push eax
push ecx
push 0
push 0
push edx
push ebx
lea eax, [esp + 0x70]
call fcn.004fa820
mov edi, eax
mov eax, dword [esp + 0x60]
push 0
push 1
add eax, esi
push eax
push 0x53
push ebp
mov dword [esp + 0x5c], edi
mov dword [esp + 0x78], ebx
call fcn.004c5720
mov edx, dword [esp + 0x6c]
movzx ecx, word [ebx + 0x34]
push edi
push edx
push esi
push 0x1d
push ebp
mov dword [esp + 0x94], ecx
call fcn.004c5720
mov edi, eax
mov eax, dword [ebp]
add esp, 0x40
cmp byte [eax + 0x49], 0
jne 0x515f10
mov edx, dword [ebp + 0x58]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x54]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], ecx
push str.row
mov eax, 3
mov esi, ebp
call fcn.004cbdf0
push 3
push 3
push 7
push 0x65
push ebp
call fcn.004c5720
push str._missing_from_index
mov eax, 4
call fcn.004cbdf0
push 3
push 3
push 4
push 0x65
push ebp
call fcn.004c5720
mov edx, dword [ebx]
push edx
mov eax, 4
call fcn.004cbdf0
push 3
push 3
push 4
push 0x65
push ebp
mov dword [esp + 0x9c], eax
call fcn.004c5720
add esp, 0x48
call fcn.004c8880
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x88]
test edi, edi
jge 0x515f87
lea edi, [eax - 1]
mov ecx, dword [ebp]
cmp byte [ecx + 0x49], 0
je 0x515f97
mov ecx, 0x6413f8
jmp 0x515fa0
mov ecx, dword [ebp + 0x58]
lea edx, [edi + edi*4]
lea ecx, [ecx + edx*4]
mov dword [ecx + 8], eax
cmp byte [ebx + 0x36], 0
je 0x5160ba
mov eax, ebp
call fcn.004c59c0
xor edx, edx
xor esi, esi
mov edi, eax
cmp dx, word [ebx + 0x32]
jae 0x515ffb
mov eax, dword [ebx + 4]
movsx eax, word [eax + esi*2]
test eax, eax
jl 0x515fdc
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
shl eax, 4
cmp byte [eax + edx + 0xc], 0
jne 0x515ff2
mov eax, dword [esp + 0x30]
push 0
push edi
lea ecx, [esi + eax]
push ecx
push 0x32
push ebp
call fcn.004c5720
add esp, 0x14
movzx edx, word [ebx + 0x32]
inc esi
cmp esi, edx
jl 0x515fc0
mov eax, dword [esp + 0x34]
push 0
push 0
push eax
push 5
push ebp
call fcn.004c5720
push 0
push edi
push 0
push 0xb
push ebp
mov esi, eax
call fcn.004c5720
mov eax, dword [ebp + 0x88]
add esp, 0x28
test esi, esi
jge 0x51602b
lea esi, [eax - 1]
mov ecx, dword [ebp]
cmp byte [ecx + 0x49], 0
je 0x51603b
mov ecx, 0x6413f8
jmp 0x516044
mov ecx, dword [ebp + 0x58]
lea edx, [esi + esi*4]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x30]
push edx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x38]
movzx esi, word [ebx + 0x32]
push edi
push eax
push 0x26
push ebp
call fcn.004c5720
mov ecx, dword [ebp]
add esp, 0x14
cmp byte [ecx + 0x49], 0
jne 0x51607a
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea eax, [eax + edx*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], esi
push str.non_unique_entry_in_index
mov eax, 3
mov esi, ebp
call fcn.004cbdf0
mov ecx, dword [esp + 0x58]
push 0
push ecx
push 0
push 0xb
push ebp
call fcn.004c5720
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
add esp, 0x18
test eax, eax
je 0x5160ba
mov ecx, dword [ebp + 0x88]
lea edx, [edi*4 + 4]
sub eax, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 0x88]
test eax, eax
jge 0x5160cb
lea eax, [ecx - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x5160db
mov eax, 0x6413f8
jmp 0x5160e4
mov edx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
test edx, edx
je 0x516111
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x516111
mov ecx, dword [ecx + 0x88]
lea edx, [edx*4 + 4]
sub eax, edx
mov dword [eax], ecx
mov esi, dword [esp + 0x34]
mov ebx, dword [ebx + 0x14]
inc esi
mov dword [esp + 0x34], esi
test ebx, ebx
jne 0x515e81
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
push 0
push esi
push edx
push 5
push ebp
call fcn.004c5720
mov ecx, dword [ebp + 0x88]
lea eax, [esi - 1]
add esp, 0x14
test eax, eax
jge 0x51614c
lea eax, [ecx - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x51615c
mov eax, 0x6413f8
jmp 0x516165
mov edx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
cmp dword [esp + 0x3c], 0
mov dword [eax + 8], ecx
jne 0x51627c
push str.wrong__of_entries_in_index
mov eax, 2
mov esi, ebp
call fcn.004cbdf0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 8]
add esp, 4
test ebx, ebx
je 0x51627c
mov dword [esp + 0x40], 8
mov edi, edi
cmp dword [esp + 0x38], ebx
je 0x51626d
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
push 0
push 3
lea edx, [ecx + esi - 8]
push edx
push 0x68
push ebp
call fcn.004c5720
push 3
push 0
push esi
push 0x35
push ebp
call fcn.004c5720
mov edi, eax
mov eax, dword [ebp + 0x88]
add esp, 0x28
test eax, eax
jle 0x5161ef
mov ecx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
mov edx, 0x90
mov word [ecx + eax*4 - 0x12], dx
mov eax, dword [ebx]
push eax
mov eax, 4
mov esi, ebp
call fcn.004cbdf0
push 3
push 2
push 4
push 0x65
push ebp
call fcn.004c5720
push 0
push 1
push 3
push 0x51
push ebp
call fcn.004c5720
mov ecx, dword [ebp + 0x88]
push 1
add ecx, 2
push ecx
push 1
push 0x2f
push ebp
call fcn.004c5720
add esp, 0x40
push 0
push 0
push 0
push 0x45
push ebp
call fcn.004c5720
mov eax, dword [ebp + 0x88]
add esp, 0x14
test edi, edi
jge 0x516251
lea edi, [eax - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x516261
mov ecx, 0x6413f8
jmp 0x51626a
mov edx, dword [ebp + 0x58]
lea ecx, [edi + edi*4]
lea ecx, [edx + ecx*4]
mov dword [ecx + 8], eax
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x40]
test ebx, ebx
jne 0x5161a0
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x515b54
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc esi
cmp esi, dword [ecx + 0x14]
mov dword [esp + 0x18], esi
jl 0x5159e0
push 7
mov eax, 0x5ec6dc
mov edi, ebp
call fcn.004c5a10
add esp, 4
test eax, eax
je 0x5162e8
mov edx, 1
sub edx, dword [esp + 0x20]
mov byte [eax + 0x29], 0xff
mov dword [eax + 8], edx
mov dword [eax + 0x38], 0x5f3490
mov byte [eax + 0x65], 0xff
mov edx, dword [str.database_disk_image_is_malformed]
mov ecx, str.unknown_error
test edx, edx
je 0x5162e5
mov ecx, edx
mov dword [eax + 0x74], ecx
mov ecx, dword [ebp]
cmp byte [ecx + 0x49], 0
mov eax, dword [ebp + 0x88]
je 0x516307
mov ebp, 0x6413f8
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
jmp 0x5167be
mov ebp, dword [ebp + 0x58]
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
jmp 0x5167be
test esi, esi
jne 0x516343
push ebx
call fcn.00528960
add esp, 4
test eax, eax
jne 0x5167be
mov edx, dword [ebx]
movzx eax, byte [edx + 0x46]
mov eax, dword [eax*8 + 0x5ec6f8]
mov ecx, ebp
call fcn.004cd360
jmp 0x5167be
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0xc]
movzx eax, word [ecx + 0x4e]
test al, 1
je 0x516359
test al, 4
je 0x5167be
mov eax, dword [str.UTF8]
mov ebp, 0x5ec6f8
test eax, eax
je 0x5163a3
mov ecx, esi
call fcn.004ad170
test eax, eax
je 0x51637e
mov eax, dword [ebp + 8]
add ebp, 8
test eax, eax
jne 0x516367
jmp 0x5163a3
mov al, byte [ebp + 4]
test al, al
movzx eax, al
jne 0x51638d
mov eax, 2
mov edx, dword [edi + 0x10]
mov byte [edi + 0x46], al
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x4d], al
cmp dword [ebp], 0
jne 0x5167be
mov edx, dword [esp + 0x24]
push edx
push str.unsupported_encoding:__s
mov esi, ebx
call fcn.004d3500
jmp 0x5167bb
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov ecx, ebx
mov eax, ebp
call fcn.004b3b10
test esi, esi
je 0x51640d
test byte [edi + 5], 8
jne 0x51640d
push 2
mov eax, 0x5ec740
mov edi, ebp
call fcn.004c5a10
mov ecx, dword [esp + 0x80]
mov edi, eax
mov dword [edi + 0x1c], ecx
add esp, 4
mov ecx, esi
mov dword [edi + 4], ebx
mov dword [edi + 0x18], ebx
call fcn.004bc690
mov dword [edi + 0x20], eax
jmp 0x5167be
push 3
mov eax, 0x5ec748
mov edi, ebp
call fcn.004c5a10
mov edx, dword [esp + 0x80]
add esp, 4
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x20], edx
and dword [ebp + 0x94], 0xffffffbf
jmp 0x5167be
xor edi, edi
push edi
mov dword [ebx + 0x2c], 1
call fcn.004bb8f0
add esp, 4
test eax, eax
je 0x516479
push eax
mov eax, 1
mov esi, ebp
inc edi
call fcn.004cbdf0
push 0
push 1
push 1
push 0x51
push ebp
call fcn.004c5720
push edi
call fcn.004bb8f0
add esp, 0x1c
test eax, eax
jne 0x516450
and dword [ebp + 0x94], 0xffffffbf
jmp 0x5167be
mov eax, dword [esp + 0x84]
cmp dword [eax], 0
je 0x51649b
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
jmp 0x5164a3
mov dword [esp + 0x7c], 0xa
xor edi, edi
test esi, esi
je 0x5164e8
mov eax, str.full
mov ecx, esi
call fcn.004ad170
test eax, eax
jne 0x5164be
lea edi, [eax + 1]
jmp 0x5164e8
mov eax, str.restart
mov ecx, esi
call fcn.004ad170
test eax, eax
jne 0x5164d3
lea edi, [eax + 2]
jmp 0x5164e8
mov eax, str.truncate
mov ecx, esi
call fcn.004ad170
test eax, eax
jne 0x5164e8
mov edi, 3
mov edx, dword [esp + 0x7c]
push 1
push edi
push edx
push 6
push ebp
mov dword [ebx + 0x2c], 3
call fcn.004c5720
push 0
push 3
push 1
push 0x51
push ebp
call fcn.004c5720
add esp, 0x28
jmp 0x5167be
test esi, esi
je 0x51652a
mov ecx, esi
call fcn.004bc690
push eax
push edi
call fcn.0050ac50
add esp, 8
cmp dword [edi + 0xe8], 0x50ac10
jne 0x5149e6
mov eax, dword [edi + 0xec]
jmp 0x5167b1
push edi
call fcn.004c3440
add esp, 4
jmp 0x5167be
test esi, esi
je 0x51656c
mov ecx, esi
call fcn.004bc690
mov dword [esp + 0x44], eax
test al, 2
je 0x5167be
jmp 0x516574
mov dword [esp + 0x44], 0xfffe
mov eax, dword [ebx + 0x28]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
inc eax
cmp dword [esp + 0x1c], 0
mov dword [ebx + 0x28], eax
je 0x516590
mov dword [esp + 0x48], esi
jmp 0x5165a0
mov eax, dword [edi + 0x14]
dec eax
cmp esi, eax
mov dword [esp + 0x48], eax
jg 0x5166ea
mov eax, dword [esp + 0x50]
mov dword [esp + 0x7c], eax
jmp 0x5165b0
cmp esi, 1
je 0x5166d6
mov ecx, esi
mov edx, ebx
call fcn.005025f0
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + ecx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x40], eax
test eax, eax
je 0x5166d6
lea esp, [esp]
mov edi, dword [eax + 8]
test dword [edi + 0x24], 0x100
je 0x5166c0
mov cx, word [edi + 0x2c]
mov eax, dword [edi + 8]
add cx, 0x2e
movzx esi, cx
test eax, eax
je 0x51660f
test byte [eax + 0x38], 0x80
je 0x51664f
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x516602
test si, si
je 0x51664f
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
push 0x6d
push edx
push eax
mov eax, edi
mov ecx, ebx
call fcn.004fabb0
mov edx, dword [esp + 0x50]
mov eax, dword [ebp + 0x88]
movsx ecx, si
push ecx
and edx, 1
lea ecx, [edx + eax + 2]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push 0x21
push ebp
call fcn.004c5720
add esp, 0x20
mov eax, dword [edi]
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [edx + ecx]
push eax
push str.ANALYZE___w_.__w_
call fcn.004d31d0
add esp, 0xc
test byte [esp + 0x44], 1
mov edx, eax
je 0x5166a4
mov eax, ebx
call fcn.004b6a50
push 0xfffffffffffffff9
push edx
mov esi, eax
push 0
push 0x6a
xor eax, eax
mov ecx, esi
mov edi, ebp
call fcn.004c5810
push 0
push 1
push esi
push 0x51
push ebp
call fcn.004c5720
add esp, 0x24
jmp 0x5166bc
push 0xfffffffffffffff9
push edx
push 0
push 0x8e
xor eax, eax
xor ecx, ecx
mov edi, ebp
call fcn.004c5810
add esp, 0x10
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x5165e0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
add dword [esp + 0x7c], 0x10
inc esi
cmp esi, dword [esp + 0x48]
mov dword [esp + 0x14], esi
jle 0x5165b0
push 0
push 0
push 0
push 0x9f
push ebp
call fcn.004c5720
add esp, 0x14
jmp 0x5167be
test esi, esi
je 0x51672c
lea ecx, [esp + 0x5c]
push ecx
mov edi, esi
call fcn.004bc410
add esp, 4
test eax, eax
jne 0x51672c
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
push edx
push eax
call fcn.004f83f0
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004f83f0
push edx
push eax
mov esi, ebp
call fcn.004c87c0
add esp, 0x10
jmp 0x5167be
test esi, esi
je 0x516788
lea ecx, [esp + 0x5c]
push ecx
mov edi, esi
call fcn.004bc410
add esp, 4
test eax, eax
jne 0x516788
cmp dword [esp + 0x60], eax
jl 0x516788
mov eax, dword [esp + 0x5c]
jg 0x51676d
test eax, eax
jb 0x516788
and eax, 0x7fffffff
jl 0x516788
cmp eax, 8
jle 0x51677e
mov eax, 8
mov edx, dword [esp + 0x10]
mov dword [edx + 0x90], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x90]
jmp 0x5167b1
test esi, esi
je 0x5167a9
mov ecx, esi
call fcn.004bc690
push eax
push edi
call fcn.004bb340
add esp, 8
mov ecx, edi
mov eax, dword [ecx + 0x1b8]
cdq
push edx
push eax
mov esi, ebp
call fcn.004c87c0
add esp, 8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, esi
call fcn.004acc50
mov eax, dword [esp + 0x24]
mov ecx, esi
call fcn.004acc50
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x68
ret