Function at 0x57f5bf
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b4
mov eax, dword [0x72232c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
push edi
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xd4], ecx
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov ebx, eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0xcc], esi
mov al, byte [esi + 0x42]
mov byte [ebp - 0x114], al
mov eax, dword [edi + 8]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x150], eax
mov eax, dword [esi + 0x24]
mov byte [ebp - 0x11d], cl
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x154], eax
call fcn.0057f547
pop ecx
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [edi + 0x50], ecx
je 0x5811ed
xor ecx, ecx
mov dword [edi + 0x50], ecx
mov dword [edi + 0x90], ecx
mov dword [edi + 0x94], ecx
mov dword [edi + 0x14], ecx
mov dword [esi + 0x184], ecx
cmp dword [esi + 0xf8], ecx
jne 0x5844d3
cmp dword [esi + 0x130], ecx
je 0x57f69a
mov ecx, dword [esi + 0x138]
xor edx, edx
mov eax, dword [edi + 0x84]
div ecx
xor eax, eax
sub ecx, edx
inc eax
mov dword [ebp - 0x14c], ecx
imul ebx, dword [edi + 0x4c], 0x14
mov edx, dword [ebp - 0xd0]
add ebx, dword [ebp - 0x110]
mov cl, byte [ebx]
inc edx
mov dword [ebp - 0xd0], edx
movzx edx, cl
mov dword [ebp - 0x10c], ebx
mov byte [ebp - 0xe9], cl
mov dword [ebp - 0xf8], edx
cmp edx, 0x9d
ja case.0x57f6d0.110
jmp dword [edx*4 + 0x584503]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
pop esi
add ecx, dword [ebp - 0xd8]
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp - 0x110]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x584095
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
add eax, dword [ebp - 0xd8]
imul ebx, dword [eax], 0x14
mov word [eax + 8], cx
add ebx, dword [ebp - 0x110]
xor eax, eax
inc eax
mov edx, dword [ebp - 0xd0]
push 0x14
pop ecx
add ebx, ecx
jmp 0x57f6aa
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0xd8]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [ebx + 8], 0
jne 0x584095
jmp 0x57f71d
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x110]
add ecx, dword [ebp - 0xd8]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x57f71d
imul esi, dword [ebx + 4], 0x28
sub ebx, dword [ebp - 0x110]
push 4
pop eax
push 0x14
add esi, dword [ebp - 0xd8]
mov word [esi + 8], ax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
cdq
mov dword [esi + 4], edx
add ebx, dword [ebp - 0x110]
mov dword [esi], eax
mov esi, dword [ebp - 0xcc]
jmp 0x57f71d
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
je 0x57f71d
mov eax, ebx
sub eax, dword [ebp - 0x110]
push 0x14
cdq
pop ecx
idiv ecx
cmp dword [ebx + 4], 0
mov esi, eax
jne 0x5840a9
mov edx, dword [edi + 0xb8]
test edx, edx
je 0x5840a9
push dword [edi + 0x64]
mov eax, dword [edx + 4]
mov esi, dword [ebp - 0xcc]
dec dword [edi + 0xc0]
push esi
mov dword [edi + 0xb8], eax
call fcn.00586ef3
push edx
call fcn.00584b24
mov ecx, dword [esi + 0x20]
add esp, 0xc
mov dword [ebp - 0x150], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x154], ecx
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x57f843
imul ecx, eax, 0x14
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax + 8]
dec eax
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
imul ebx, eax, 0x14
mov dword [ebp - 0x110], edx
mov dword [ebp - 0xd8], ecx
add ebx, edx
jmp 0x57f71d
push ebx
push edi
call fcn.0055db36
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x57f71d
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 0x10]
pop ecx
pop ecx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp 0x57f71d
push ebx
push edi
call fcn.0055db36
pop ecx
pop ecx
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x57f71d
push ebx
push edi
call fcn.0055db36
push dword [ebx + 0x10]
mov esi, eax
mov byte [ebx], 0x4c
call fcn.0057c78b
mov dword [ebx + 4], eax
add esp, 0xc
xor eax, eax
inc eax
cmp byte [ebp - 0x114], al
je 0x57f937
push 0
push eax
push 0xffffffffffffffff
push dword [ebx + 0x10]
push esi
call fcn.00585ddf
movzx ecx, byte [ebp - 0x114]
push ecx
push esi
mov dword [ebp - 0xd4], eax
call fcn.0057efeb
add esp, 0x1c
test eax, eax
jne 0x5811e7
and dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x57f927
push dword [ebx + 0x10]
push dword [ebp - 0xcc]
call fcn.0056a971
pop ecx
pop ecx
mov byte [ebx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov esi, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x5c]
jg 0x584315
push ebx
push edi
call fcn.0055db36
mov esi, eax
mov eax, 0xa02
pop ecx
pop ecx
mov word [esi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x114]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x57f7af
mov edi, dword [ebp - 0xd8]
imul ecx, eax, 0x28
movzx eax, byte [ebx + 3]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [ebp - 0x100]
jne 0x57f7af
mov eax, dword [ebp - 0xd8]
cmp dword [ecx + eax + 4], edx
mov edx, dword [ebp - 0xd0]
jne 0x57f9b5
mov eax, 0xa10
mov word [esi + 8], ax
mov esi, dword [ebp - 0xcc]
xor eax, eax
inc eax
jmp 0x57f726
push ebx
push edi
call fcn.0055db36
mov esi, dword [ebx + 0xc]
mov edx, 0x101
sub esi, dword [ebx + 8]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xe0], eax
inc ecx
cmp dword [ebx + 4], 0
cmovne ecx, edx
movzx ecx, cx
mov dword [ebp - 0xe8], ecx
mov word [eax + 8], cx
test esi, esi
jle 0x57f7af
mov edi, eax
mov ebx, ecx
add edi, 0x28
push edi
call fcn.00585d68
dec esi
mov word [edi + 8], bx
pop ecx
test esi, esi
jg 0x57fa00
mov ebx, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x100]
jmp 0x57f7af
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff7f
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x57f779
push ebx
push edi
call fcn.0055db36
push 0
push 0
push dword [ebx + 4]
mov esi, eax
push dword [ebx + 0x10]
push esi
call fcn.00585ddf
add esp, 0x1c
mov al, byte [ebp - 0x114]
mov byte [esi + 0xa], al
jmp 0x57f7af
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [edi + 0x3c]
add ecx, 0xffffffd8
add esi, ecx
push esi
call fcn.00586059
pop ecx
test eax, eax
jne 0x58430f
push ebx
push edi
call fcn.0055db36
mov ecx, 0x800
push ecx
push esi
push eax
call fcn.00585f77
add esp, 0x14
jmp 0x57f7af
mov eax, dword [ebx + 0xc]
imul esi, dword [ebx + 8], 0x28
mov dword [ebp - 0x11c], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0xf0], eax
push eax
push esi
call fcn.00585bfa
mov eax, 0x1000
pop ecx
pop ecx
test word [esi + 8], ax
je 0x57faec
push esi
call fcn.00585b86
pop ecx
test eax, eax
jne 0x5811e7
mov eax, dword [ebp - 0xf0]
add esi, 0x28
add eax, 0x28
sub dword [ebp - 0x11c], 1
mov dword [ebp - 0xf0], eax
jne 0x57fac9
jmp 0x57f7af
mov eax, dword [ebx + 0xc]
imul esi, dword [ebx + 8], 0x28
mov dword [ebp - 0xf0], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
push 0x1000
push eax
push esi
mov dword [ebp - 0x11c], eax
call fcn.00585f77
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x57fb58
push esi
call fcn.00585b86
pop ecx
test eax, eax
jne 0x5811e7
mov ecx, dword [ebp - 0xf0]
mov eax, ecx
dec ecx
mov dword [ebp - 0xf0], ecx
test eax, eax
je 0x57f7af
mov eax, dword [ebp - 0x11c]
add esi, 0x28
add eax, 0x28
jmp 0x57fb29
mov eax, 0x1000
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
push eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
push eax
call fcn.00585f77
add esp, 0xc
jmp 0x57f71d
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
push dword [eax + ecx + 4]
push dword [eax + ecx]
imul eax, dword [ebx + 8], 0x28
add eax, ecx
push eax
call fcn.00585d32
jmp 0x57fb9e
imul edx, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0xd8]
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 0xc], 0x28
add edx, eax
mov dword [ebp - 0xf8], edx
add ecx, eax
add esi, eax
mov dword [ebp - 0xdc], ecx
movzx eax, word [edx + 8]
mov dword [ebp - 0xe0], eax
mov al, byte [ecx + 8]
or al, byte [ebp - 0xe0]
test al, 1
je 0x57fc0c
push esi
call fcn.00585d68
pop ecx
jmp 0x57f7af
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x57fc26
push edx
call fcn.00585895
pop ecx
mov ecx, dword [ebp - 0xdc]
jmp 0x57fc28
xor eax, eax
test eax, eax
jne 0x5811e7
mov eax, 0x4000
test word [ecx + 8], ax
je 0x57fc44
push ecx
call fcn.00585895
pop ecx
jmp 0x57fc46
xor eax, eax
test eax, eax
jne 0x5811e7
mov eax, dword [ebp - 0xf8]
test byte [eax + 8], 0x12
jne 0x57fc73
push 0
push dword [ebp - 0x114]
push eax
call fcn.00585fcd
add esp, 0xc
test eax, eax
jne 0x5811e7
mov eax, dword [ebp - 0xdc]
test byte [eax + 8], 0x12
jne 0x57fc9e
push 0
push dword [ebp - 0x114]
push eax
call fcn.00585fcd
add esp, 0xc
test eax, eax
jne 0x5811e7
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xf8]
add eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0xf4], eax
mov ecx, edx
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x5c]
cdq
cmp ecx, edx
jg 0x58430f
mov ecx, dword [ebp - 0xf4]
jl 0x57fcd5
cmp ecx, eax
ja 0x58430f
xor eax, eax
cmp esi, dword [ebp - 0xdc]
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.005859da
add esp, 0xc
test eax, eax
jne 0x5811e7
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
push 2
pop ecx
or ax, cx
mov word [esi + 8], ax
mov eax, dword [ebp - 0xdc]
cmp esi, eax
je 0x57fd2d
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [esi + 0x10]
call fcn.005f2e80
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov ecx, dword [ebp - 0xf8]
mov eax, dword [eax + 0xc]
add eax, dword [esi + 0x10]
push dword [ecx + 0xc]
push dword [ecx + 0x10]
push eax
call fcn.005f2e80
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0xf4]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov dword [esi + 0xc], ecx
jmp 0x57fa61
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.0055d592
movzx eax, ax
mov dword [ebp - 0xf0], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xf4], eax
call fcn.0055d592
pop ecx
pop ecx
movzx ecx, ax
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x108], ecx
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xf4]
mov al, byte [eax + 8]
or al, byte [esi + 8]
test al, 1
jne 0x580056
mov al, cl
and al, byte [ebp - 0xf0]
push 4
pop ecx
test cl, al
je 0x57fefa
mov eax, dword [ebp - 0xf4]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [ebp - 0xe9], 1
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x160], eax
movzx eax, byte [ebx]
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0x164], edi
mov edi, dword [ebp - 0x100]
sub eax, 0x2f
je 0x57feb3
sub eax, 1
je 0x57fea3
sub eax, 1
je 0x57fe93
sub eax, 1
mov eax, ecx
je 0x57fe5c
or eax, edx
je 0x580056
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x57fe47
xor ecx, ecx
inc ecx
xor edx, edx
push edx
push ecx
push dword [ebp - 0xdc]
push dword [ebp - 0xf8]
call fcn.005b4db0
jmp 0x57fed4
or eax, edx
je 0x580056
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0xf8]
jne 0x57fe83
test eax, eax
jne 0x57fe83
cmp dword [ebp - 0xdc], 0x80000000
je 0x57ff01
push edx
push ecx
push dword [ebp - 0xdc]
push eax
call fcn.005b4bb0
jmp 0x57fed4
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.00573cb2
jmp 0x57fec1
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.0057c7a8
jmp 0x57fec1
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.00564766
add esp, 0xc
test eax, eax
jne 0x57ff01
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x104]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov edx, 0x3e00
push 4
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x57f7af
mov byte [ebp - 0xe9], 0
push esi
call fcn.00586561
push dword [ebp - 0xf4]
fstp qword [ebp - 0xe4]
call fcn.00586561
movzx eax, byte [ebx]
pop ecx
fstp qword [ebp - 0x128]
pop ecx
sub eax, 0x2f
je 0x57ffe7
sub eax, 1
je 0x57ffd5
sub eax, 1
je 0x57ffc3
movsd xmm0, qword [ebp - 0xe4]
sub eax, 1
je 0x57ffa3
call fcn.005b51bf
movsd xmm0, qword [ebp - 0x128]
mov esi, eax
mov dword [ebp - 0xe0], edx
call fcn.005b51bf
mov dword [ebp - 0xe8], eax
mov ecx, esi
mov eax, dword [ebp - 0xe0]
or ecx, eax
je 0x580056
mov ecx, esi
and ecx, eax
cmp ecx, 0xffffffff
jne 0x57ff89
xor esi, esi
inc esi
xor eax, eax
push eax
push esi
push edx
push dword [ebp - 0xe8]
call fcn.005b4db0
mov ecx, eax
call fcn.005b5310
movaps xmm1, xmm0
jmp 0x57fff7
ucomisd xmm0, qword [0x6ac4e8]
lahf
test ah, 0x44
jnp 0x580056
movsd xmm1, qword [ebp - 0x128]
divsd xmm1, xmm0
jmp 0x57fff7
movsd xmm1, qword [ebp - 0x128]
mulsd xmm1, qword [ebp - 0xe4]
jmp 0x57fff7
movsd xmm1, qword [ebp - 0x128]
subsd xmm1, qword [ebp - 0xe4]
jmp 0x57fff7
movsd xmm1, qword [ebp - 0x128]
addsd xmm1, qword [ebp - 0xe4]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.00572c01
add esp, 8
test eax, eax
jne 0x580056
mov ecx, dword [ebp - 0x104]
mov edx, 0x3e00
push 8
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x108]
or al, byte [ebp - 0xf0]
test dl, al
jne 0x57f7af
cmp byte [ebp - 0xe9], 0
jne 0x57f7af
push ecx
call fcn.00585116
jmp 0x57fc06
mov ecx, dword [ebp - 0x104]
push ecx
jmp 0x57fc01
mov eax, dword [ebx + 4]
test eax, eax
je 0x57f71d
imul eax, eax, 0x28
push 0
push 0
add eax, dword [ebp - 0xd8]
jmp 0x57fbbd
movzx eax, byte [ebx + 3]
mov dword [ebp - 0xe0], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push esi
call fcn.0056a9e6
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5811e7
and dword [esi], 0
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x110]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xe0]
mov byte [esi + 0x1a], al
mov word [ebx], 0xeb58
mov dword [ebx + 0x10], esi
imul eax, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], eax
cmp dword [esi], eax
je 0x58011e
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], eax
js 0x58011e
mov edi, dword [ebp - 0xd8]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, edi
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x580102
mov edi, dword [ebp - 0x100]
mov ecx, dword [esi]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x150]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x154]
mov dword [eax + 0x24], ecx
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
push esi
call dword [ecx + 0xc]
mov eax, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x154], eax
je 0x5801d1
cmp dword [esi + 0x14], 0
je 0x5801a8
push dword [esi]
call fcn.00545f24
push eax
push 0x6b080c
push edi
call fcn.0057f597
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd4], eax
push dword [ebx + 4]
lea eax, [edi + 0xd4]
push dword [esi + 0x10]
push eax
push dword [ebp - 0xcc]
call fcn.0057f494
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0xe0]
test byte [eax + 8], 0x12
je 0x57f7af
movzx eax, byte [ebp - 0x114]
push eax
push dword [esi]
call fcn.0057efeb
push dword [esi]
call fcn.00586059
mov esi, dword [ebp - 0xcc]
add esp, 0xc
test eax, eax
jne 0x584315
jmp 0x57f71d
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0xd8]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add esi, eax
add edx, eax
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [ebp - 0xe0], edx
test al, 1
je 0x58023b
push edx
jmp 0x57fc01
push ecx
call fcn.005850b4
push esi
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
call fcn.005850b4
pop ecx
pop ecx
mov cl, byte [ebx]
mov esi, eax
mov byte [ebp - 0xe9], cl
cmp cl, 0x2b
jne 0x580275
and dword [ebp - 0x138], esi
and dword [ebp - 0x134], edx
jmp 0x5803bd
cmp cl, 0x2c
jne 0x58028b
or dword [ebp - 0x138], esi
or dword [ebp - 0x134], edx
jmp 0x5803bd
mov eax, esi
or eax, edx
je 0x5803bd
test edx, edx
jg 0x5802be
jl 0x58029f
test esi, esi
jae 0x5802be
mov al, 0x5b
sub al, cl
mov cl, al
mov byte [ebp - 0xe9], cl
cmp edx, 0xffffffff
jl 0x5802eb
jg 0x5802b7
cmp esi, 0xffffffc0
jbe 0x5802eb
neg esi
adc edx, 0
neg edx
push 0x40
pop eax
test edx, edx
jl 0x58031c
jg 0x5802cb
cmp esi, eax
jb 0x58031c
cmp dword [ebp - 0x134], 0
jg 0x5802f4
jl 0x5802df
cmp dword [ebp - 0x138], 0
jae 0x5802f4
cmp cl, 0x2d
je 0x5802f4
or eax, 0xffffffff
or ecx, eax
jmp 0x58030b
push 0x40
pop eax
mov esi, eax
xor edx, edx
jmp 0x5802c1
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], ecx
jmp 0x5803bd
push 8
pop eax
push eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.005f2e80
mov eax, dword [ebp - 0x15c]
add esp, 0xc
cmp byte [ebp - 0xe9], 0x2d
mov ecx, esi
mov edx, dword [ebp - 0x158]
jne 0x580360
call fcn.005b4ed0
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], edx
jmp 0x5803a3
call fcn.005b5510
cmp dword [ebp - 0x134], 0
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], edx
jg 0x5803a3
jl 0x580385
cmp dword [ebp - 0x138], 0
jae 0x5803a3
push 0x40
pop eax
mov ecx, eax
or edx, 0xffffffff
sub ecx, esi
or eax, 0xffffffff
call fcn.005b4ed0
or dword [ebp - 0x15c], eax
or dword [ebp - 0x158], edx
push 8
pop eax
push eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.005f2e80
add esp, 0xc
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x138]
mov dword [ecx], eax
mov eax, dword [ebp - 0x134]
mov dword [ecx + 4], eax
jmp 0x57fedf
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.00585b5a
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
jmp 0x57f7af
imul esi, dword [ebx + 4], 0x28
push 4
pop ecx
add esi, dword [ebp - 0xd8]
movzx eax, word [esi + 8]
test cl, al
jne 0x5804f3
push dword [ebp - 0x114]
push 0x43
push esi
call fcn.0054f4c0
movzx eax, word [esi + 8]
add esp, 0xc
push 4
pop ecx
test cl, al
jne 0x5804f3
cmp dword [ebx + 8], 0
jne 0x584095
push 0x14
pop eax
mov esi, dword [ebp - 0xcc]
push 7
pop ecx
cmp byte [esi + 0x45], 0
cmovne eax, ecx
cmp dword [edi + 0x2c], 0
mov dword [ebp - 0xd4], eax
jne 0x58047c
cmp eax, 0xc0a
je 0x58047c
push eax
call fcn.0056bfbd
push eax
push 0x6b080c
push edi
call fcn.0057f597
mov eax, dword [ebp - 0xd4]
add esp, 0x10
push eax
push esi
mov dword [edi + 0x50], eax
call fcn.0057c7fb
push dword [edi + 0x2c]
sub ebx, dword [ebp - 0x110]
push dword [edi + 0xb0]
mov eax, ebx
mov ebx, dword [ebp - 0xd4]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.0054bea4
push edi
call fcn.00584c8b
add esp, 0x20
cmp ebx, 0xc0a
jne 0x5804c9
push esi
call fcn.00573f3a
add esp, 4
mov al, byte [ebp - 0x11d]
mov dword [ebp - 0xd4], 1
test al, al
je 0x5841fc
movzx eax, al
dec eax
push eax
push esi
call fcn.005793ae
pop ecx
pop ecx
jmp 0x5841fc
mov edx, 0x3e00
and eax, edx
or eax, ecx
mov word [esi + 8], ax
jmp 0x57f7af
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
add eax, dword [ebp - 0xd8]
test byte [eax + 8], cl
je 0x57f71d
push eax
call fcn.00585cb7
pop ecx
jmp 0x57f71d
imul esi, dword [ebx + 4], 0x28
mov eax, 0x4000
add esi, dword [ebp - 0xd8]
test word [esi + 8], ax
je 0x58054b
push esi
call fcn.00585895
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x580552
and dword [ebp - 0xd4], 0
push dword [ebp - 0x114]
movzx eax, byte [ebx + 8]
push eax
push esi
call fcn.0058575c
add esp, 0xc
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x580444
jmp 0x57f71d
imul eax, dword [ebx + 0xc], 0x28
imul ecx, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xdc], eax
movzx esi, word [eax + 8]
movzx ecx, word [ecx + 8]
mov edx, esi
mov al, byte [ebx + 3]
or edx, ecx
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0xfc], esi
test dl, 1
je 0x58061b
test al, al
jns 0x5805e9
mov eax, esi
and eax, ecx
xor ecx, ecx
bt ax, cx
jae 0x5805db
test esi, 0x100
jne 0x5805db
xor edx, edx
jmp 0x5805de
xor edx, edx
inc edx
mov esi, dword [ebp - 0xdc]
jmp 0x580765
test al, 0x20
je 0x58060b
imul ecx, dword [ebx + 8], 0x28
mov edx, 0x3e00
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
jmp 0x57feee
push 0x10
pop ecx
test cl, al
jne 0x584095
jmp 0x57f7af
and al, 0x47
cmp al, 0x43
jb 0x58066f
push 2
pop ecx
test cl, dl
je 0x580707
mov al, byte [ebp - 0x10c]
and al, 0xe
cmp al, cl
jne 0x58064b
mov ecx, dword [ebp - 0xf4]
push 0
push ecx
call fcn.0054f522
pop ecx
pop ecx
push 2
pop ecx
mov al, byte [ebp - 0xfc]
and al, 0xe
cmp al, cl
jne 0x580707
push 0
push dword [ebp - 0xdc]
call fcn.0054f522
pop ecx
pop ecx
jmp 0x580707
cmp al, 0x42
jne 0x580707
mov al, byte [ebp - 0x10c]
push 2
pop ecx
test cl, al
jne 0x5806c2
test al, 0xc
je 0x5806c2
mov ecx, dword [ebp - 0xf4]
push 1
push dword [ebp - 0x114]
push ecx
call fcn.00585fcd
mov eax, dword [ebp - 0xf4]
add esp, 0xc
mov ecx, 0x7e00
mov ax, word [eax + 8]
xor ax, word [ebp - 0x10c]
and ax, cx
xor word [ebp - 0x10c], ax
push 2
pop ecx
mov al, byte [ebp - 0xfc]
test cl, al
jne 0x580707
test al, 0xc
je 0x580707
mov esi, dword [ebp - 0xdc]
push 1
push dword [ebp - 0x114]
push esi
call fcn.00585fcd
mov ax, word [esi + 8]
mov ecx, 0x7e00
xor ax, word [ebp - 0xfc]
add esp, 0xc
and ax, cx
xor word [ebp - 0xfc], ax
mov esi, dword [ebp - 0xfc]
mov eax, 0x4000
test dword [ebp - 0x10c], eax
je 0x58072f
push dword [ebp - 0xf4]
call fcn.00585895
and dword [ebp - 0x10c], 0xbfff
mov eax, 0x4000
pop ecx
test eax, esi
je 0x58074b
push dword [ebp - 0xdc]
call fcn.00585895
and esi, 0xbfff
pop ecx
mov dword [ebp - 0xfc], esi
push dword [ebx + 0x10]
mov esi, dword [ebp - 0xdc]
push dword [ebp - 0xf4]
push esi
call fcn.00573b60
add esp, 0xc
mov edx, eax
movzx eax, byte [ebx]
sub eax, 0x24
je 0x5807a3
sub eax, 1
je 0x58079a
sub eax, 1
je 0x580791
sub eax, 1
je 0x580788
sub eax, 1
je 0x580783
not edx
shr edx, 0x1f
jmp 0x5807ac
xor eax, eax
test edx, edx
setle al
jmp 0x5807aa
xor eax, eax
test edx, edx
setg al
jmp 0x5807aa
xor eax, eax
test edx, edx
sete al
jmp 0x5807aa
xor eax, eax
test edx, edx
setne al
mov edx, eax
mov ecx, dword [ebp - 0xf4]
mov ax, word [ebp - 0x10c]
mov word [ecx + 8], ax
mov ax, word [ebp - 0xfc]
mov word [esi + 8], ax
test byte [ebx + 3], 0x20
je 0x5807fb
imul ecx, dword [ebx + 8], 0x28
mov esi, 0x3e00
push 4
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, si
pop esi
or ax, si
mov word [ecx + 8], ax
mov eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x57f7af
test edx, edx
jmp 0x580610
mov ecx, dword [ebx + 0x10]
push 4
pop edx
add ecx, edx
mov dword [ebp - 0x174], ecx
jmp case.0x57f6d0.110
test byte [ebx + 3], al
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
push 0
mov dword [ebp - 0xe8], esi
mov esi, dword [ebx + 8]
pop eax
cmovne eax, dword [ebp - 0x174]
mov dword [ebp - 0xe0], esi
xor esi, esi
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x130], edx
test ecx, ecx
jle 0x5808cc
test eax, eax
je 0x58085b
mov ecx, dword [eax + esi*4]
jmp 0x58085d
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
movzx eax, byte [eax + esi]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xe0]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xd8]
push eax
mov eax, dword [ebp - 0xe8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xd8]
push eax
call fcn.00573b60
add esp, 0xc
mov dword [ebp - 0x178], eax
test eax, eax
jne 0x5808bb
mov eax, dword [ebp - 0x118]
inc esi
mov edx, dword [ebp - 0x130]
cmp esi, dword [ebp - 0x108]
jl 0x580852
jmp 0x5808cc
cmp dword [ebp - 0xf0], 0
je 0x5808cc
neg eax
mov dword [ebp - 0x178], eax
and dword [ebp - 0x174], 0
jmp 0x57f7af
mov eax, dword [ebp - 0x178]
test eax, eax
jns 0x5808f6
imul eax, dword [ebx + 4], 0x14
mov ebx, dword [ebp - 0x110]
add ebx, 0xffffffec
add ebx, eax
jmp 0x57f71d
mov edx, dword [ebp - 0xd0]
jne 0x580904
imul eax, dword [ebx + 8], 0x14
jmp 0x580908
imul eax, dword [ebx + 0xc], 0x14
mov ebx, dword [ebp - 0x110]
add ebx, 0xffffffec
add ebx, eax
jmp 0x57f9bb
imul eax, dword [ebx + 4], 0x28
xor edx, edx
inc edx
add eax, dword [ebp - 0xd8]
test byte [eax + 8], dl
je 0x580931
push 2
pop ecx
mov esi, ecx
jmp 0x580949
push eax
call fcn.005850b4
or eax, edx
pop ecx
push 2
pop ecx
je 0x580944
xor esi, esi
inc esi
jmp 0x580946
xor esi, esi
xor edx, edx
inc edx
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], dl
jne 0x58096d
push eax
call fcn.005850b4
or eax, edx
pop ecx
je 0x580968
xor ecx, ecx
inc ecx
jmp 0x58096a
xor ecx, ecx
xor edx, edx
inc edx
imul eax, esi, 3
cmp byte [ebx], 0x1c
jne 0x58097e
mov al, byte [eax + ecx + 0x6ade40]
jmp 0x580985
mov al, byte [eax + ecx + 0x6ade4c]
imul ecx, dword [ebx + 0xc], 0x28
movzx eax, al
add ecx, dword [ebp - 0xd8]
cmp eax, 2
jne 0x5809a8
mov ax, word [ecx + 8]
mov esi, 0x3e00
and ax, si
jmp 0x57feee
and dword [ecx + 4], 0
jmp 0x57fedd
imul esi, dword [ebx + 8], 0x28
imul eax, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
push esi
mov dword [ebp - 0xe0], eax
call fcn.00585d68
mov eax, dword [ebp - 0xe0]
pop ecx
test byte [eax + 8], 1
jne 0x57f7af
push 4
pop ecx
push eax
mov word [esi + 8], cx
call fcn.005850b4
or eax, edx
pop ecx
jne 0x5809f9
inc eax
xor ecx, ecx
jmp 0x580a10
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
mov dword [esi + 4], ecx
jmp 0x57f7ad
imul esi, dword [ebx + 8], 0x28
imul eax, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
push esi
mov dword [ebp - 0xe0], eax
call fcn.00585d68
mov eax, dword [ebp - 0xe0]
pop ecx
test byte [eax + 8], 1
jne 0x57f7af
push 4
pop ecx
push eax
mov word [esi + 8], cx
call fcn.005850b4
pop ecx
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x57f7af
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x584095
mov byte [eax + ecx], 1
jmp 0x57f71d
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x580a96
mov eax, dword [ebx + 0xc]
jmp 0x580ac8
push eax
call fcn.00586561
fstp qword [ebp - 0x144]
movsd xmm0, qword [ebp - 0x144]
ucomisd xmm0, qword [0x6ac4e8]
pop ecx
lahf
test ah, 0x44
jnp 0x580abe
xor eax, eax
inc eax
jmp 0x580ac0
xor eax, eax
cmp byte [ebx], 0x16
jne 0x580ac8
xor eax, 1
test eax, eax
jmp 0x57f74f
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
jmp 0x57f74f
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
je 0x584095
jmp 0x57f71d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.0057f3c6
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x11c]
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
add edx, dword [ebp - 0xd8]
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x54]
mov dword [ebp - 0xf4], edi
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xfc], ecx
test eax, eax
jne 0x58043e
mov eax, dword [esi + 0x40]
cmp eax, dword [edi + 0x48]
je 0x580d89
cmp byte [esi + 2], 0
je 0x580bae
cmp byte [esi], 3
jne 0x580235
imul eax, dword [ebp - 0xf4], 0x28
add eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x48], ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x17c], ecx
mov dword [esi + 0x50], eax
jmp 0x580c3b
cmp byte [esi + 4], 0
jne 0x580be8
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0xf4]
call fcn.00567ad3
lea eax, [ebp - 0x17c]
push eax
push dword [ebp - 0xf4]
call fcn.00567aca
mov dword [esi + 0x50], eax
lea edx, [esi + 0x44]
mov eax, dword [ebp - 0x21c]
mov dword [edx], eax
jmp 0x580c0f
lea eax, [esi + 0x44]
push eax
push dword [ebp - 0xf4]
call fcn.00567056
lea eax, [ebp - 0x17c]
push eax
push dword [ebp - 0xf4]
call fcn.0056704d
mov dword [esi + 0x50], eax
lea edx, [esi + 0x44]
mov ecx, dword [ebp - 0x17c]
add esp, 0x10
mov eax, dword [edx]
mov dword [ebp - 0xf0], ecx
cmp eax, ecx
ja 0x580c29
mov dword [esi + 0x48], eax
jmp 0x580c3b
mov edx, dword [ebp - 0xcc]
cmp eax, dword [edx + 0x5c]
ja 0x58430b
mov dword [esi + 0x48], ecx
mov eax, dword [edi + 0x48]
mov edx, 0x80
mov dword [esi + 0x40], eax
mov ecx, dword [esi + 0x50]
mov al, byte [ecx]
cmp al, dl
jae 0x580c5d
movzx ecx, al
xor eax, eax
mov dword [ebp - 0x198], ecx
inc eax
jmp 0x580c75
lea eax, [ebp - 0x198]
push eax
push ecx
call fcn.00571346
pop ecx
pop ecx
mov ecx, dword [ebp - 0x198]
movzx eax, al
movzx eax, al
mov dword [esi + 0x4c], eax
xor eax, eax
mov word [esi + 0x12], ax
mov eax, dword [ebp - 0xfc]
mov dword [eax], ecx
cmp dword [ebp - 0xf0], ecx
jae 0x580cae
and dword [esi + 0x50], 0
and dword [esi + 0x48], 0
cmp ecx, 0x18003
ja 0x58415c
cmp ecx, dword [esi + 0x44]
ja 0x58415c
mov ecx, eax
mov eax, dword [esi + 0x4c]
cmp eax, dword [ecx]
jae 0x580eba
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x580d19
push 0x28
push ecx
lea eax, [ebp - 0x28c]
push eax
call fcn.005f3980
lea eax, [ebp - 0x28c]
push eax
xor eax, eax
cmp byte [esi + 4], al
sete al
push eax
mov eax, dword [ebp - 0xfc]
push dword [eax]
push 0
push dword [ebp - 0xf4]
call fcn.00585970
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
mov ecx, dword [ebp - 0x27c]
mov dword [ebp - 0xe0], ecx
movzx eax, word [esi + 0x12]
xor ebx, ebx
mov edx, dword [ebp - 0xfc]
mov edi, dword [esi + 0x4c]
add edi, ecx
mov dword [ebp - 0x118], eax
mov edx, dword [edx + eax*4]
mov dword [ebp - 0xf8], edx
mov edx, dword [ebp - 0xfc]
mov edx, dword [edx]
add edx, ecx
add esi, 0x58
mov dword [ebp - 0xe8], edx
lea eax, [esi + eax*4]
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0x108], eax
movzx ecx, byte [edi]
mov eax, 0x80
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x130], ecx
cmp ecx, eax
jae 0x580dae
push ecx
call fcn.005864f6
movzx eax, al
add esp, 4
cdq
add esi, eax
adc ebx, edx
xor edx, edx
inc edx
jmp 0x580dd8
movzx eax, word [esi + 0x12]
cmp eax, dword [ebp - 0x13c]
jle 0x580cb0
mov eax, dword [ebp - 0x13c]
mov ecx, dword [esi + eax*4 + 0x58]
mov dword [ebp - 0xdc], ecx
jmp 0x580efb
lea eax, [ebp - 0x130]
push eax
push edi
call fcn.00571346
mov ecx, dword [ebp - 0x130]
push ecx
movzx edx, al
mov dword [ebp - 0xdc], ecx
call fcn.00586ed6
add esp, 0xc
add esi, eax
adc ebx, 0
mov eax, dword [ebp - 0x118]
add edi, edx
mov edx, dword [ebp - 0x108]
inc eax
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x118], eax
mov dword [edx], ecx
add edx, 4
mov dword [ebp - 0x108], edx
mov edx, dword [ebp - 0xfc]
mov dword [edx + eax*4], esi
mov edx, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x13c]
jg 0x580e23
cmp edi, edx
jb 0x580d5b
mov esi, dword [ebp - 0x11c]
mov ebx, dword [ebp - 0x10c]
mov dword [ebp - 0xe8], edi
mov word [esi + 0x12], ax
mov eax, edi
sub eax, dword [ebp - 0xe0]
cmp edi, edx
mov edi, dword [ebp - 0x100]
mov dword [esi + 0x4c], eax
jb 0x580e88
cmp dword [ebp - 0xe8], edx
ja 0x580e6b
mov eax, dword [ebp - 0xf8]
cmp eax, dword [esi + 0x44]
jne 0x580e6b
mov edx, dword [ebp - 0xf0]
test edx, edx
je 0x580e94
cmp dword [esi + 0x50], 0
jne 0x580e7e
lea eax, [ebp - 0x28c]
push eax
call fcn.00585ce0
pop ecx
push 0x13575
jmp 0x584161
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xf0]
test edx, edx
ja 0x580e6b
jb 0x580e9f
cmp eax, dword [esi + 0x44]
ja 0x580e6b
cmp dword [esi + 0x50], 0
jne 0x580ec2
lea eax, [ebp - 0x28c]
push eax
call fcn.00585ce0
pop ecx
mov ecx, dword [ebp - 0xdc]
jmp 0x580ec2
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
movzx eax, word [esi + 0x12]
cmp eax, dword [ebp - 0x13c]
jg 0x580ef5
cmp byte [ebx + 1], 0xf8
mov esi, dword [ebp - 0x104]
jne 0x57fc00
mov eax, 0x800
push eax
push dword [ebx + 0x10]
push esi
call fcn.00585f77
add esp, 0xc
jmp 0x57f7af
mov edx, dword [ebp - 0x104]
mov eax, 0x2460
test word [edx + 8], ax
je 0x580f19
push edx
call fcn.00585d68
mov edx, dword [ebp - 0x104]
pop ecx
mov ecx, dword [ebp - 0xdc]
mov al, byte [ebp - 0x114]
mov edi, dword [ebp - 0xfc]
mov byte [edx + 0xa], al
mov edx, dword [ebp - 0x13c]
mov eax, dword [esi + 0x48]
cmp eax, dword [edi + edx*4 + 4]
mov edi, dword [ebp - 0x100]
mov edx, dword [ebp - 0x104]
jb 0x580ff9
mov eax, dword [esi + 0x50]
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0xfc]
add eax, dword [esi + edi*4]
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0xe0], eax
cmp ecx, 0xc
jae 0x580f77
push edx
push ecx
push eax
call fcn.00586bbe
jmp 0x580eed
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [ebp - 0xe8], esi
mov dword [edx + 0xc], esi
lea eax, [esi + 2]
cmp dword [edx + 0x18], eax
jge 0x580fb0
push 0
xor ecx, ecx
push eax
inc ecx
push edx
mov word [edx + 8], cx
call fcn.005859da
add esp, 0xc
test eax, eax
jne 0x5811e7
mov edx, dword [ebp - 0x104]
jmp 0x580fb6
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
push esi
push dword [ebp - 0xe0]
push dword [edx + 0x10]
call fcn.005f2e80
mov esi, dword [ebp - 0x104]
add esp, 0xc
mov ecx, dword [ebp - 0xe8]
mov eax, dword [esi + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, dword [ebp - 0xdc]
and eax, 1
mov ax, word [eax*2 + 0x6ade58]
jmp 0x5804fc
mov al, byte [ebx + 3]
test al, 0xc0
je 0x58100e
cmp ecx, 0xc
jb 0x58100a
test cl, 1
je 0x581021
test al, al
js 0x581021
push ecx
call fcn.00586ed6
add esp, 4
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x58102d
push edx
push ecx
push 0x739bc0
jmp 0x580f6d
mov ecx, dword [ebp - 0x13c]
xor eax, eax
cmp byte [esi + 4], al
push edx
sete al
push eax
mov eax, dword [ebp - 0xfc]
push dword [ebp - 0xe0]
push dword [eax + ecx*4]
push dword [ebp - 0xf4]
call fcn.00585970
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
mov esi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xdc]
push esi
push eax
push dword [esi + 0x10]
call fcn.00586bbe
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
jmp 0x57f7af
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov dword [ebp - 0xe0], eax
mov al, byte [eax]
mov byte [ebp - 0x184], al
add esi, dword [ebp - 0xd8]
test al, al
je 0x57f7af
mov edi, dword [ebp - 0xe0]
push dword [ebp - 0x114]
inc edi
push dword [ebp - 0x184]
push esi
call fcn.0054f4c0
mov al, byte [edi]
add esp, 0xc
add esi, 0x28
mov byte [ebp - 0x184], al
test al, al
jne 0x5810b8
jmp 0x57fa19
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
movzx edx, byte [edi + 0x5c]
xorps xmm0, xmm0
mov esi, dword [ebx + 0x10]
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0xfc], eax
imul eax, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0xd8]
movlpd qword [ebp - 0x144], xmm0
movlpd qword [ebp - 0x170], xmm0
mov dword [ebp - 0x108], ecx
add eax, 0xffffffd8
mov dword [ebp - 0xe8], edx
add eax, ecx
mov dword [ebp - 0x118], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x130], eax
test esi, esi
je 0x581173
mov bl, byte [esi]
mov edi, ecx
push dword [ebp - 0x114]
push ebx
push edi
call fcn.0054f4c0
add esp, 0xc
add edi, 0x28
inc esi
mov bl, byte [esi]
test bl, bl
jne 0x581147
mov ebx, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x100]
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x140]
mov esi, dword [ebp - 0x118]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0x180]
push eax
push edx
push esi
call fcn.00586dc7
mov ecx, 0x4000
mov dword [ebp - 0xe0], eax
add esp, 0xc
mov dword [esi + 0x1c], eax
test word [esi + 8], cx
je 0x581226
mov ecx, dword [ebp - 0xf8]
or ecx, dword [ebp - 0xdc]
je 0x581209
push esi
call fcn.00585895
pop ecx
test eax, eax
je 0x581220
mov esi, dword [ebp - 0xcc]
push esi
call fcn.00573f3a
mov dword [esp], str.out_of_memory
push edi
call fcn.0057f597
pop ecx
pop ecx
push 7
jmp 0x58417b
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0xf4], eax
adc dword [ebp - 0x104], edx
sub dword [ebp - 0x180], ecx
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xf8]
add ecx, dword [ebp - 0x180]
mov dword [ebp - 0xf8], ecx
adc dword [ebp - 0xdc], 0
cmp eax, 0x7f
ja 0x581249
xor ecx, ecx
inc ecx
jmp 0x581255
push 0
push eax
call fcn.0057ed2b
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0xfc]
add eax, ecx
mov dword [ebp - 0xfc], eax
cmp esi, dword [ebp - 0x108]
je 0x581279
mov edx, dword [ebp - 0xe8]
sub esi, 0x28
jmp 0x5811a9
cmp eax, 0x7e
jle 0x5812ab
cdq
push edx
push eax
call fcn.0057ed2b
mov esi, eax
mov eax, dword [ebp - 0xfc]
add eax, esi
mov dword [ebp - 0xfc], eax
cdq
push edx
push eax
call fcn.0057ed2b
add esp, 0x10
cmp esi, eax
mov eax, dword [ebp - 0xfc]
jge 0x5812b2
inc eax
mov dword [ebp - 0xfc], eax
cdq
mov dword [ebp - 0xf0], eax
mov ecx, edx
add eax, dword [ebp - 0xf8]
mov esi, eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe8], ecx
adc ecx, dword [ebp - 0xdc]
add esi, dword [ebp - 0xf4]
mov eax, dword [eax + 0x5c]
adc ecx, dword [ebp - 0x104]
cdq
cmp ecx, edx
jg 0x58430f
jl 0x5812fd
cmp esi, eax
ja 0x58430f
push dword [ebp - 0xe0]
mov esi, dword [ebp - 0x130]
push esi
call fcn.005857ff
pop ecx
pop ecx
test eax, eax
jne 0x5811e7
mov ecx, dword [ebp - 0xfc]
mov edx, 0x80
mov esi, dword [esi + 0x10]
cmp ecx, edx
jae 0x581330
mov byte [esi], cl
inc eax
jmp 0x58134a
push dword [ebp - 0xe8]
push dword [ebp - 0xf0]
push esi
call fcn.00578c48
add esp, 0xc
mov edx, 0x80
mov ebx, dword [ebp - 0x108]
movzx edi, al
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xe8], eax
cmp eax, edx
jae 0x581368
mov byte [edi + esi], al
xor eax, eax
inc eax
jmp 0x581377
push 0
push eax
lea eax, [edi + esi]
push eax
call fcn.00578c48
add esp, 0xc
push dword [ebp - 0xe8]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0xfc]
add eax, esi
push ebx
push eax
call fcn.00586d46
add dword [ebp - 0xfc], eax
add ebx, 0x28
add esp, 0xc
mov edx, 0x80
cmp ebx, dword [ebp - 0x118]
jbe 0x581353
mov ecx, dword [ebp - 0x130]
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x100]
mov dword [ecx + 0xc], eax
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [ebp - 0x104]
je 0x5813e7
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
xor eax, eax
inc eax
mov byte [ecx + 0xa], al
mov esi, dword [ebp - 0xcc]
jmp case.0x57f6d0.110
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x38]
movlpd qword [ebp - 0x144], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x144]
push ecx
push dword [eax + 0x14]
call fcn.00566e19
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x580444
push ebx
push edi
call fcn.0055db36
pop ecx
pop ecx
mov ecx, dword [ebp - 0x144]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x140]
jmp 0x57f88b
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xf0], eax
test ecx, ecx
jne 0x581537
cmp dword [esi + 0xa0], ecx
jg 0x58416c
push eax
call fcn.0057c78b
mov esi, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], esi
mov ecx, dword [eax + 0x1b4]
add ecx, dword [eax + 0x1b0]
push ecx
push 0
push eax
call fcn.005880d9
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
lea eax, [esi + 0x21]
push 0
push eax
push dword [ebp - 0xcc]
call fcn.0056a9e6
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57f7af
mov ecx, dword [ebp - 0xe0]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [ebp - 0xf0]
push edx
call fcn.005f2e80
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [ecx + 0x43], 0
je 0x5814f7
mov byte [ecx + 0x43], 0
mov byte [ecx + 0x4b], 1
jmp 0x5814fd
inc dword [ecx + 0x1b0]
mov eax, dword [ecx + 0x1a8]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1b8]
mov dword [ecx + 0x1a8], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1bc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1c0]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1c4]
mov dword [esi + 0x14], eax
mov esi, ecx
jmp 0x57f71d
and dword [ebp - 0x104], 0
mov esi, dword [esi + 0x1a8]
test esi, esi
je 0x5841c1
mov edi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x104]
push edi
push dword [esi]
call fcn.0057c71d
pop ecx
pop ecx
test eax, eax
je 0x58156e
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x581558
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0x104], ebx
mov ebx, dword [ebp - 0x10c]
test esi, esi
je 0x5841bb
mov ecx, dword [ebp - 0xcc]
xor eax, eax
mov edx, dword [ebp - 0xdc]
inc eax
cmp dword [ecx + 0xa0], 0
jle 0x5815a8
cmp edx, eax
je 0x584181
cmp dword [esi + 0x18], 0
jne 0x581609
cmp byte [ecx + 0x4b], 0
je 0x581609
mov dword [ebp - 0xf0], eax
cmp edx, eax
jne 0x581610
push eax
push edi
call fcn.0057f149
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x5841f6
mov eax, dword [ebp - 0xcc]
push edi
mov byte [eax + 0x43], 1
call fcn.00584c8b
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x584195
mov edx, dword [ebp - 0xcc]
mov byte [edx + 0x4b], 0
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xd4], eax
jmp 0x58176e
and dword [ebp - 0xf0], 0
mov eax, dword [ecx + 0x1b0]
sub eax, dword [ebp - 0x104]
dec eax
mov dword [ebp - 0x104], eax
cmp edx, 2
jne 0x58175c
mov eax, dword [ecx + 0x18]
and dword [ebp - 0xe0], 0
shr eax, 1
and eax, 1
cmp dword [ecx + 0x14], 0
mov dword [ebp - 0x108], eax
jle 0x5816bc
xor eax, 1
xor ecx, ecx
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xe8], ecx
push eax
mov eax, dword [ebp - 0xcc]
push 0x204
mov eax, dword [eax + 0x10]
push dword [eax + ecx + 4]
call fcn.005689b9
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe0]
push 0x10
pop edx
add ecx, edx
inc eax
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xe8], ecx
cmp eax, dword [edx + 0x14]
mov eax, dword [ebp - 0x118]
jl 0x581658
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x104]
and dword [ebp - 0xe0], 0
cmp dword [ecx + 0x14], 0
jle 0x581737
xor ecx, ecx
mov dword [ebp - 0xe8], ecx
push eax
mov eax, dword [ebp - 0xcc]
push edx
mov eax, dword [eax + 0x10]
push dword [eax + ecx + 4]
call fcn.00568682
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe0]
push 0x10
pop edx
add ecx, edx
inc eax
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xe8], ecx
cmp eax, dword [edx + 0x14]
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x104]
jl 0x5816d7
mov ecx, dword [ebp - 0xcc]
cmp dword [ebp - 0x108], 0
je 0x581768
push ecx
call fcn.0056c0eb
push ecx
call fcn.0057935a
mov edx, dword [ebp - 0xcc]
pop ecx
pop ecx
push 2
pop eax
or dword [edx + 0x18], eax
jmp 0x58176e
and dword [ebp - 0x108], 0
jmp 0x5816c2
mov edx, dword [ebp - 0xcc]
cmp dword [edx + 0x1a8], esi
je 0x5817ae
mov edi, dword [ebp - 0xcc]
mov ecx, dword [edi + 0x1a8]
push ecx
push edi
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1a8], eax
call fcn.0056a971
dec dword [edi + 0x1b0]
pop ecx
pop ecx
cmp dword [edi + 0x1a8], esi
jne 0x58177c
mov edi, dword [ebp - 0x100]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
cmp ecx, 1
jne 0x5817ec
mov eax, dword [esi + 0x18]
push esi
mov esi, dword [ebp - 0xcc]
push esi
mov dword [edx + 0x1a8], eax
call fcn.0056a971
cmp dword [ebp - 0xf0], 0
pop ecx
pop ecx
jne 0x581a82
dec dword [esi + 0x1b0]
mov ecx, dword [ebp - 0xdc]
jmp 0x58182a
cmp dword [ebp - 0xf0], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x1b8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x1bc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x1c0], eax
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0xcc]
mov dword [esi + 0x1c4], eax
je 0x58182a
push 2
pop eax
cmp ecx, eax
jne 0x581a82
push dword [ebp - 0x104]
push ecx
push esi
call fcn.005880d9
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x580444
jmp 0x580572
cmp dword [ebx + 8], 0
je 0x581860
test dword [esi + 0x18], 0x4000000
jne 0x5841d8
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x58196b
push dword [ebx + 8]
push esi
call fcn.00566854
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
cmp al, 5
je 0x5841dc
test eax, eax
jne 0x58043e
xor edx, edx
cmp dword [ebx + 8], edx
je 0x58193c
push 0x10
pop eax
test byte [edi + 0x60], al
je 0x58193c
mov ecx, dword [ebp - 0xcc]
cmp byte [ecx + 0x43], dl
je 0x5818c0
cmp dword [ecx + 0x9c], 1
jle 0x58193c
cmp dword [edi + 0x70], edx
jne 0x5818da
mov eax, dword [ecx + 0x1b0]
inc dword [ecx + 0x1b4]
add eax, dword [ecx + 0x1b4]
mov dword [edi + 0x70], eax
mov eax, dword [edi + 0x70]
dec eax
push eax
push edx
push ecx
call fcn.005880d9
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x581906
push dword [edi + 0x70]
push esi
call fcn.00566828
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0x1b8]
mov dword [edi + 0xa0], eax
mov eax, dword [ecx + 0x1bc]
mov dword [edi + 0xa4], eax
mov eax, dword [ecx + 0x1c0]
mov dword [edi + 0xa8], eax
mov eax, dword [ecx + 0x1c4]
mov dword [edi + 0xac], eax
lea eax, [ebp - 0x188]
push eax
push 1
push esi
call fcn.00567412
mov edx, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x188]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x58197b
mov edx, dword [ebp - 0xcc]
xor esi, esi
mov dword [ebp - 0x188], esi
xor eax, eax
cmp byte [ebx + 3], 0
je 0x580566
cmp esi, dword [ebx + 0xc]
jne 0x581993
cmp eax, dword [ebx + 0x10]
je 0x580566
push dword [edi + 0x2c]
push edx
call fcn.0056a971
push str.database_schema_has_changed
push dword [ebp - 0xcc]
call fcn.0056ab9f
mov edx, dword [ebp - 0xcc]
add esp, 0x10
mov dword [edi + 0x2c], eax
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x5819d3
push dword [ebx + 4]
push edx
call fcn.005793ae
pop ecx
pop ecx
or dword [edi + 0x58], 1
push 0x11
pop eax
mov dword [ebp - 0xd4], eax
jmp 0x58056c
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x19c]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.00567412
push ebx
push edi
call fcn.0055db36
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0x19c]
jmp 0x57f86d
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
shl esi, 4
add esi, dword [eax + 0x10]
push dword [ebx + 8]
push dword [esi + 4]
call fcn.00568a6d
add esp, 0xc
mov dword [ebp - 0xd4], eax
xor edx, edx
inc edx
push 2
cmp dword [ebx + 8], edx
jne 0x581a5b
mov ecx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0xcc]
mov dword [ecx], eax
pop eax
or dword [esi + 0x18], eax
jmp 0x581a70
pop eax
cmp dword [ebx + 8], eax
jne 0x581a6a
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0xcc]
cmp dword [ebx + 4], edx
jne 0x581a82
push esi
call fcn.0056c0eb
add esp, 4
and dword [edi + 0x58], 0xfffffffe
mov eax, dword [ebp - 0xd4]
jmp 0x580572
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x581aa6
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 8]
je 0x581bda
mov esi, dword [ebp - 0xcc]
mov cl, byte [ebp - 0xe9]
test byte [edi + 0x58], 1
jne 0x584238
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, esi
and dword [ebp - 0x108], 0
and dword [ebp - 0x11c], 0
mov dword [ebp - 0xf0], edx
mov edx, dword [ebp - 0xcc]
shl eax, 4
mov dword [ebp - 0xe8], esi
add eax, dword [edx + 0x10]
mov edx, dword [eax + 4]
mov dword [ebp - 0x118], edx
mov edx, dword [ebp - 0xf0]
cmp cl, 0x67
jne 0x581b1e
mov eax, dword [eax + 0xc]
movzx ecx, byte [ebx + 3]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0xe0], ecx
cmp al, byte [edi + 0x5c]
jae 0x581b25
mov byte [edi + 0x5c], al
jmp 0x581b25
and dword [ebp - 0xe0], 0
push 0x10
pop eax
test byte [ebx + 3], al
je 0x581b4b
imul esi, edx, 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.00585b5a
mov eax, dword [esi]
mov esi, dword [ebp - 0xe8]
pop ecx
mov dword [ebp - 0xf0], eax
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x581b67
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x11c], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x581b76
cmp al, 0xf2
jne 0x581b70
mov ecx, dword [ebx + 0x10]
jmp 0x581b76
mov ecx, dword [ebp - 0x108]
push 0
push esi
push ecx
push dword [ebx + 4]
push edi
call fcn.0054e891
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5811e7
push 4
pop eax
push dword [esi + 0x14]
or dword [esi + 8], eax
push dword [ebp - 0x11c]
mov eax, dword [ebp - 0xf0]
push dword [ebp - 0xe0]
mov byte [esi + 2], 1
push eax
push dword [ebp - 0x118]
mov dword [esi + 0xc], eax
call fcn.00566f42
mov dword [ebp - 0xd4], eax
add esp, 0x14
mov eax, dword [ebp - 0x11c]
mov dword [esi + 0x1c], eax
cmp byte [ebx + 1], 0xfa
setne al
mov byte [esi + 4], al
movzx eax, byte [ebx + 3]
and eax, 3
push eax
push dword [esi + 0x14]
call fcn.00566fae
pop ecx
pop ecx
jmp 0x580566
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0054e891
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5811e7
xor eax, eax
lea ecx, [esi + 0x18]
inc eax
or dword [esi + 8], eax
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0xcc]
push ecx
push eax
push 0
push dword [eax]
call fcn.00568026
add esp, 0x18
test eax, eax
jne 0x58043e
push 1
push dword [esi + 0x18]
call fcn.00566854
pop ecx
pop ecx
test eax, eax
jne 0x58043e
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x581cb8
movzx eax, byte [ebx + 3]
push 2
pop ecx
or eax, ecx
push eax
lea eax, [ebp - 0x1ac]
push eax
push dword [esi + 0x18]
call fcn.00566f16
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x581cb2
push dword [esi + 0x14]
mov eax, dword [ebp - 0xe0]
push eax
push 4
mov dword [esi + 0x1c], eax
pop eax
push eax
push dword [ebp - 0x1ac]
push dword [esi + 0x18]
call fcn.00566f42
add esp, 0x14
mov dword [ebp - 0xd4], eax
mov byte [esi + 4], 0
jmp 0x581cd8
push dword [esi + 0x14]
push 0
push 4
pop eax
push eax
push 1
push dword [esi + 0x18]
call fcn.00566f42
add esp, 0x14
mov dword [ebp - 0xd4], eax
mov byte [esi + 4], 1
test eax, eax
jne 0x58043e
xor ecx, ecx
cmp byte [ebx + 3], 8
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
jmp 0x57f7af
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0054e891
add esp, 0x14
test eax, eax
je 0x5811ed
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 0x1c], ecx
push dword [ebx + 0xc]
push esi
call fcn.005870fe
add esp, 0xc
mov dword [ebp - 0xd4], eax
jmp 0x580572
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0x100]
mov dword [edx + 0x2c], eax
je 0x584095
jmp 0x57f7af
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.0054e891
add esp, 0x14
test eax, eax
je 0x5811ed
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], dl
jmp 0x57f71d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
push dword [eax + ecx*4]
push edi
call fcn.00584bad
mov eax, dword [edi + 0x38]
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
and dword [eax + ecx*4], 0
jmp 0x57f71d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
and dword [ebp - 0xdc], 0
push 2
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x581ebe
imul ecx, dword [ebx + 0xc], 0x28
pop edx
add ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xf0], ecx
mov al, byte [ecx + 8]
and al, 0xe
cmp al, dl
jne 0x581dff
push 0
push ecx
call fcn.0054f522
pop ecx
pop ecx
mov ecx, dword [ebp - 0xf0]
push ecx
call fcn.005850b4
pop ecx
mov ecx, dword [ebp - 0xf0]
push 4
mov dword [ebp - 0x11c], eax
pop eax
movzx ecx, word [ecx + 8]
mov dword [ebp - 0xf4], edx
test al, cl
jne 0x581e77
test cl, 8
je 0x584095
mov ecx, dword [ebp - 0x11c]
call fcn.005b5310
mov eax, dword [ebp - 0xf0]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x581e60
mov ecx, dword [ebp - 0xf8]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0xf8], ecx
jmp 0x581e77
comisd xmm1, xmm0
jbe 0x581e77
mov eax, dword [ebp - 0xf8]
test al, 1
je 0x581e77
inc eax
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x12c]
push eax
push 0
push dword [ebp - 0xf4]
push dword [ebp - 0x11c]
push 0
push dword [esi + 0x14]
call fcn.00567c31
mov ecx, dword [ebp - 0x11c]
add esp, 0x18
mov dword [esi + 0x30], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
mov dword [esi + 0x34], ecx
test eax, eax
jne 0x58043e
jmp 0x581f7b
pop eax
push eax
push dword [esi + 0x14]
call fcn.00566f89
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xe0], eax
test eax, eax
setne cl
mov dword [ebp - 0xdc], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x1bc], ecx
mov cx, word [ebx + 0x10]
mov word [ebp - 0x1b4], cx
lea ecx, [edx - 1]
and cl, 1
neg cl
sbb cl, cl
imul eax, dword [ebx + 0xc], 0x28
and cl, 0xfe
inc cl
mov byte [ebp - 0x1b2], cl
mov ecx, 0x4000
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1b8], eax
test word [eax + 8], cx
je 0x581f28
push eax
call fcn.00585895
pop ecx
xor ecx, ecx
lea eax, [ebp - 0x12c]
push eax
push ecx
push ecx
push ecx
lea eax, [ebp - 0x1bc]
mov byte [ebp - 0x1ae], cl
push eax
push dword [esi + 0x14]
call fcn.00567c31
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
cmp dword [ebp - 0xe0], eax
je 0x581f7b
cmp byte [ebp - 0x1ae], 0
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xdc], eax
je 0x582004
and dword [esi + 0x40], 0
mov eax, dword [ebp - 0xf8]
mov byte [esi + 3], 0
mov ecx, dword [ebp - 0x12c]
cmp eax, 0x19
jl 0x581fc0
test ecx, ecx
js 0x581fa8
jne 0x581f9f
cmp eax, 0x1a
je 0x581fa8
and dword [ebp - 0x12c], 0
jmp 0x582011
and dword [ebp - 0x12c], 0
lea eax, [ebp - 0x12c]
push eax
push dword [esi + 0x14]
call fcn.00567fbb
jmp 0x581ff4
test ecx, ecx
jg 0x581fde
jne 0x581fcd
push 0x17
pop ecx
cmp eax, ecx
je 0x581fde
push dword [esi + 0x14]
call fcn.00567376
pop ecx
mov dword [ebp - 0x12c], eax
jmp 0x582004
and dword [ebp - 0x12c], 0
lea eax, [ebp - 0x12c]
push eax
push dword [esi + 0x14]
call fcn.0056851e
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x58043e
cmp dword [ebp - 0x12c], 0
jne 0x584095
cmp dword [ebp - 0xdc], 0
lea eax, [ebx + 0x14]
cmove eax, ebx
mov ebx, eax
jmp 0x57f7af
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
and dword [ebp - 0x108], 0
add esi, dword [ebp - 0xd8]
cmp dword [ebx + 0x10], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xe8], eax
jle 0x5820c9
mov eax, dword [eax + 0x1c]
xor edx, edx
mov cx, word [ebx + 0x10]
mov dword [ebp - 0x1f4], eax
xor eax, eax
mov word [ebp - 0x1ec], cx
mov dword [ebp - 0x1f0], esi
mov dword [ebp - 0xe0], edx
cmp ax, cx
jae 0x5820bb
xor edi, edi
mov ebx, 0x4000
lea eax, [esi + edi]
test word [eax + 8], bx
je 0x58209e
push eax
call fcn.00585895
mov esi, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0xe0]
pop ecx
mov cx, word [ebp - 0x1ec]
inc edx
movzx eax, cx
add edi, 0x28
mov dword [ebp - 0xe0], edx
cmp edx, eax
jl 0x58207b
mov ebx, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x100]
mov esi, dword [ebp - 0xe8]
lea eax, [ebp - 0x1f4]
jmp 0x58212b
lea ecx, [ebp - 0x108]
push ecx
push 0xb7
lea ecx, [ebp - 0xbc]
push ecx
push dword [eax + 0x1c]
call fcn.0057ef8a
add esp, 0x10
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x5811e7
mov ecx, 0x4000
test word [esi + 8], cx
je 0x58210d
push esi
call fcn.00585895
mov eax, dword [ebp - 0xe0]
pop ecx
push eax
push dword [esi + 0x10]
push dword [esi + 0xc]
mov esi, dword [ebp - 0xe8]
push dword [esi + 0x1c]
call fcn.005869b9
mov eax, dword [ebp - 0xe0]
add esp, 0x10
and dword [ebp - 0xe0], 0
mov byte [eax + 0xa], 0
cmp byte [ebx], 0x1d
jne 0x58216e
movzx ecx, word [eax + 8]
xor edx, edx
mov dword [ebp - 0xe8], ecx
test ecx, ecx
je 0x58216e
mov ecx, dword [eax + 4]
add ecx, 8
test byte [ecx], 1
jne 0x582164
inc edx
add ecx, 0x28
cmp edx, dword [ebp - 0xe8]
jl 0x582151
jmp 0x58216e
mov dword [ebp - 0xe0], 1
lea ecx, [ebp - 0x1a0]
push ecx
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
push dword [esi + 0x14]
call fcn.00567c31
push dword [ebp - 0x108]
mov dword [ebp - 0xd4], eax
push dword [ebp - 0xcc]
call fcn.0056a971
mov eax, dword [ebp - 0xd4]
add esp, 0x20
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0x1a0]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
mov al, 1
mov byte [esi + 3], 0
sete cl
and dword [esi + 0x40], 0
sub al, cl
mov byte [esi + 2], al
cmp byte [ebx], 0x1f
jne 0x5821d6
test ecx, ecx
jmp 0x580610
cmp dword [ebp - 0xe0], 0
jne 0x584095
test ecx, ecx
jmp 0x581d5b
mov eax, dword [edi + 0x38]
xor edx, edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xe0], edx
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xd8]
imul eax, dword [eax + 0xc], 0x28
mov esi, dword [eax + ecx]
mov edi, dword [eax + ecx + 4]
lea eax, [ebp - 0xe0]
push eax
push edx
push edi
push esi
push edx
push dword [ebx + 0x14]
call fcn.00567c31
mov dword [ebp - 0xd4], eax
add esp, 0x18
xor eax, eax
mov dword [ebx + 0x30], esi
mov word [ebx + 2], ax
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebx + 0x34], edi
mov dword [ebx + 0x20], eax
mov ebx, dword [ebp - 0x10c]
test eax, eax
je 0x58226d
cmp dword [ebx + 8], 0
jne 0x58408f
push 0x13b6c
call fcn.00569932
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x582273
mov eax, dword [ebp - 0xd4]
mov edi, dword [ebp - 0x100]
jmp 0x58056c
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x38]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x57f71d
and dword [ebp - 0xf8], 0
xorps xmm0, xmm0
push ebx
push edi
movlpd qword [ebp - 0x128], xmm0
call fcn.0055db36
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x38]
push 2
mov dword [ebp - 0xe8], eax
pop eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0xf4], ecx
test byte [ecx + 8], al
jne 0x582379
lea eax, [ebp - 0xf8]
push eax
push dword [ecx + 0x14]
call fcn.00567af4
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x580444
cmp dword [ebp - 0xf8], eax
je 0x582325
inc eax
xor esi, esi
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], esi
jmp 0x582385
lea eax, [ebp - 0x128]
push eax
mov eax, dword [ebp - 0xf4]
push dword [eax + 0x14]
call fcn.00567ad3
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xdc], eax
pop ecx
pop ecx
cmp esi, 0x7fffffff
jl 0x582371
jg 0x582363
cmp eax, 0xffffffff
jb 0x582371
mov ecx, dword [ebp - 0xf4]
push 2
pop edx
or dword [ecx + 8], edx
jmp 0x58238b
add eax, 1
adc esi, 0
jmp 0x582317
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xdc], eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x582438
mov ecx, dword [edi + 0xb8]
test ecx, ecx
jne 0x58241b
imul eax, edx, 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xe0], eax
call fcn.00585b5a
pop ecx
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x5823d1
cmp eax, 0x7fffffff
je 0x5824d1
mov edi, dword [ebp - 0xf4]
test byte [edi + 8], 2
mov edi, dword [ebp - 0x100]
jne 0x5824d1
add edx, 1
adc eax, 0
mov dword [ebp - 0xe0], eax
cmp esi, eax
jg 0x58242d
jl 0x582403
mov eax, dword [ebp - 0xdc]
cmp eax, edx
jae 0x582433
mov esi, dword [ebp - 0xe0]
mov eax, edx
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], esi
jmp 0x582433
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x582419
imul eax, edx, 0x28
add eax, dword [ecx + 0x10]
jmp 0x5823a9
mov eax, dword [ebp - 0xdc]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov ecx, dword [ebp - 0xf4]
push 2
pop edx
test byte [ecx + 8], dl
je 0x5824e4
and dword [ebp - 0xe0], 0
lea eax, [ebp - 0x128]
push eax
push 8
pop eax
push eax
call fcn.0054a1e3
mov esi, dword [ebp - 0x124]
lea ecx, [ebp - 0xf8]
mov eax, dword [ebp - 0x128]
and esi, 0x3fffffff
push 0
pop edx
add eax, 1
push ecx
push edx
adc esi, edx
mov dword [ebp - 0xdc], eax
push esi
push eax
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf4]
push edx
mov dword [ebp - 0x124], esi
push dword [eax + 0x14]
call fcn.00567c31
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
cmp dword [ebp - 0xf8], eax
jne 0x5824d8
mov eax, dword [ebp - 0xe0]
inc eax
mov dword [ebp - 0xe0], eax
cmp eax, 0x64
jl 0x582451
push 0xd
jmp 0x58043d
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xf4]
and dword [ecx + 0x40], 0
mov byte [ecx + 3], 0
mov ecx, dword [ebp - 0xe8]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp 0x57f7af
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov edx, dword [ebp - 0xd8]
and dword [ebp - 0xe8], 0
add esi, edx
cmp byte [ebp - 0xe9], 0x71
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe0], ecx
jne 0x58254c
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0xd8]
mov edx, dword [eax + edx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xf8], eax
jmp 0x58255e
mov eax, dword [ebx + 0xc]
cdq
mov dword [ebp - 0xf8], edx
mov edx, eax
mov dword [ebp - 0xdc], eax
cmp byte [ebx + 1], 0xec
jne 0x5825a5
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0xd8], 0
je 0x5825a5
movsx ecx, byte [ecx + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 4
mov ecx, dword [eax + ecx*8]
pop eax
test byte [ebx + 3], al
push 0x12
pop eax
mov dword [ebp - 0x118], ecx
mov ecx, dword [ebx + 0x10]
push 0x17
mov dword [ebp - 0x108], ecx
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xe8], eax
jmp 0x5825b3
and dword [ebp - 0x108], 0
and dword [ebp - 0x118], 0
test byte [ebx + 3], 1
je 0x5825bc
inc dword [edi + 0x64]
push 2
pop eax
test byte [ebx + 3], al
je 0x5825e2
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x154], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
movzx ecx, word [esi + 8]
test cl, 1
je 0x5825f3
and dword [esi + 0x10], 0
and dword [esi + 0xc], 0
mov dl, byte [ebx + 3]
push 0x10
pop eax
test al, dl
je 0x582608
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x20]
jmp 0x58260a
xor eax, eax
test ecx, 0x4000
je 0x582616
mov ecx, dword [esi]
jmp 0x582618
xor ecx, ecx
push eax
movzx eax, dl
shr eax, 3
and eax, 1
push eax
push ecx
push dword [esi + 0xc]
push dword [esi + 0x10]
mov esi, dword [ebp - 0xe0]
push dword [ebp - 0xf8]
push dword [ebp - 0xdc]
push 0
push dword [esi + 0x14]
call fcn.0056757e
and dword [esi + 0x40], 0
add esp, 0x24
mov byte [esi + 3], 0
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x580444
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x57f71d
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
je 0x57f71d
push dword [ebp - 0xf8]
mov edx, dword [ebp - 0x108]
push dword [ebp - 0xdc]
push dword [edx]
push dword [ebp - 0x118]
push ecx
push dword [esi + 0xd4]
call eax
add esp, 0x18
jmp 0x57f71d
cmp byte [ebx + 1], 0xec
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x108], eax
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
jne 0x58270c
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0xd8], 0
je 0x58270c
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe0], eax
pop eax
test byte [ebx + 3], al
je 0x58271a
cmp byte [esi + 4], 0
je 0x58271a
lea eax, [esi + 0x30]
push eax
push dword [esi + 0x14]
call fcn.00567ad3
pop ecx
pop ecx
jmp 0x58271a
and dword [ebp - 0xe8], 0
and dword [ebp - 0xe0], 0
movzx eax, byte [ebx + 3]
push eax
push dword [esi + 0x14]
call fcn.00567071
and dword [esi + 0x40], 0
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x58043e
inc eax
test byte [ebp - 0x108], al
je 0x5813ed
mov eax, dword [ebp - 0xcc]
inc dword [edi + 0x64]
mov eax, dword [eax + 0xd8]
test eax, eax
je 0x57f7af
mov ecx, dword [ebp - 0xe0]
test byte [ecx + 0x2a], 0x20
jne 0x57f7af
push dword [esi + 0x34]
push dword [esi + 0x30]
mov esi, dword [ebp - 0xcc]
push dword [ecx]
push dword [ebp - 0xe8]
push 9
jmp 0x58269c
push dword [edi + 0x64]
push esi
call fcn.00586ef3
and dword [edi + 0x64], 0
pop ecx
pop ecx
jmp 0x57f71d
mov eax, dword [edi + 0x38]
lea edx, [ebp - 0xe8]
mov ecx, dword [ebx + 4]
and dword [ebp - 0xe8], 0
push edx
push dword [ebx + 0x10]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
push eax
push ecx
call fcn.0058705e
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x580444
cmp dword [ebp - 0xe8], eax
jmp 0x57f74f
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add edx, dword [ebp - 0xd8]
push edx
push dword [eax + ecx*4]
call fcn.00587412
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x580444
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], 0
jmp 0x57f71d
imul eax, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf0], eax
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe8], ecx
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xe0], eax
jne 0x582885
lea ecx, [ebp - 0x1c4]
push ecx
push eax
call fcn.00567ad3
mov eax, dword [esi + 0x5c]
cdq
pop ecx
pop ecx
cmp dword [ebp - 0x1c0], edx
jg 0x584315
mov esi, dword [ebp - 0x1c4]
jl 0x58287d
cmp esi, eax
ja 0x58430f
mov dword [ebp - 0x18c], esi
jmp 0x5828a9
lea ecx, [ebp - 0x18c]
push ecx
push eax
call fcn.00567056
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0x18c]
pop ecx
pop ecx
cmp esi, dword [eax + 0x5c]
ja 0x584307
push 0x20
pop eax
cmp esi, eax
cmova eax, esi
push eax
mov eax, dword [ebp - 0xf0]
push eax
call fcn.005857ff
pop ecx
pop ecx
test eax, eax
jne 0x5811e7
mov ecx, dword [ebp - 0xf0]
mov edx, 0x3e00
push 0x10
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 0xc], esi
pop edx
push dword [ecx + 0x10]
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xe8]
push esi
push 0
push dword [ebp - 0xe0]
cmp byte [eax + 4], 0
jne 0x582906
call fcn.00567aaf
jmp 0x58290b
call fcn.00567011
mov esi, dword [ebp - 0xcc]
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x580444
mov eax, dword [ebp - 0xf0]
mov byte [eax + 0xa], 1
jmp 0x57f71d
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0xe0], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x58295b
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x57f7af
cmp byte [esi + 3], 0
je 0x582975
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x194], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x190], eax
jmp 0x5829ef
push 2
pop eax
cmp byte [esi], al
jne 0x5829ae
mov ecx, dword [esi + 0x14]
lea edx, [ebp - 0x194]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.00587eff
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x58043e
jmp 0x5829ef
push esi
call fcn.0057f41d
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x58043e
cmp byte [esi + 2], al
je 0x5829d8
mov ecx, dword [ebp - 0xe0]
inc eax
mov word [ecx + 8], ax
jmp 0x5813ed
lea eax, [ebp - 0x194]
push eax
push dword [esi + 0x14]
call fcn.00567ad3
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x194]
mov dword [ecx], eax
mov eax, dword [ebp - 0x190]
mov dword [ecx + 4], eax
jmp 0x57f7af
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], 0
cmp byte [eax], 0
mov byte [eax + 2], 1
jne 0x57f71d
push dword [eax + 0x14]
call fcn.00566a7f
jmp 0x580521
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
and dword [ebp - 0x118], 0
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x118]
push eax
push dword [esi + 0x14]
call fcn.00567af4
and dword [esi + 0x40], 0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xd4], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x58043e
cmp dword [ebx + 8], eax
jle 0x57f7af
jmp 0x5821cf
inc dword [edi + 0x7c]
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0xf0], eax
cmp byte [esi], al
lea eax, [ebp - 0xf0]
push eax
jne 0x582ab4
push esi
call fcn.005873af
jmp 0x582ac4
push dword [esi + 0x14]
call fcn.00567387
and dword [esi + 0x40], 0
mov byte [esi + 3], 0
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0xf0]
mov byte [esi + 2], al
test eax, eax
jmp 0x580610
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x168]
and dword [ebp - 0x168], 0
push eax
push esi
push dword [ebp - 0xcc]
call fcn.005872a3
add esp, 0xc
jmp 0x582b3d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x57f71d
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x168]
push eax
push dword [esi + 0x14]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
and dword [esi + 0x40], 0
test eax, eax
jne 0x58043e
cmp dword [ebp - 0x168], eax
jne 0x582b67
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
inc dword [edi + eax*4 + 0x74]
jmp 0x583e35
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x5831a7
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add esi, dword [ebp - 0xd8]
test byte [ebx + 3], 1
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe0], ecx
je 0x582b94
inc dword [edi + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x582bae
push esi
call fcn.00585895
pop ecx
mov ecx, dword [ebp - 0xe0]
jmp 0x582bb0
xor eax, eax
test eax, eax
jne 0x58043e
cmp byte [ebx], 0x7b
jne 0x582bcb
push esi
push ecx
call fcn.00587470
pop ecx
pop ecx
jmp 0x5819da
push 0x10
pop eax
test byte [ebx + 3], al
je 0x582bd8
mov eax, dword [ecx + 0x20]
jmp 0x582bda
xor eax, eax
push eax
push dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0x686090
cdq
push edx
push eax
push dword [esi + 0x10]
push dword [ecx + 0x14]
call fcn.0056757e
mov ecx, dword [ebp - 0xe0]
add esp, 0x24
and dword [ecx + 0x40], 0
jmp 0x5819da
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x204], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x1fc], ax
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0xe0], ecx
mov byte [ebp - 0x1fa], dl
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x200], eax
lea eax, [ebp - 0x1a4]
push eax
push edx
push edx
push edx
lea eax, [ebp - 0x204]
push eax
push ecx
call fcn.00567c31
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
cmp dword [ebp - 0x1a4], eax
jne 0x582c97
push 4
pop eax
push eax
push dword [ebp - 0xe0]
call fcn.00567071
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x58043e
and dword [esi + 0x40], 0
jmp 0x57f7af
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
push esi
call fcn.0057f41d
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x58043e
cmp byte [esi + 2], al
jne 0x582d4e
lea eax, [ebp - 0x170]
xorps xmm0, xmm0
push eax
push dword [esi + 0x14]
movlpd qword [ebp - 0x170], xmm0
push dword [ebp - 0xcc]
call fcn.00584fbd
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
cmp byte [ebx], 0x7e
jne 0x582d2c
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x170]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x16c]
mov word [ecx + 2], 0x100
mov dword [ecx + 0x34], eax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], esi
jmp 0x57f7af
push ebx
push edi
call fcn.0055db36
pop ecx
pop ecx
mov ecx, dword [ebp - 0x170]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x16c]
push 4
mov dword [eax + 4], ecx
pop ecx
jmp 0x582952
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
push eax
jmp 0x57fc01
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0xe9], 0x3a
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x214], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x20c], ax
sbb al, al
and dword [ebp - 0xf4], 0
mov byte [ebp - 0x20a], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x214]
push eax
push ecx
push esi
call fcn.00584f24
mov ecx, dword [ebp - 0xf4]
add esp, 0x10
test byte [ebx], 1
mov dword [ebp - 0xd4], eax
jne 0x582dce
neg ecx
jmp 0x582dcf
inc ecx
test eax, eax
jne 0x580444
test ecx, ecx
jg 0x584095
jmp 0x57f71d
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebp - 0xcc]
mov esi, eax
xor eax, eax
inc eax
pop ecx
pop ecx
mov word [esi + 8], ax
mov ecx, dword [edx + 0xa8]
inc ecx
cmp dword [edx + 0x9c], ecx
jg 0x584242
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x104]
and dword [ebp - 0x104], 0
push ecx
push dword [ebx + 4]
mov ecx, eax
mov dword [ebp - 0xe0], eax
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005672ea
mov ecx, dword [ebp - 0x104]
add esp, 0xc
mov dword [ebp - 0xd4], eax
push 4
pop eax
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0xd4]
mov dword [esi + 4], edx
test eax, eax
jne 0x58043e
mov esi, dword [ebp - 0xcc]
test ecx, ecx
je 0x57f71d
push dword [ebx + 4]
push ecx
push dword [ebp - 0xe0]
push esi
call fcn.0057983f
mov al, byte [ebp - 0xe0]
add esp, 0x10
inc al
mov byte [ebp - 0x11d], al
jmp 0x57f71d
and dword [ebp - 0x10c], 0
lea eax, [ebp - 0x10c]
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 4]
push dword [eax + ecx*8 + 4]
call fcn.00566a9a
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp dword [ebx + 0xc], 0
je 0x580572
mov edx, dword [ebp - 0x10c]
add dword [edi + 0x64], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x580572
mov esi, dword [ebp - 0xd8]
mov eax, edx
imul ecx, ecx, 0x28
cdq
add dword [ecx + esi], eax
mov eax, esi
adc dword [ecx + eax + 4], edx
jmp 0x580566
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
push dword [eax + 0x14]
jne 0x582f21
push esi
call fcn.00587319
pop ecx
jmp 0x580521
call fcn.00566aea
pop ecx
jmp 0x581d29
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
and dword [ebp - 0xfc], 0
shl edx, 4
add edx, dword [eax + 0x10]
lea eax, [ebp - 0xfc]
cmp byte [ebx], 0x84
setne cl
inc ecx
push ecx
push eax
push dword [edx + 4]
call fcn.00566f16
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0xfc]
cdq
jmp 0x580a5b
mov ecx, dword [ebx + 4]
lea eax, [edi + 0x2c]
push dword [ebx + 0x10]
mov dword [ebp - 0x1e0], eax
cmp ecx, 1
mov edx, str.sqlite_temp_master
mov dword [ebp - 0x1dc], ecx
mov eax, str.sqlite_master
mov dword [ebp - 0x1e4], esi
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.00573826
mov esi, eax
add esp, 0x14
test esi, esi
je 0x584252
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x1e4]
and dword [ebp - 0x1d8], 0
push 0
push ecx
push fcn.00571998
push esi
push eax
mov byte [eax + 0x95], 1
call fcn.00547dce
test eax, eax
push esi
cmove eax, dword [ebp - 0x1d8]
mov esi, dword [ebp - 0xcc]
push esi
mov dword [ebp - 0xd4], eax
call fcn.0056a971
mov eax, dword [ebp - 0xd4]
add esp, 0x1c
mov byte [esi + 0x95], 0
test eax, eax
jne 0x584261
jmp 0x57f71d
push dword [ebx + 4]
push esi
call fcn.005651c9
pop ecx
jmp 0x582f26
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.0057cf1f
jmp 0x57fb9e
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.0057ceb1
jmp 0x57fb9e
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.0057cf51
jmp 0x57fb9e
imul eax, dword [ebx + 4], 0x28
imul esi, dword [ebx + 0xc], 0x28
movzx ecx, byte [ebx + 3]
add ecx, ecx
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x148]
push eax
mov eax, dword [ebp - 0xcc]
push dword [esi]
push dword [ebx + 8]
mov eax, dword [eax + 0x10]
push dword [ebx + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.00567783
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x148]
cdq
sub dword [esi], eax
sbb dword [esi + 4], edx
mov esi, dword [ebp - 0xe0]
push esi
call fcn.00585d68
add esp, 0x18
cmp dword [ebp - 0x148], 0
je 0x5830fd
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x5811e7
push fcn.0054a0b7
push 1
push 0xffffffffffffffff
push eax
push esi
call fcn.00585ddf
add esp, 0x14
movzx eax, byte [ebp - 0x114]
push eax
push esi
call fcn.0057efeb
pop ecx
jmp 0x57fc06
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], eax
test byte [esi + 8], 0x20
jne 0x583148
push esi
call fcn.00585d8b
test byte [esi + 8], 0x20
pop ecx
je 0x5811e7
mov eax, dword [ebp - 0xe0]
push dword [eax + 4]
push dword [eax]
push dword [esi]
call fcn.00579905
jmp 0x580eed
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
test byte [esi + 8], 0x20
je 0x58321c
lea eax, [ebp - 0x1cc]
push eax
push dword [esi]
call fcn.00579951
pop ecx
pop ecx
test eax, eax
je 0x58321c
imul eax, dword [ebx + 0xc], 0x28
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
add eax, dword [ebp - 0xd8]
push eax
call fcn.00585d32
add esp, 0xc
xor eax, eax
inc eax
mov esi, dword [ebp - 0xcc]
cmp dword [esi + 0xf8], 0
jne 0x5844d3
mov ecx, dword [esi + 0x130]
mov edx, dword [ebp - 0xd0]
test ecx, ecx
je 0x57f726
cmp edx, dword [ebp - 0x14c]
jb 0x57f726
mov eax, dword [esi + 0x138]
mov dword [ebp - 0x14c], eax
mov eax, edx
xor edx, edx
div dword [ebp - 0x14c]
mov eax, dword [ebp - 0x14c]
push dword [esi + 0x134]
sub eax, edx
add eax, dword [ebp - 0xd0]
mov dword [ebp - 0x14c], eax
call ecx
pop ecx
test eax, eax
je 0x57f71d
push 9
jmp 0x58417b
push esi
call fcn.00585d68
pop ecx
jmp 0x583e35
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xe0], ecx
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe8], eax
test byte [esi + 8], 0x20
jne 0x58326e
push esi
call fcn.00585d8b
test byte [esi + 8], 0x20
pop ecx
je 0x5811e7
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
je 0x583292
push dword [eax + 4]
push dword [eax]
push ecx
push dword [esi]
call fcn.005799a7
add esp, 0x10
test eax, eax
jne 0x584095
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
js 0x57f7af
mov eax, dword [ebp - 0xe8]
jmp 0x583148
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xdc], edx
add ecx, dword [ebp - 0xd8]
cmp byte [ebx + 3], 0
mov dword [ebp - 0xe0], ecx
je 0x5832e9
mov eax, dword [edi + 0xb8]
mov edx, dword [edx + 0x14]
test eax, eax
je 0x5832e3
cmp dword [eax + 0x1c], edx
je 0x5832db
mov eax, dword [eax + 4]
test eax, eax
jne 0x5832cf
test eax, eax
jne 0x57f71d
mov edx, dword [ebp - 0xdc]
mov eax, dword [edi + 0xc0]
cmp eax, dword [esi + 0x84]
jge 0x58427e
test byte [ecx + 8], 0x40
jne 0x583405
mov esi, dword [ebp - 0xdc]
mov edx, dword [edx + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [ebp - 0xe8], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [esi + 0x10]
add ecx, edx
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push dword [ebp - 0xcc]
call fcn.0056aa96
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5811e7
push dword [ebp - 0xe0]
call fcn.00585ce0
mov eax, dword [ebp - 0xe0]
sub ebx, dword [ebp - 0x110]
pop ecx
push 0x40
mov dword [eax], esi
pop ecx
mov word [eax + 8], cx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe8]
mov dword [esi + 0x40], ecx
mov dword [esi], edi
mov eax, dword [eax + 0xc]
mov dword [esi + 0x44], eax
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
mov edx, dword [ebp - 0xdc]
mov dword [esi + 0x30], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 4]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x20]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 0xd0]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0xcc]
mov dword [esi + 0x3c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [esi + 0x50]
add ecx, esi
cmp eax, ecx
je 0x583407
mov ebx, dword [ebp - 0xcc]
mov edi, 0x80
mov word [eax + 8], di
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x5833e9
mov edi, dword [ebp - 0x100]
mov edx, dword [ebp - 0xdc]
jmp 0x583407
mov esi, dword [ecx]
inc dword [edi + 0xc0]
lea ecx, [esi + 0x50]
mov eax, dword [edi + 0xb8]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x150]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x154]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [edi]
mov dword [ebp - 0xd8], ecx
mov eax, dword [eax + 0x54]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0xd4]
mov dword [esi + 0x28], eax
and dword [edi + 0xd4], 0
and dword [edi + 0x64], 0
mov dword [edi + 8], ecx
mov dword [edi + 0xb8], esi
mov eax, dword [esi + 0x40]
mov dword [edi + 0x1c], eax
movzx eax, word [esi + 0x44]
mov dword [edi + 0x24], eax
imul eax, dword [edi + 0x1c], 0x28
add ecx, eax
mov dword [edi + 0x38], ecx
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov eax, dword [edx + 4]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x110], ebx
add ebx, 0xffffffec
lea ecx, [ecx + eax*4]
mov dword [edi + 0xd0], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
push ecx
mov dword [edi + 0xcc], eax
call fcn.005f3980
jmp 0x580eed
push ebx
push edi
call fcn.0055db36
mov esi, dword [edi + 0xb8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [esi + 0x10]
push ecx
jmp 0x57fa98
test dword [esi + 0x18], 0x2000000
mov eax, dword [ebx + 8]
cdq
je 0x5834f4
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x57f71d
cmp dword [ebx + 4], 0
je 0x58350b
add dword [esi + 0x1b8], eax
adc dword [esi + 0x1bc], edx
jmp 0x57f71d
add dword [edi + 0x98], eax
adc dword [edi + 0x9c], edx
jmp 0x57f71d
cmp dword [ebx + 4], 0
je 0x583545
mov eax, dword [esi + 0x1b8]
or eax, dword [esi + 0x1bc]
jne 0x57f71d
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jmp 0x580af2
mov eax, dword [edi + 0x98]
or eax, dword [edi + 0x9c]
jmp 0x58352e
mov ecx, dword [edi + 0xb8]
test ecx, ecx
jne 0x5835af
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xe0], eax
call fcn.00585b5a
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.00585b5a
mov eax, dword [ebp - 0xe0]
mov edx, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x57f7af
jl 0x5835a3
cmp dword [eax], ecx
jae 0x57f7af
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x57f7af
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5835ad
imul eax, dword [ebx + 4], 0x28
add eax, dword [ecx + 0x10]
jmp 0x583567
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
test eax, eax
jl 0x57f7af
jg 0x5835e0
test esi, esi
je 0x57f7af
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov eax, dword [ecx + 4]
mov dword [ecx], esi
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x584095
imul eax, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 4], 0x28
push ebx
push edi
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], eax
call fcn.0055db36
cmp dword [esi + 4], 0
mov edx, eax
pop ecx
pop ecx
jg 0x58362e
jl 0x583627
cmp dword [esi], 0
ja 0x58362e
or eax, 0xffffffff
or ecx, eax
jmp 0x58365f
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test ecx, ecx
jl 0x583643
jg 0x58365a
test eax, eax
jne 0x58365a
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x57f7af
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
mov esi, dword [ecx]
mov eax, esi
or eax, dword [ecx + 4]
jmp 0x5835da
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
add dword [ecx], 0xffffffff
mov eax, dword [ecx]
adc dword [ecx + 4], 0xffffffff
or eax, dword [ecx + 4]
jmp 0x580af2
movzx eax, byte [ebx + 3]
mov dword [ebp - 0xe0], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push esi
call fcn.0056a9e6
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5811e7
and dword [esi + 8], 0
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x110]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xe0]
mov byte [esi + 0x1a], al
mov word [ebx], 0xeb92
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], edx
cmp dword [esi + 8], edx
je 0x583740
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x583740
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xd8]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x58371d
mov edi, dword [ebp - 0x100]
mov edx, dword [ebp - 0xe0]
inc dword [edx + 0xc]
lea eax, [ebp - 0x2b4]
push 1
push dword [ebp - 0xcc]
push eax
call fcn.00585b40
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x2b4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
push esi
mov word [esi + 0x18], 0
call dword [ecx + 0xc]
add esp, 0x18
cmp byte [esi + 0x19], 0
je 0x5837c3
cmp dword [esi + 0x14], 0
je 0x5837a8
lea eax, [ebp - 0x2b4]
push eax
call fcn.00545f24
push eax
push 0x6b080c
push edi
call fcn.0057f597
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.00585ce0
mov eax, dword [ebp - 0xd4]
pop ecx
test eax, eax
jne 0x58043e
cmp byte [esi + 0x18], 0
je 0x57f7af
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x57f7af
imul eax, eax, 0x28
push 0
push 1
add eax, dword [ebp - 0xd8]
push eax
call fcn.00585d32
jmp 0x580eed
imul esi, dword [ebx + 4], 0x28
push dword [ebx + 0x10]
add esi, dword [ebp - 0xd8]
push esi
call fcn.005858ee
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x5842a0
movzx eax, byte [ebp - 0x114]
push eax
push esi
call fcn.0057efeb
push esi
jmp 0x5801f2
and dword [ebp - 0xc8], 0
lea eax, [ebp - 0xc0]
or dword [ebp - 0xc0], 0xffffffff
or dword [ebp - 0xc4], 0xffffffff
push eax
lea eax, [ebp - 0xc4]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push esi
call fcn.00568b91
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x58387e
cmp eax, 5
jne 0x580444
xor eax, eax
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xd4], eax
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0xd8]
xor edi, edi
mov eax, dword [ebp + edi*4 - 0xc8]
cdq
push edx
push eax
push esi
call fcn.00585d32
add esp, 0xc
add esi, 0x28
inc edi
cmp edi, 3
jl 0x58388a
jmp 0x57fa19
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
push eax
mov dword [ebp - 0xe0], eax
call fcn.00568511
mov ecx, eax
push ecx
mov dword [ebp - 0xdc], ecx
call fcn.00574ee2
cmp esi, 0xffffffff
mov dword [ebp - 0xf8], eax
push ecx
cmove esi, eax
call fcn.00575155
mov ecx, dword [ebp - 0xdc]
test eax, eax
push 1
cmove esi, dword [ebp - 0xf8]
push ecx
call fcn.00574b9f
add esp, 0x1c
cmp esi, 5
jne 0x583949
push eax
call fcn.0057c78b
pop ecx
test eax, eax
je 0x583933
push dword [ebp - 0xdc]
call fcn.00575e08
pop ecx
test eax, eax
jne 0x583943
mov eax, dword [ebp - 0xf8]
mov esi, eax
mov ecx, dword [ebp - 0xdc]
jmp 0x58394f
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xf8]
cmp esi, eax
je 0x5839df
cmp eax, 5
je 0x583961
cmp esi, 5
jne 0x5839df
mov edx, dword [ebp - 0xcc]
cmp byte [edx + 0x43], 0
je 0x5842c0
cmp dword [edx + 0x9c], 1
jg 0x5842c0
cmp eax, 5
jne 0x5839a4
push ecx
call fcn.005748c4
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x5839e9
push esi
push dword [ebp - 0xdc]
call fcn.005758ea
pop ecx
pop ecx
jmp 0x5839c0
push 4
pop edx
cmp eax, edx
jne 0x5839b7
push 2
pop eax
push eax
push ecx
call fcn.005758ea
pop ecx
pop ecx
cmp dword [ebp - 0xd4], 0
jne 0x5839e9
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0xe0]
call fcn.00568932
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x5839e5
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x5839ef
mov esi, dword [ebp - 0xf8]
push esi
push dword [ebp - 0xdc]
call fcn.005758ea
mov esi, dword [ebp - 0xe8]
mov ecx, 0xa02
push eax
mov word [esi + 8], cx
call fcn.00572e0d
push eax
mov dword [esi + 0x10], eax
call fcn.0057c78b
mov dword [esi + 0xc], eax
movzx eax, byte [ebp - 0x114]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.0057efeb
add esp, 0x18
jmp 0x580566
lea eax, [edi + 0x2c]
push esi
push eax
call fcn.00579dd0
jmp 0x583038
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005674a3
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x57f71d
cmp eax, 0x65
jne 0x580444
and dword [ebp - 0xd4], 0
jmp 0x584095
cmp dword [ebx + 4], 0
jne 0x583a8e
push esi
call fcn.0056c0eb
add esp, 4
jmp 0x57f71d
or dword [edi + 0x58], eax
jmp case.0x57f6d0.110
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x1a8], al
test al, al
jne 0x583ab1
mov eax, 0x4000
test dword [esi + 0x18], eax
jne 0x57f71d
mov ecx, dword [ebx + 4]
push dword [ebp - 0x1a8]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.00567bb4
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x57f71d
cmp al, 6
jne 0x580444
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0057f597
add esp, 0xc
jmp 0x584295
mov esi, dword [ebx + 0x10]
push esi
push dword [ebp - 0xcc]
call fcn.005878db
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test esi, esi
je 0x58056c
push dword [esi + 8]
push edi
call fcn.00587eff
jmp 0x581bea
push 0x28
lea eax, [ebp - 0x264]
push 0
push eax
call fcn.005f3980
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0x244], esi
add eax, dword [ebp - 0xd8]
push eax
lea eax, [ebp - 0x264]
push eax
call fcn.0058582a
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x264]
push eax
call fcn.00545f24
add esp, 0x18
test eax, eax
je 0x583b84
lea ecx, [edi + 0x2c]
push ecx
push eax
push dword [ebx + 4]
push esi
call fcn.00587ac2
add esp, 0x10
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x264]
push eax
call fcn.00585ce0
pop ecx
jmp 0x581a82
inc dword [esi + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.00587b6a
add esp, 0xc
mov dword [ebp - 0xd4], eax
dec dword [esi + 0xa8]
jmp 0x580572
mov eax, dword [ebx + 0x10]
and dword [ebp - 0xdc], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x584300
mov eax, dword [esi]
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x584300
lea ecx, [ebp - 0xdc]
push ecx
push esi
call dword [eax + 0x18]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.00587eff
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0xdc]
push 2
mov dword [eax], esi
pop eax
push eax
push 0xffffffffffffffff
push 0
push dword [ebx + 4]
push edi
call fcn.0054e891
add esp, 0x14
test eax, eax
je 0x5842eb
mov ecx, dword [ebp - 0xdc]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
jmp 0x57f7af
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x130], eax
add edx, dword [ebp - 0xd8]
mov esi, dword [eax + 0x14]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x118], eax
mov eax, dword [eax]
mov dword [ebp - 0xe8], eax
mov eax, dword [edx]
mov dword [ebp - 0x108], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xe0], eax
xor eax, eax
test ecx, ecx
jle 0x583c9f
mov edi, dword [ebp - 0xe0]
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x583c8e
mov edi, dword [ebp - 0x100]
push dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe8]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x108]
push esi
call dword [eax + 0x20]
push dword [ebp - 0x118]
mov dword [ebp - 0xd4], eax
push edi
call fcn.00587eff
mov eax, dword [ebp - 0xd4]
add esp, 0x1c
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0xe8]
push esi
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 2], 0
jmp 0x582add
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0xe8], ecx
add eax, dword [ebp - 0xd8]
cmp byte [ecx + 2], 0
mov dword [ebp - 0xe0], eax
je 0x583d26
push eax
call fcn.00585d68
jmp 0x580521
mov eax, dword [ecx + 0x14]
push 0x20
push 0
mov edi, dword [eax]
lea eax, [ebp - 0x23c]
push eax
mov esi, dword [edi]
call fcn.005f3980
mov ecx, dword [ebp - 0xe0]
mov edx, 0x3e00
mov dword [ebp - 0x23c], ecx
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
mov word [ecx + 8], ax
lea eax, [ebp - 0x23c]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0xe8]
push dword [eax + 0x14]
call dword [esi + 0x2c]
push edi
mov edi, dword [ebp - 0x100]
push edi
mov dword [ebp - 0xd4], eax
call fcn.00587eff
cmp dword [ebp - 0x228], 0
mov eax, dword [ebp - 0xd4]
cmovne eax, dword [ebp - 0x228]
mov esi, dword [ebp - 0xe0]
mov dword [ebp - 0xd4], eax
movzx eax, byte [ebp - 0x114]
push eax
push esi
call fcn.0057efeb
push esi
call fcn.00586059
mov esi, dword [ebp - 0xcc]
add esp, 0x2c
test eax, eax
jne 0x584315
jmp 0x581a82
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xe0], eax
cmp byte [eax + 2], 0
jne 0x57f71d
mov eax, dword [eax + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0xe8], ecx
call dword [ecx + 0x24]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.00587eff
mov eax, dword [ebp - 0xd4]
add esp, 0xc
test eax, eax
jne 0x58043e
mov eax, dword [ebp - 0xe0]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xe8]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x5831a4
mov esi, dword [ebp - 0xcc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x110]
add ebx, 0xffffffec
add ebx, eax
xor eax, eax
inc eax
jmp 0x5831ad
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0x10]
push 1
add esi, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
push esi
mov dword [ebp - 0xe0], eax
call fcn.0057efeb
pop ecx
pop ecx
test eax, eax
jne 0x58043e
mov ecx, dword [ebp - 0xe0]
push dword [esi + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x4c]
push dword [ebp - 0xe0]
mov dword [ebp - 0xd4], eax
push edi
call fcn.00587eff
add esp, 0x10
and dword [edi + 0x58], 0xfffffffe
jmp 0x580566
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x584300
mov eax, dword [esi]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x584300
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
je 0x57f7af
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
mov al, byte [eax + 0x4a]
mov byte [ebp - 0xe9], al
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xe0], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
test edx, edx
jle 0x583f11
mov edi, dword [ebp - 0xe0]
mov dword [edi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x583f00
mov edi, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xcc]
mov al, byte [ebx + 3]
mov byte [ecx + 0x4a], al
lea eax, [ebp - 0x1d4]
push eax
push dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe8]
push edx
push esi
call dword [eax + 0x34]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0xe9]
push esi
push edi
mov byte [ecx + 0x4a], al
call fcn.00587eff
mov eax, dword [ebp - 0xd4]
add esp, 0x18
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x583f87
cmp dword [ebx + 4], eax
je 0x583f87
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x154], edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edx
cmp al, 0x13
jne 0x583fbf
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x583fbf
mov al, byte [ebx + 3]
push 4
pop ecx
cmp al, cl
jne 0x583fab
xor eax, eax
mov dword [ebp - 0xd4], eax
jmp 0x57f71d
cmp al, 5
jne 0x583fb4
push 2
pop eax
jmp 0x583fb7
movzx eax, al
mov byte [edi + 0x56], al
jmp 0x581a82
inc dword [edi + 0x64]
jmp 0x581a82
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0xcc]
add edx, edx
mov ecx, dword [eax + 0x10]
push dword [ecx + edx*8 + 4]
call fcn.00567b44
add esp, 0xc
and dword [esi + 4], 0
jmp 0x57f7ad
push ebx
push edi
call fcn.0055db36
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0xcc]
add edx, edx
pop ecx
pop ecx
mov ecx, dword [eax + 0x10]
xor eax, eax
mov edx, dword [ecx + edx*8 + 4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x584027
push edx
call fcn.00567b44
add esp, 4
cmp eax, ecx
cmovb eax, ecx
push eax
push edx
call fcn.00567c05
pop ecx
pop ecx
jmp 0x582f7b
cmp dword [esi + 0xb4], 0
je 0x584083
push 2
pop eax
test byte [edi + 0x58], al
jne 0x584083
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x584057
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x584083
push eax
push edi
call fcn.0058477b
mov esi, eax
mov eax, dword [ebp - 0xcc]
push esi
push dword [eax + 0xb8]
call dword [eax + 0xb4]
push esi
mov esi, dword [ebp - 0xcc]
push esi
call fcn.0056a971
add esp, 0x18
cmp dword [ebx + 8], 0
je 0x57f71d
jmp 0x584095
mov edi, dword [ebp - 0x100]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x110]
add ebx, 0xffffffec
add ebx, eax
jmp 0x57f7af
mov ecx, dword [ebx + 4]
mov dword [edi + 0x50], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test ecx, ecx
je 0x58412a
mov al, byte [ebx + 3]
test al, al
je 0x5840ff
movzx eax, al
push dword [eax*4 + 0x6ade2c]
push str._s_constraint_failed
push edi
call fcn.0057f597
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x584110
push dword [ebx + 0x10]
push dword [edi + 0x2c]
push str._z:__s
push dword [ebp - 0xcc]
call fcn.00573826
add esp, 0x10
mov dword [edi + 0x2c], eax
jmp 0x584110
push dword [ebx + 0x10]
push 0x6b080c
push edi
call fcn.0057f597
add esp, 0xc
push dword [edi + 0x2c]
push dword [edi + 0xb0]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0054bea4
add esp, 0x14
push edi
call fcn.00584c8b
mov esi, dword [ebp - 0xcc]
pop ecx
push 5
pop ecx
mov dword [ebp - 0xd4], eax
cmp eax, ecx
je 0x5841b6
cmp dword [edi + 0x50], 0
push 0x65
pop eax
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xd4], eax
jmp 0x5841fc
push 0x13538
call fcn.00569932
pop ecx
jmp 0x58043e
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0057f597
pop ecx
pop ecx
push 5
pop eax
jmp 0x580444
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0057f597
pop ecx
pop ecx
push 5
jmp 0x58043d
sub ebx, dword [ebp - 0x110]
mov eax, ebx
mov esi, dword [ebp - 0xcc]
push 0x14
cdq
pop ebx
idiv ebx
mov dword [edi + 0x4c], eax
mov byte [esi + 0x43], 0
mov dword [ebp - 0xd4], ecx
mov dword [edi + 0x50], ecx
jmp 0x5841fc
mov eax, dword [ebp - 0xf0]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.0057f597
add esp, 0xc
xor eax, eax
inc eax
jmp 0x58043e
push 8
jmp 0x58417b
sub ebx, dword [ebp - 0x110]
mov eax, ebx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0x4c], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x50], eax
mov esi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x150]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x154]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xd0]
add dword [edi + 0x84], eax
push edi
call fcn.005851a1
mov eax, dword [ebp - 0xd4]
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005b4733
mov esp, ebp
pop ebp
ret
mov eax, 0x204
jmp 0x580444
push 6
pop eax
push 2
pop ecx
mov byte [edi + 0x56], cl
mov esi, edx
jmp 0x580444
mov esi, dword [ebp - 0xcc]
push 7
pop eax
mov dword [ebp - 0xd4], eax
push esi
call fcn.0057935a
mov eax, dword [ebp - 0xd4]
pop ecx
push 7
pop ecx
cmp eax, ecx
je 0x5811ed
jmp 0x580447
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0xd4], 1
call fcn.0057f597
pop ecx
pop ecx
mov eax, dword [ebp - 0xd4]
jmp 0x580444
push esi
call fcn.00545f24
push eax
push 0x6b080c
push edi
call fcn.0057f597
add esp, 0x10
mov eax, dword [ebp - 0xd4]
jmp 0x58043e
mov ecx, str.out_of
mov dword [ebp - 0xd4], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0057f597
add esp, 0xc
jmp 0x5842b5
mov eax, dword [ebp - 0xe0]
push dword [ebp - 0xdc]
call dword [eax + 0x1c]
pop ecx
jmp 0x5811e7
push 6
jmp 0x58043d
mov esi, eax
jmp 0x584315
mov esi, edx
jmp 0x584315
mov esi, dword [ebp - 0xcc]
push str.string_or_blob_too_big
push edi
call fcn.0057f597
pop ecx
pop ecx
push 0x12
jmp 0x58417b
mov eax, dword [esi + 0x130]
test eax, eax
je 0x584352
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ebp - 0x14c]
jb 0x584352
push dword [esi + 0x134]
call eax
pop ecx
test eax, eax
jne 0x583215
push 0
push edi
call fcn.0057f149
pop ecx
pop ecx
test eax, eax
jne 0x580444
push 1
push edi
call fcn.0057f262
mov eax, dword [edi + 0x48]
and dword [ebp - 0x148], 0
pop ecx
pop ecx
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x48], eax
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
mov dword [edi + 0x14], esi
cmp dword [ebx + 8], 0
jle 0x5843cc
mov eax, 0x1000
test word [esi + 8], ax
je 0x5843b0
push esi
call fcn.00585b86
pop ecx
test eax, eax
jne 0x5811e7
push esi
call fcn.00585c25
mov eax, dword [ebp - 0x148]
add esi, 0x28
inc eax
pop ecx
mov dword [ebp - 0x148], eax
cmp eax, dword [ebx + 8]
jl 0x584396
mov esi, dword [ebp - 0xcc]
cmp byte [esi + 0x45], 0
jne 0x5811ed
sub ebx, dword [ebp - 0x110]
mov eax, ebx
mov dword [ebp - 0xd4], 0x64
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov dword [edi + 0x4c], eax
jmp 0x5841fc
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x148], edx
movzx eax, byte [eax + 0x43]
cmp edx, eax
je 0x5844ac
test esi, esi
mov esi, dword [ebp - 0xcc]
je 0x584438
push 0x204
push esi
call fcn.0057970d
pop ecx
pop ecx
mov byte [esi + 0x43], 1
jmp 0x584470
test edx, edx
je 0x58444f
cmp dword [esi + 0xa0], 0
jle 0x58444f
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x584171
push 1
push edi
call fcn.0057f149
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x5841fc
mov eax, dword [ebp - 0x148]
mov byte [esi + 0x43], al
push edi
call fcn.00584c8b
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x5844a0
sub ebx, dword [ebp - 0x110]
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
mov dword [edi + 0x4c], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x148]
mov byte [esi + 0x43], al
jmp 0x5841b0
push esi
call fcn.00568d63
pop ecx
jmp 0x584144
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.0057f597
pop ecx
pop ecx
jmp 0x5841d0
cmp byte [esi + 0x45], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
push eax
mov dword [ebp - 0xd4], eax
mov dword [edi + 0x50], eax
call fcn.0056bfbd
push eax
push 0x6b080c
push edi
call fcn.0057f597
add esp, 0x10
jmp 0x584295